From 8d0180b1b7b48662daef199931efc7f2a6a1c431 Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Fri, 6 Dec 2013 16:03:20 -0800 Subject: [PATCH] objecter: don't take extra throttle budget for resent ops 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 --- src/osdc/Objecter.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 4083e93fe346..d2aa34897f99 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -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; } -- 2.47.3