Describe the bug
/flush
call on blocks based ingesters can cause creation of overlapping blocks.
This is because we call CompactHead
for the entire Head block range which includes the valid time for samples to be ingested where TSDB doesn't safeguard much, hence some samples can slip in overlapping with the block being created parallely in the /flush
call.
More info is in this issue prometheus/prometheus#8055
Storage Engine