The _active callback can get called while are already proposing. If
that happens, we should not prepare a fresh new pending but should
wait for the previous proposal to finish.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
void PaxosService::_active()
{
+ if (is_proposing()) {
+ dout(10) << "_acting - proposing" << dendl;
+ return;
+ }
if (!is_active()) {
dout(10) << "_active - not active" << dendl;
wait_for_active(new C_Active(this));