mirror of
https://github.com/google/leveldb.git
synced 2025-06-07 09:52:42 +08:00
Allow compaction to finish in TEST_CompactRange
Waits for a current transaction to finish in TEST_CompactRange when the `background_work_finished_signal_` signal may be emitted due to an error. This is a prospective fix for flaky crashes observed in b/351680196#comment5. PiperOrigin-RevId: 663457574
This commit is contained in:
parent
068d5ee1a3
commit
eb31d19999
@ -629,6 +629,11 @@ void DBImpl::TEST_CompactRange(int level, const Slice* begin,
|
|||||||
background_work_finished_signal_.Wait();
|
background_work_finished_signal_.Wait();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Finish current background compaction in the case where
|
||||||
|
// `background_work_finished_signal_` was signalled due to an error.
|
||||||
|
while (background_compaction_scheduled_) {
|
||||||
|
background_work_finished_signal_.Wait();
|
||||||
|
}
|
||||||
if (manual_compaction_ == &manual) {
|
if (manual_compaction_ == &manual) {
|
||||||
// Cancel my manual compaction since we aborted early for some reason.
|
// Cancel my manual compaction since we aborted early for some reason.
|
||||||
manual_compaction_ = nullptr;
|
manual_compaction_ = nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user