]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: Monitor: routed requests handling op requests
authorJoao Eduardo Luis <joao@suse.de>
Wed, 24 Jun 2015 10:50:50 +0000 (11:50 +0100)
committerJoao Eduardo Luis <joao@suse.de>
Thu, 16 Jul 2015 17:31:22 +0000 (18:31 +0100)
Signed-off-by: Joao Eduardo Luis <joao@suse.de>
src/mon/Monitor.cc
src/mon/Monitor.h

index 284af9f4866c1e399d8f29770acef7578fe7278d..2899564d196393aaa9be8ac2ce2902963afe659f 100644 (file)
@@ -3052,6 +3052,7 @@ void Monitor::forward_request_leader(MonOpRequestRef op)
     rr->con_features = rr->con->get_features();
     encode_message(req, CEPH_FEATURES_ALL, rr->request_bl);   // for my use only; use all features
     rr->session = static_cast<MonSession *>(session->get());
+    rr->op = op;
     routed_requests[rr->tid] = rr;
     session->routed_request_tids.insert(rr->tid);
     
@@ -3070,6 +3071,7 @@ void Monitor::forward_request_leader(MonOpRequestRef op)
     }
     messenger->send_message(forward, monmap->get_inst(mon));
     op->mark_forwarded();
+    assert(op->get_req()->get_type() != 0);
   } else {
     dout(10) << "forward_request no session for request " << *req << dendl;
   }
@@ -3292,10 +3294,11 @@ void Monitor::resend_routed_requests()
     if (mon == rank) {
       dout(10) << " requeue for self tid " << rr->tid << " " << *req << dendl;
       req->set_connection(rr->con);
-      MonOpRequestRef op = op_tracker.create_request<MonOpRequest>(req);
-      retry.push_back(new C_RetryMessage(this, op));
+      rr->op->mark_event("retry routed request");
+      retry.push_back(new C_RetryMessage(this, rr->op));
       delete rr;
     } else {
+      rr->op->mark_event("resend forwarded message to leader");
       dout(10) << " resend to mon." << mon << " tid " << rr->tid << " " << *req << dendl;
       MForward *forward = new MForward(rr->tid, req, rr->con_features,
                                       rr->session->caps);
index 1b54b0626a02ba1e0ba6375cfaf62d039c64b2da..88703f988cb9247d035712ea5c90f048aff7a7cf 100644 (file)
@@ -789,6 +789,7 @@ public:
     ConnectionRef con;
     uint64_t con_features;
     entity_inst_t client_inst;
+    MonOpRequestRef op;
 
     RoutedRequest() : tid(0), session(NULL), con_features(0) {}
     ~RoutedRequest() {