Skip to content

Commit f4ac1f4

Browse files
authored
Merge pull request ceph#55265 from vshankar/wip-58878
osdc/Journaler: derr log when header update get (possibly) overwritten out-of-order Reviewed-by: Patrick Donnelly <[email protected]> Reviewed-by: Dhairya Parmar <[email protected]>
2 parents 23ab2b7 + 2e1ee1f commit f4ac1f4

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/osdc/Journaler.cc

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,21 @@ void Journaler::_finish_write_head(int r, Header &wrote,
493493
}
494494
ceph_assert(!readonly);
495495
ldout(cct, 10) << "_finish_write_head " << wrote << dendl;
496-
last_committed = wrote;
496+
if (wrote.write_pos < last_committed.write_pos ||
497+
wrote.expire_pos < last_committed.expire_pos ||
498+
wrote.trimmed_pos < last_committed.trimmed_pos) {
499+
lderr(cct) << __func__ << ": not updating last_committed: "
500+
<< "(wrote.write_pos/last_committed.write_pos="
501+
<< wrote.write_pos << "," << last_committed.write_pos << "), "
502+
<< "(wrote.expire_pos/last_committed.expire_pos="
503+
<< wrote.expire_pos << "," << last_committed.expire_pos << "), "
504+
<< "(wrote.trimmed_pos/last_committed.trimmed_pos="
505+
<< wrote.trimmed_pos << "," << last_committed.trimmed_pos << ")"
506+
<< dendl;
507+
ceph_abort();
508+
} else {
509+
last_committed = wrote;
510+
}
497511
if (oncommit) {
498512
oncommit->complete(r);
499513
}

0 commit comments

Comments
 (0)