auth debug = true
ms die on old message = true
+ ms die on bug = true
mon pg warn min per osd = 1
mon pg warn max per osd = 10000 # <= luminous
OPTION(ms_die_on_unhandled_msg, OPT_BOOL)
OPTION(ms_die_on_old_message, OPT_BOOL) // assert if we get a dup incoming message and shouldn't have (may be triggered by pre-541cd3c64be0dfa04e8a2df39422e0eb9541a428 code)
OPTION(ms_die_on_skipped_message, OPT_BOOL) // assert if we skip a seq (kernel client does this intentionally)
+OPTION(ms_die_on_bug, OPT_BOOL)
OPTION(ms_dispatch_throttle_bytes, OPT_U64)
OPTION(ms_bind_ipv6, OPT_BOOL)
OPTION(ms_bind_port_min, OPT_INT)
.set_default(false)
.set_description("Induce a daemon crash/exit if sender skips a message sequence number"),
+ Option("ms_die_on_bug", Option::TYPE_BOOL, Option::LEVEL_DEV)
+ .set_default(false)
+ .set_description("Induce a crash/exit on various bugs (for testing purposes)"),
+
Option("ms_dispatch_throttle_bytes", Option::TYPE_SIZE, Option::LEVEL_ADVANCED)
.set_default(100_M)
.set_description("Limit messages that are read off the network but still being processed"),
[&next, this](char *buffer, int r) {
if (unlikely(pre_auth.enabled) && r >= 0) {
pre_auth.rxbuf.append(*next.node);
+ ceph_assert(!cct->_conf->ms_die_on_bug ||
+ pre_auth.rxbuf.length() < 1000000);
}
next.r = r;
run_continuation(next);
// error or done synchronously
if (unlikely(pre_auth.enabled) && r >= 0) {
pre_auth.rxbuf.append(*next.node);
+ ceph_assert(!cct->_conf->ms_die_on_bug ||
+ pre_auth.rxbuf.length() < 1000000);
}
next.r = r;
return &next;
bufferlist &buffer) {
if (unlikely(pre_auth.enabled)) {
pre_auth.txbuf.append(buffer);
+ ceph_assert(!cct->_conf->ms_die_on_bug ||
+ pre_auth.txbuf.length() < 1000000);
}
ssize_t r =