FASTER icon indicating copy to clipboard operation
FASTER copied to clipboard

[C++] Guard against empty compaction ranges

Open kkanellis opened this issue 3 months ago • 0 comments

Previously, compaction could stall indefinitely if the provided until_address was equal to hlog.begin_address. This could occur, if called from an existing test when auto_compaction is false. In this case, pages_available remained permanently true, causing compaction threads to spin and preventing LightEpoch from draining pending GC callbacks (as reported in #944).

The changes in this PR ensure we validate the compaction range upfront (until_address > hlog.begin_address). If the range is invalid, we now skip compaction. When the call originates from the F2Kv class, a warning is logged before skipping.

kkanellis avatar Sep 29 '25 21:09 kkanellis