Deleted objects may still be on-disk after merging a log that includes
deletes, so adjust the asserts accordingly.
A case like:
980'1192 (972'1186) modify foo
--- osd restart ---
999'1196 (980'1192) delete foo
1003'1199 (0'0) modify foo
1015'1208 (1003'1199) delete foo
Would trigger the assert(miter->second.have == oi.info) since the
'have' version would would be reset to 0'0.
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
auto miter = missing.get_items().find(i->soid);
assert(miter != missing.get_items().end());
assert(miter->second.need == i->version);
- assert(miter->second.have == oi.version);
+ // the 'have' version is reset if an object is deleted,
+ // then created again
+ assert(miter->second.have == oi.version || miter->second.have == eversion_t());
checked.insert(i->soid);
} else {
missing.add(i->soid, i->version, oi.version, i->is_delete());