summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-02-12 13:52:09 -0800
committerSage Weil <sage@inktank.com>2013-02-12 14:10:18 -0800
commit1e68ccf6aa139775c378eaab5a103a9cbb2f4049 (patch)
tree3b9aaf205a9014a28464d4e7b7e469b0fd2064e3
parenta88f9bea54009c1a40a701025c0eb97cc1480ec5 (diff)
downloadceph-1e68ccf6aa139775c378eaab5a103a9cbb2f4049.tar.gz
msg/Messenger: do not crash on unhandled message
This is just polite. Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/common/config_opts.h1
-rw-r--r--src/msg/Messenger.h9
2 files changed, 5 insertions, 5 deletions
diff --git a/src/common/config_opts.h b/src/common/config_opts.h
index ce3bca20492..733e71038c0 100644
--- a/src/common/config_opts.h
+++ b/src/common/config_opts.h
@@ -100,6 +100,7 @@ OPTION(ms_initial_backoff, OPT_DOUBLE, .2)
OPTION(ms_max_backoff, OPT_DOUBLE, 15.0)
OPTION(ms_nocrc, OPT_BOOL, false)
OPTION(ms_die_on_bad_msg, OPT_BOOL, false)
+OPTION(ms_die_on_unexpected_msg, OPT_BOOL, false)
OPTION(ms_dispatch_throttle_bytes, OPT_U64, 100 << 20)
OPTION(ms_bind_ipv6, OPT_BOOL, false)
OPTION(ms_bind_port_min, OPT_INT, 6800)
diff --git a/src/msg/Messenger.h b/src/msg/Messenger.h
index f47c2cf5bb5..2f0710c9ebf 100644
--- a/src/msg/Messenger.h
+++ b/src/msg/Messenger.h
@@ -552,11 +552,10 @@ public:
p++)
if ((*p)->ms_dispatch(m))
return;
- std::ostringstream oss;
- oss << "ms_deliver_dispatch: fatal error: unhandled message "
- << m << " " << *m << " from " << m->get_source_inst();
- dout_emergency(oss.str());
- assert(0);
+ lsubdout(cct, ms, 0) << "ms_deliver_dispatch: unhandled message " << m << " " << *m << " from "
+ << m->get_source_inst() << dendl;
+ assert(!cct->_conf->ms_die_on_unexpected_msg);
+ m->put();
}
/**
* Notify each Dispatcher of a new Connection. Call