]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
objecter: don't take extra throttle budget for resent ops 914/head
authorJosh Durgin <josh.durgin@inktank.com>
Sat, 7 Dec 2013 00:03:20 +0000 (16:03 -0800)
committerJosh Durgin <josh.durgin@inktank.com>
Sat, 7 Dec 2013 00:03:20 +0000 (16:03 -0800)
These ops have already taken their budget in the original op_submit().
It will be returned via put_op_budget() when they complete.
If there were many localized reads of missing objects from replicas,
or cache pool redirects, this would cause the objecter to use up all
of its op throttle budget and hang.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
src/osdc/Objecter.cc

index 4083e93fe34625d5e782ed2ffffdfb90ed9f02d0..d2aa34897f9921b67edc4e52af3fd11a0ee3c6b9 100644 (file)
@@ -1617,7 +1617,7 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m)
     ldout(cct, 5) << " got redirect reply; redirecting" << dendl;
     unregister_op(op);
     m->get_redirect().combine_with_locator(op->target_oloc, op->target_oid.name);
-    op_submit(op);
+    _op_submit(op);
     m->put();
     return;
   }
@@ -1625,7 +1625,7 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m)
   if (rc == -EAGAIN) {
     ldout(cct, 7) << " got -EAGAIN, resubmitting" << dendl;
     unregister_op(op);
-    op_submit(op);
+    _op_submit(op);
     m->put();
     return;
   }