Fix BS_OP_ROLLBACK removing an incorrect version

Instead of only removing versions with oid == X and version > Y it was
also removing the previous version in list (with the previous oid or
with version == Y)
This commit is contained in:
Vitaliy Filippov
2020-05-24 01:51:28 +03:00
parent 7df384031a
commit d1602b50b3
2 changed files with 5 additions and 6 deletions
+5 -5
View File
@@ -171,16 +171,16 @@ resume_5:
rm_start--;
while (1)
{
if (rm_start->first.oid != v->oid)
break;
else if (rm_start->first.version <= v->version)
if (rm_start->first.oid != v->oid || rm_start->first.version <= v->version)
{
rm_start++;
break;
}
if (rm_start == dirty_db.begin())
break;
rm_start--;
}
if (rm_end != rm_start)
erase_dirty(rm_start, rm_end, UINT64_MAX);
erase_dirty(rm_start, rm_end, UINT64_MAX);
}
journal.trim();
inflight_writes--;