uint64_t session_mon_tid;
Message *msg;
- entity_inst_t dest;
epoch_t send_osdmap_first;
MRoute() : Message(MSG_ROUTE, HEAD_VERSION, COMPAT_VERSION),
session_mon_tid(t),
msg(m),
send_osdmap_first(0) {}
- MRoute(bufferlist bl, const entity_inst_t& i)
- : Message(MSG_ROUTE, HEAD_VERSION, COMPAT_VERSION),
- session_mon_tid(0),
- dest(i),
- send_osdmap_first(0) {
- auto p = bl.cbegin();
- msg = decode_message(NULL, 0, p);
- }
private:
~MRoute() override {
if (msg)
void decode_payload() override {
auto p = payload.cbegin();
decode(session_mon_tid, p);
- decode(dest, p);
+ entity_inst_t dest_unused;
+ decode(dest_unused, p);
bool m;
decode(m, p);
if (m)
void encode_payload(uint64_t features) override {
using ceph::encode;
encode(session_mon_tid, payload);
- encode(dest, payload, features);
+ entity_inst_t dest_unused;
+ encode(dest_unused, payload, features);
bool m = msg ? true : false;
encode(m, payload);
if (msg)
if (session_mon_tid)
o << " tid " << session_mon_tid << ")";
else
- o << " to " << dest << ")";
+ o << " tid (none)";
}
};
return;
}
if (m->msg)
- dout(10) << "handle_route " << *m->msg << " to " << m->dest << dendl;
+ dout(10) << "handle_route tid " << m->session_mon_tid << " " << *m->msg
+ << dendl;
else
- dout(10) << "handle_route null to " << m->dest << dendl;
+ dout(10) << "handle_route tid " << m->session_mon_tid << " null" << dendl;
// look it up
if (m->session_mon_tid) {
dout(10) << " don't have routed request tid " << m->session_mon_tid << dendl;
}
} else {
- dout(10) << " not a routed request, trying to send anyway" << dendl;
- if (m->msg) {
- messenger->send_message(m->msg, m->dest);
- m->msg = NULL;
- }
+ dout(10) << " not a routed request, ignoring" << dendl;
}
}
Message *payload = new MGenericMessage(CEPH_MSG_SHUTDOWN);
MRoute *m = new MRoute;
m->msg = payload;
- m->dest.addr = msg->get_myaddr();
- m->dest.name = entity_name_t(msg->get_mytype(), -1);
Message *r = send_wait_reply(m, CEPH_MSG_SHUTDOWN);
// we want an error
ASSERT_NE(IS_ERR(r), 0);