From: Ricardo Dias Date: Mon, 14 Jan 2019 11:36:06 +0000 (+0000) Subject: msg/async: msgr2: unregister con from accept vs mark_down race X-Git-Tag: v14.1.0~271^2~29 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3093667b19f646ad7923bd7adc9275203113210e;p=ceph.git msg/async: msgr2: unregister con from accept vs mark_down race Msgr2 version of PR #25755 Signed-off-by: Ricardo Dias --- diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc index 856c450e6cb3..03b478b8ef3b 100644 --- a/src/msg/async/ProtocolV2.cc +++ b/src/msg/async/ProtocolV2.cc @@ -650,6 +650,7 @@ CtPtr ProtocolV2::_fault() { } else { ldout(cct, 0) << __func__ << " initiating reconnect" << dendl; connect_seq++; + global_seq = messenger->get_global_seq(); state = START_CONNECT; connection->state = AsyncConnection::STATE_CONNECTING; } @@ -666,6 +667,7 @@ CtPtr ProtocolV2::_fault() { backoff.set_from_double(cct->_conf->ms_max_backoff); } + global_seq = messenger->get_global_seq(); state = START_CONNECT; connection->state = AsyncConnection::STATE_CONNECTING; ldout(cct, 10) << __func__ << " waiting " << backoff << dendl; @@ -2893,6 +2895,7 @@ CtPtr ProtocolV2::send_server_ident() { << " state changed while accept_conn, it must be mark_down" << dendl; ceph_assert(state == CLOSED || state == NONE); + messenger->unregister_conn(connection); connection->inject_delay(); return _fault(); } @@ -2949,6 +2952,7 @@ CtPtr ProtocolV2::send_reconnect_ok() { << " state changed while accept_conn, it must be mark_down" << dendl; ceph_assert(state == CLOSED || state == NONE); + messenger->unregister_conn(connection); connection->inject_delay(); return _fault(); }