facebook / facebook/rocksdb

RepairDB crashes if a column family contains only a DeleteRange tombstone

Open
#5,239 4 comments 0 reactions 0 assignees View on GitHub
bug up-for-grabs
Dominant language
C++
Stars
32.1k
Forks
6.9k
Avg merge
32m
Merged PRs (30d)
1

Description

### Expected behavior

Create a new empty DB. Call DeleteRange() to delete some data in a column family (even though the DB is already empty), followed by CompactRange().

Then close the DB and call RepairDB(). RepairDB() should succeed.

### Actual behavior

RepairDB() crashes with an assertion in debug mode builds.
In release builds (with assertions disable) RepairDB() logs a number of errors about corruption and fails.

### Steps to reproduce the behavior

Unit test that reproduces the failure in f80b4009246a6c07118dc8cdafe04b1d175490a2

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.