From: Samuel Just Date: Fri, 29 Aug 2014 21:04:04 +0000 (-0700) Subject: PG::init: clear rollback info for backfill as well X-Git-Tag: v0.86~112^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1e69ff2f3c7940d3969f5357b5aa1463015213e2;p=ceph.git PG::init: clear rollback info for backfill as well Otherwise, we won't remove the old rollback objects from a resurrected pg. In rare cases, this can cause us to get an EEXIST if we happen to reuse the same rename id on the same object in a subsequent interval. Fixes: #9293 Related to: 8346e10755027e982f26bab4642334fd91cc31aa Backport: firefly Signed-off-by: Samuel Just --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 72d349fca31a8..f558a00867d20 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -2418,6 +2418,11 @@ void PG::init( dout(10) << __func__ << ": Setting backfill" << dendl; info.last_backfill = hobject_t(); info.last_complete = info.last_update; + + PGLogEntryHandler rollbacker; + pg_log_t empty; + pg_log.claim_log_and_clear_rollback_info(empty, &rollbacker); + rollbacker.apply(this, t); pg_log.mark_log_for_rewrite(); }