mirror of https://github.com/facebook/rocksdb.git
Fix some missing values in stress test (#13039)
Summary: When `avoid_flush_during_shutdown` is false, DB will flush the memtables if there is some unpersisted data:79790cf2a8/db/db_impl/db_impl.cc (L505-L510)
`has_unpersisted_data_` is a flag that is only turned on for when WAL is disabled, for example:79790cf2a8/db/db_impl/db_impl_write.cc (L525-L528)
In other cases, it just has its default false value. So if disableWAL is false, and avoid_flush_during_shutdown is false, close won't flush memtables. Stress test is also not flush wal/sync wal. There could be missing data, while reopen in stress test doesn't tolerate missing data. To make the test simpler, this changes it to always flush/sync wal during reopen. Pull Request resolved: https://github.com/facebook/rocksdb/pull/13039 Reviewed By: hx235 Differential Revision: D63494695 Pulled By: jowlyzhang fbshipit-source-id: 8f0fd9ed50a482a3955abc0882257ecc2e95926d
This commit is contained in:
parent
79790cf2a8
commit
2c2776f1f3
|
@ -3674,7 +3674,7 @@ void StressTest::Reopen(ThreadState* thread) {
|
|||
// crash-recovery verification does. Therefore it always expects no data loss
|
||||
// and we should ensure no data loss in testing.
|
||||
// TODO(hx235): eliminate the FlushWAL(true /* sync */)/SyncWAL() below
|
||||
if (!FLAGS_disable_wal && FLAGS_avoid_flush_during_shutdown) {
|
||||
if (!FLAGS_disable_wal) {
|
||||
Status s;
|
||||
if (FLAGS_manual_wal_flush_one_in > 0) {
|
||||
s = db_->FlushWAL(/*sync=*/true);
|
||||
|
|
Loading…
Reference in New Issue