From: Samuel Just Date: Mon, 31 Mar 2014 23:20:52 +0000 (-0700) Subject: ReplicatedPG: improve get_object_context debugging X-Git-Tag: v0.80-rc1~96^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=48fbce98bd59e2207718cb27c26676e59dd2a9f2;p=ceph.git ReplicatedPG: improve get_object_context debugging Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 27528c84643..1f943147a19 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -6776,9 +6776,8 @@ ObjectContextRef ReplicatedPG::get_object_context(const hobject_t& soid, pg_log_entry_t::LOST_REVERT)); ObjectContextRef obc = object_contexts.lookup(soid); if (obc) { - dout(10) << "get_object_context " << obc << " " << soid - << " " << obc->rwstate - << " oi:" << obc->obs.oi << dendl; + dout(10) << __func__ << ": found obc in cache: " << obc + << dendl; } else { // check disk bufferlist bv; @@ -6788,15 +6787,28 @@ ObjectContextRef ReplicatedPG::get_object_context(const hobject_t& soid, } else { int r = pgbackend->objects_get_attr(soid, OI_ATTR, &bv); if (r < 0) { - if (!can_create) + if (!can_create) { + dout(10) << __func__ << ": no obc for soid " + << soid << " and !can_create" + << dendl; return ObjectContextRef(); // -ENOENT! + } + dout(10) << __func__ << ": no obc for soid " + << soid << " but can_create" + << dendl; // new object. object_info_t oi(soid); SnapSetContext *ssc = get_snapset_context( soid, true, soid.has_snapset() ? attrs : 0); - return create_object_context(oi, ssc); + obc = create_object_context(oi, ssc); + dout(10) << __func__ << ": " << obc << " " << soid + << " " << obc->rwstate + << " oi: " << obc->obs.oi + << " ssc: " << obc->ssc + << " snapset: " << obc->ssc->snapset << dendl; + return obc; } } @@ -6827,11 +6839,15 @@ ObjectContextRef ReplicatedPG::get_object_context(const hobject_t& soid, } } - dout(10) << "get_object_context " << obc << " " << soid - << " " << obc->rwstate - << " oi:" << obc->obs.oi - << " 0 -> 1 read " << obc->obs.oi << dendl; + dout(10) << __func__ << ": creating obc from disk: " << obc + << dendl; } + assert(obc->ssc); + dout(10) << __func__ << ": " << obc << " " << soid + << " " << obc->rwstate + << " oi: " << obc->obs.oi + << " ssc: " << obc->ssc + << " snapset: " << obc->ssc->snapset << dendl; return obc; }