Revision a8e503e54576e8181cb874609bde4c18cb5e6124 authored by Andrew Kryczka on 26 June 2018, 17:28:41 UTC, committed by Facebook Github Bot on 26 June 2018, 17:44:56 UTC
Summary:
Universal size-amp-triggered compaction was pulling the final sorted run into the compaction without checking whether any of its files are already being compacted. When all compactions are automatic, it is safe since it verifies the second-last sorted run is not already being compacted, which implies the last sorted run is also not being compacted (in automatic compaction multiple sorted runs are always compacted together). But with manual compaction, files in the last sorted run can be compacted independently, so the last sorted run also must be checked.

We were seeing the below assertion failure in `db_stress`. Also the test case included in this PR repros the failure.

```
db_universal_compaction_test: db/compaction.cc:312: void rocksdb::Compaction::MarkFilesBeingCompacted(bool): Assertion `mark_as_compacted ? !inputs_[i][j]->being_compacted : inputs_[i][j]->being_compacted' failed.
Aborted (core dumped)
```
Closes https://github.com/facebook/rocksdb/pull/4055

Differential Revision: D8630094

Pulled By: ajkr

fbshipit-source-id: ac3b30a874678b76e113d4f6c42c1260411b08f8
1 parent 346d106
History
File Mode Size
advisor
dump
rdb
CMakeLists.txt -rw-r--r-- 544 bytes
Dockerfile -rw-r--r-- 81 bytes
auto_sanity_test.sh -rwxr-xr-x 2.7 KB
benchmark.sh -rwxr-xr-x 16.4 KB
benchmark_leveldb.sh -rwxr-xr-x 5.1 KB
blob_dump.cc -rw-r--r-- 3.3 KB
check_format_compatible.sh -rwxr-xr-x 4.5 KB
db_bench.cc -rw-r--r-- 813 bytes
db_bench_tool.cc -rw-r--r-- 197.4 KB
db_bench_tool_test.cc -rw-r--r-- 9.5 KB
db_crashtest.py -rw-r--r-- 13.2 KB
db_repl_stress.cc -rw-r--r-- 4.5 KB
db_sanity_test.cc -rw-r--r-- 8.4 KB
db_stress.cc -rw-r--r-- 114.6 KB
dbench_monitor -rwxr-xr-x 2.6 KB
generate_random_db.sh -rwxr-xr-x 734 bytes
ldb.cc -rw-r--r-- 572 bytes
ldb_cmd.cc -rw-r--r-- 96.3 KB
ldb_cmd_impl.h -rw-r--r-- 14.1 KB
ldb_cmd_test.cc -rw-r--r-- 1.8 KB
ldb_test.py -rw-r--r-- 24.4 KB
ldb_tool.cc -rw-r--r-- 4.6 KB
pflag -rwxr-xr-x 4.0 KB
reduce_levels_test.cc -rw-r--r-- 5.2 KB
regression_test.sh -rwxr-xr-x 15.8 KB
report_lite_binary_size.sh -rwxr-xr-x 1.2 KB
rocksdb_dump_test.sh -rwxr-xr-x 364 bytes
run_flash_bench.sh -rwxr-xr-x 13.5 KB
run_leveldb.sh -rwxr-xr-x 6.2 KB
sample-dump.dmp -rw-r--r-- 100 bytes
sst_dump.cc -rw-r--r-- 581 bytes
sst_dump_test.cc -rw-r--r-- 6.4 KB
sst_dump_tool.cc -rw-r--r-- 23.8 KB
sst_dump_tool_imp.h -rw-r--r-- 2.8 KB
verify_random_db.sh -rwxr-xr-x 1.0 KB
write_stress.cc -rw-r--r-- 10.9 KB
write_stress_runner.py -rw-r--r-- 2.3 KB

back to top