Currently, the last mutation emitted by split_mutation could be empty. It can happen as follows: - consume range tombstone change at pos `1` with some timestamp - consume clustering row at pos `2` - flush: this will create mutation with range tombstone (1, 2) and clustering row at 2 - consume range tombstone change at pos `2` with no timestamp (i.e. closing rtc) - end of partition since the closing rtc has the same position as the clustering row, no additional range tombstone will be emitted -- the only necessary range tombstone was already emitted in the previous mutation. On the other hand, `test_split_mutations` expects all emitted mutations to be non-empty, which is a sane expectation for this function. The test catched a case like this with random-seed=629157129. Fix this by skipping the last mutation if it turns out to be empty. Fixes: scylladb/scylladb#18042 Closes scylladb/scylladb#18375
17 KiB
17 KiB