mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-20 00:20:47 +00:00
Currently the handling of partition tombstones is broken in multiple ways: * The partition-tombstone is lost when the bucket is calculated for its timestamp (due to a misplaced `std::exchange()`). * When the `partition_start` fragment (containing the partition tombstone) is actually written to the bucket we emit another `partition_start` fragment before it because the bucket has not seen that partition before and we fail to notice that we are actually writing the partition header. This bug was allowed to fly under the radar because the unit test was accidentally not creating partition tombstones in the generated data (due to a mistake). It was discovered while working on unit tests for another test and fixing the data generation function to actually generate partition tombstones. This patch fixes both problems in the handling of partition tombstones but it doesn't yet fixes the test. That is deferred until the patch series which uncovered this bug is merged to avoid merge conflicts. The other series mentioned here is: [PATCH v6 00/15] compaction: allow collecting purged data Fixes: #4683 Signed-off-by: Botond Dénes <bdenes@scylladb.com> Message-Id: <20190710092427.122623-1-bdenes@scylladb.com>