If a message send hard fails, don't omit to remove it from the
send_q--this results in an assert when the queue is in safe-mode,
but with safe mode disabled, send_q would be corrupted.
Dont fall through and erase the iterator twice. Continue the loop,
as in the incoming release case.
Signed-off-by: Matt Benjamin <matt@cohortfs.com>
}
break;
default:
+ q_iter = send_q.erase(q_iter);
xs->xcon->msg_send_fail(xmsg, code);
+ continue;
break;
};
} else {
break;
default:
/* INCOMING_MSG_RELEASE */
- q_iter = send_q.erase(q_iter);
+ q_iter = send_q.erase(q_iter);
release_xio_rsp(static_cast<XioRsp*>(xs));
continue;
} /* switch (xs->type) */
- q_iter = send_q.erase(q_iter);
+ q_iter = send_q.erase(q_iter);
} /* while */
} /* size > 0 */