Summary:
This fixes #
3130525. Dhruba's suggestion and Tnovak's implementation :)
The issue was with SkipEmptyDataBlocksForward(), but I also changed SkipEmptyDataBlocksBackward(). Is that OK?
Test Plan: Run the logdevice test
Reviewers: dhruba
Reviewed By: dhruba
CC: leveldb
Differential Revision: https://reviews.facebook.net/D13911
void TwoLevelIterator::SkipEmptyDataBlocksForward() {
- while (data_iter_.iter() == nullptr || !data_iter_.Valid()) {
+ while (data_iter_.iter() == nullptr || (!data_iter_.Valid() &&
+ !data_iter_.status().IsIncomplete())) {
// Move to next block
if (!index_iter_.Valid()) {
SetDataIterator(nullptr);
}
void TwoLevelIterator::SkipEmptyDataBlocksBackward() {
- while (data_iter_.iter() == nullptr || !data_iter_.Valid()) {
+ while (data_iter_.iter() == nullptr || (!data_iter_.Valid() &&
+ !data_iter_.status().IsIncomplete())) {
// Move to next block
if (!index_iter_.Valid()) {
SetDataIterator(nullptr);