Consider:
- we get a message, put it on a wait list
- the client session resets
- we go back to process the message later and discard
- _ms_dispatch returns false, but nobody drops the msg ref
Since we call _ms_dispatch() a lot internally, we need to always return
true when we are an internal caller.
Fixes: #9176
Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@redhat.com>
return dispatch(s, m, false);
}
dout(1) << __func__ << " dropping stray message " << *m
- << " from " << m->get_source_inst() << dendl;
- return false;
+ << " from " << m->get_source_inst() << dendl;
+ m->put();
+ return true;
}
if (!exited_quorum.is_zero() && !src_is_mon) {