You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Andrew Kryczka
538d2365e9
Fix race condition in BackupEngineTest.ChangeManifestDuringBackupCreation ( #9327 )
...
Summary:
The failure looked like this:
```
utilities/backupable/backupable_db_test.cc:3161: Failure
Value of: db_chroot_env_->FileExists(prev_manifest_path).IsNotFound()
Actual: false
Expected: true
```
The failure could be coerced consistently with the following patch:
```
diff --git a/db/db_impl/db_impl_compaction_flush.cc b/db/db_impl/db_impl_compaction_flush.cc
index 80410f671..637636791 100644
--- a/db/db_impl/db_impl_compaction_flush.cc
+++ b/db/db_impl/db_impl_compaction_flush.cc
@@ -2772,6 +2772,8 @@ void DBImpl::BackgroundCallFlush(Env::Priority thread_pri) {
if (job_context.HaveSomethingToClean() ||
job_context.HaveSomethingToDelete() || !log_buffer.IsEmpty()) {
mutex_.Unlock();
+ bg_cv_.SignalAll();
+ sleep(1);
TEST_SYNC_POINT("DBImpl::BackgroundCallFlush:FilesFound");
// Have to flush the info logs before bg_flush_scheduled_--
// because if bg_flush_scheduled_ becomes 0 and the lock is
```
The cause was a familiar problem, which is manual flush/compaction may
return before files they obsoleted are removed. The solution is just to
wait for "scheduled" work to complete, which includes all phases
including cleanup.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9327
Test Plan:
after this PR, even the above patch to coerce the bug cannot
cause the test to fail.
Reviewed By: riversand963
Differential Revision: D33252208
Pulled By: ajkr
fbshipit-source-id: 720a7eaca58c7247d221911fffe3d5e1dbf581e9
3 years ago
..
backupable
Fix race condition in BackupEngineTest.ChangeManifestDuringBackupCreation ( #9327 )
3 years ago
blob_db
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
cassandra
Fix flaky CassandraFunctionalTest...ExpiredColumnsToTombstone ( #9226 )
3 years ago
checkpoint
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
compaction_filters
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
convenience
Add a SystemClock class to capture the time functions of an Env ( #7858 )
4 years ago
leveldb_options
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
memory
Make types of Immutable/Mutable Options fields match that of the underlying Option ( #8176 )
4 years ago
merge_operators
Replace most typedef with using= ( #8751 )
3 years ago
option_change_migration
Fix a minor issue with initializing the test path ( #8555 )
3 years ago
options
Allow WAL dir to change with db dir ( #8582 )
3 years ago
persistent_cache
Improve support for using regexes ( #8740 )
3 years ago
simulator_cache
Make TraceRecord and Replayer public ( #8611 )
3 years ago
table_properties_collectors
Make WalFilter, SstPartitionerFactory, FileChecksumGenFactory, and TableProperties Customizable ( #8638 )
3 years ago
trace
Fix and detect headers with missing dependencies ( #8893 )
3 years ago
transactions
Expose locktree's wait count in RangeLockManagerHandle::Counters ( #9289 )
3 years ago
ttl
Cleanup includes in dbformat.h ( #8930 )
3 years ago
write_batch_with_index
Check that newIteratorWithBase regardless of WBWI Overwrite Mode ( #8134 )
3 years ago
cache_dump_load.cc
Introduce a mechanism to dump out blocks from block cache and re-insert to secondary cache ( #8912 )
3 years ago
cache_dump_load_impl.cc
New stable, fixed-length cache keys ( #9126 )
3 years ago
cache_dump_load_impl.h
Initialize cache dumper `DumpUnit` in constructor ( #9014 )
3 years ago
compaction_filters.cc
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
debug.cc
In ParseInternalKey(), include corrupt key info in Status ( #7515 )
4 years ago
env_librados.cc
Fix EnvLibrados and add to CI ( #9088 )
3 years ago
env_librados.md
Update branch name to main in env_librados.md ( #8738 )
3 years ago
env_librados_test.cc
Fix EnvLibrados and add to CI ( #9088 )
3 years ago
env_mirror.cc
Add new Append API with DataVerificationInfo to Env WritableFile ( #8071 )
4 years ago
env_mirror_test.cc
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
env_timed.cc
Make FileSystem a Customizable Class ( #8649 )
3 years ago
env_timed.h
Make FileSystem a Customizable Class ( #8649 )
3 years ago
env_timed_test.cc
Make env*_test work with ASSERT_STATUS_CHECKED ( #7176 )
4 years ago
fault_injection_env.cc
Protect existing files in `FaultInjectionTest{Env,FS}::ReopenWritableFile()` ( #8995 )
3 years ago
fault_injection_env.h
Protect existing files in `FaultInjectionTest{Env,FS}::ReopenWritableFile()` ( #8995 )
3 years ago
fault_injection_fs.cc
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
fault_injection_fs.h
Fix a bug causing duplicate trailing entries in WritableFile (buffered IO) ( #9236 )
3 years ago
fault_injection_secondary_cache.cc
Secondary cache error injection ( #9002 )
3 years ago
fault_injection_secondary_cache.h
Secondary cache error injection ( #9002 )
3 years ago
memory_allocators.h
Make MemoryAllocator into a Customizable class ( #8980 )
3 years ago
merge_operators.cc
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
merge_operators.h
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
object_registry.cc
Add support to the ObjectRegistry for ManagedObjects ( #8658 )
3 years ago
object_registry_test.cc
Add support to the ObjectRegistry for ManagedObjects ( #8658 )
3 years ago
util_merge_operators_test.cc
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
wal_filter.cc
Make WalFilter, SstPartitionerFactory, FileChecksumGenFactory, and TableProperties Customizable ( #8638 )
3 years ago