gchq / gchq/sleeper

SIGSEGV in compaction task in ParallelCompactionsST

Open
#7,499 4 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.