dad2731729
Summary: In KeyMayExist.db_test we do a Flush which causes sst file to be written and added as open file in TableCache, but block cache for the file is not populated. So value_found should have been false where it was true and KeyMayExist.db_test should not have passed earlier. But it passed because BlockReader in table/table.cc takes 2 default arguments at the end called for_compaction and no_io. Although I passed no_io=true from InternalGet to BlockReader, but it understood for_compaction=true and defaulted no_io to false. This is a bug and although will be removed by Dhruba's new patch to incorporate no_io in readoptions, I'm submitting this patch to fix this bug independently of that patch. Test Plan: make all check Reviewers: dhruba, haobo Reviewed By: dhruba CC: leveldb Differential Revision: https://reviews.facebook.net/D12537 |
||
---|---|---|
.. | ||
block_builder.cc | ||
block_builder.h | ||
block_test.cc | ||
block.cc | ||
block.h | ||
filter_block_test.cc | ||
filter_block.cc | ||
filter_block.h | ||
format.cc | ||
format.h | ||
iter_heap.h | ||
iterator_wrapper.h | ||
iterator.cc | ||
merger.cc | ||
merger.h | ||
table_builder.cc | ||
table_test.cc | ||
table.cc | ||
table.h | ||
two_level_iterator.cc | ||
two_level_iterator.h |