From: Sage Weil Date: Wed, 10 Sep 2014 00:28:54 +0000 (-0700) Subject: osdc/Objecter: drop bad session nref assert X-Git-Tag: v0.86~98^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5a784cd3ebd87d7b626b70600184ecfb26a809c7;p=ceph.git osdc/Objecter: drop bad session nref assert This is a bad assert. Specifically, handle_osd_op_reply may still be holding the session ref while it is calling the completion for a previous request. This is safe: it is only holding the session ref after it dropped the global map rwlock because of the per-session completion locks. The request in question was already marked completed by the time our thread took the session lock. Fixes: #9241 Signed-off-by: Sage Weil --- diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 407c38e543f9d..7a05eba364db3 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -1317,7 +1317,6 @@ void Objecter::close_session(OSDSession *s) osd_sessions.erase(s->osd); s->lock.unlock(); - assert(s->get_nref() == 1); // We reassigned any/all ops, so should be last ref put_session(s); // Assign any leftover ops to the homeless session