mirror of
https://github.com/ceph/ceph
synced 2024-12-17 00:46:05 +00:00
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 <sage@inktank.com>
This commit is contained in:
parent
87e6a62e4f
commit
2f7522c83a
@ -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)
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user