From 2f7522c83a35b2726e73d110ab07a25308f5ea13 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 2 Apr 2014 08:49:33 -0700 Subject: [PATCH] msgr: add ms_dump_on_send option This is useful only for debugging. The encoded contents of a message are dumped to the log on message send. This is useful when valgrind is triggering warnings about uninitialized memory in messages because the call chain will indicate which message type is to blame, whereas the usual writer thread context does not tell us any useful information. Signed-off-by: Sage Weil --- src/common/config_opts.h | 1 + src/msg/SimpleMessenger.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 6b97c82cfba..ff674cfc19b 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -126,6 +126,7 @@ OPTION(ms_inject_delay_msg_type, OPT_STR, "") // the type of message to del OPTION(ms_inject_delay_max, OPT_DOUBLE, 1) // seconds OPTION(ms_inject_delay_probability, OPT_DOUBLE, 0) // range [0, 1] OPTION(ms_inject_internal_delays, OPT_DOUBLE, 0) // seconds +OPTION(ms_dump_on_send, OPT_BOOL, false) // hexdump msg to log on send OPTION(inject_early_sigterm, OPT_BOOL, false) diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index e11783dd0ab..2070fe59124 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -399,6 +399,19 @@ ConnectionRef SimpleMessenger::get_loopback_connection() void SimpleMessenger::submit_message(Message *m, Connection *con, const entity_addr_t& dest_addr, int dest_type, bool lazy) { + + if (cct->_conf->ms_dump_on_send) { + m->encode(-1, true); + ldout(cct, 0) << "submit_message " << *m << "\n"; + m->get_payload().hexdump(*_dout); + if (m->get_data().length() > 0) { + *_dout << " data:\n"; + m->get_data().hexdump(*_dout); + } + *_dout << dendl; + m->clear_payload(); + } + // existing connection? if (con) { Pipe *pipe = NULL;