readers/mutation_readers: compacting_reader: remember injected partition-end

Currently injecting a partition-end doesn't update
`_last_uncompacted_kind`, which will allow for a subsequent
`next_partition()` call to trigger injecting a partition-end, leading to
an invalid mutation fragment stream (partition-end after partition-end).
Fix by changing `_last_uncompacted_kind` to `partition_end` when
injecting a partition-end, making subsequent injection attempts noop.

Fixes: #11608
This commit is contained in:
Botond Dénes
2022-09-12 16:19:06 +03:00
parent 681e6ae77f
commit 16a0025dc3

View File

@@ -1409,6 +1409,7 @@ private:
if (_last_uncompacted_kind != mutation_fragment_v2::kind::partition_end) {
_ignore_partition_end = true;
_compactor.consume_end_of_partition(*this, _gc_consumer);
_last_uncompacted_kind = mutation_fragment_v2::kind::partition_end;
_ignore_partition_end = false;
}
}