test: Sstable on_delete() is not necessarily in a thread
One of the test cases injects an observer into sstable->unlink() method via its _on_delete() callback. The test's callback assumes that it runs in an async context, but it's a happy coincidence, because deletion via the deletion log runs so. Next patch is changing it and the test case will no longer work. But since it's a test case it can just directly call a libc function for its needs Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -5200,7 +5200,8 @@ SEASTAR_TEST_CASE(cleanup_during_offstrategy_incremental_compaction_test) {
|
||||
sstables_closed++;
|
||||
}));
|
||||
observers.push_back(sst->add_on_delete_handler([&] (sstable& sst) mutable {
|
||||
auto missing = !file_exists(sst.get_filename()).get();
|
||||
// ATTN -- the _on_delete callback is not necessarily running in thread
|
||||
auto missing = (::access(sst.get_filename().c_str(), F_OK) != 0);
|
||||
testlog.info("Deleting sstable of generation {}: missing={}", sst.generation(), missing);
|
||||
sstables_missing_on_delete += missing;
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user