SIGSEGV in compaction task in ParallelCompactionsST
- Dominant language
- Java
- Stars
- 107
- Forks
- 29
- Avg merge
- 19h 46m
- Merged PRs (30d)
- 141
Description
### Description / Background
This was raised previously, and it looks like the fix hasn't worked:
- https://github.com/gchq/sleeper/issues/7390
We've seen ParallelCompactionsST fail because of a SIGSEGV in a compaction task. It's happening in the DataFusion compaction runner but the logs aren't telling us much more than that right now.
### Steps to reproduce
1. Run ParallelCompactionsST
2. Sometimes see error
### Expected behaviour
Compactions should complete reliably.
### Technical Notes / Implementation Details
ParallelCompactionsST runs a lot of very small compactions at once on 200 compaction tasks. It tests that the system can keep up with a lot of compactions happening at once. It writes 10 files to each of 8192 partitions, with standard ingest writing 1 million rows to one file per leaf partition, then it runs the basic compaction strategy with 2 files per compaction job, resulting in 40960 jobs being created at once.
### Screenshots/Logs
Logs from compaction task after it picked up the job:
```
[main] job.execution.DefaultCompactionRunnerFactory INFO - Selecting DataFusionCompactionRunner for job ID , table ()
[main] statestore.transactionlog.TransactionLogHead DEBUG - Not checking for snapshot of StateStorePartitions for table (), next check at
Contributor guide
Research direction
Start with ParallelCompactionsST and the prior issue 7390, then inspect the DataFusion compaction path and sleeper_df/src/lib.rs:77. Run the stress test with its 200 compaction tasks and collect hs_err_pid7.log or the core dump when the SIGSEGV occurs. Done means compactions complete reliably without the native crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, rust
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100