]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/Objecter: drop bad session nref assert 2443/head
authorSage Weil <sage@redhat.com>
Wed, 10 Sep 2014 00:28:54 +0000 (17:28 -0700)
committerSage Weil <sage@redhat.com>
Wed, 10 Sep 2014 00:28:54 +0000 (17:28 -0700)
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 <sage@redhat.com>
src/osdc/Objecter.cc

index 407c38e543f9d878e953e64d6294dbf7ff18a826..7a05eba364db3ae6d3919ac4c24a62b6594172c7 100644 (file)
@@ -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