• A
    Fixing race condition in DBTest.DynamicMemtableOptions · 20508329
    Andres Noetzli 提交于
    Summary:
    This patch fixes a race condition in DBTEst.DynamicMemtableOptions. In rare cases,
    it was possible that the main thread would fill up both memtables before the flush
    job acquired its work. Then, the flush job was flushing both memtables together,
    producing only one L0 file while the test expected two. Now, the test waits for
    flushes to finish earlier, to make sure that the memtables are flushed in separate
    flush jobs.
    
    Test Plan:
    Insert "usleep(10000);" after "IOSTATS_SET_THREAD_POOL_ID(Env::Priority::HIGH);" in BGWorkFlush()
    to make the issue more likely. Then test with:
    make db_test && time while ./db_test --gtest_filter=*DynamicMemtableOptions; do true; done
    
    Reviewers: rven, sdong, yhchiang, anthony, igor
    
    Reviewed By: igor
    
    Subscribers: dhruba, leveldb
    
    Differential Revision: https://reviews.facebook.net/D45429
    20508329
db_test.cc 292.1 KB