if (socket) {
socket->shutdown();
}
- if (!reconnect && new_client_cookie != client_cookie) {
- seastar::with_gate(pending_dispatch, [this] {
- return dispatcher.ms_handle_accept(
- seastar::static_pointer_cast<SocketConnection>(conn.shared_from_this()));
- }).handle_exception([this] (std::exception_ptr eptr) {
- logger().error("{} ms_handle_accept caught exception: {}", conn, eptr);
- ceph_abort("unexpected exception from ms_handle_accept()");
- });
- }
+ seastar::with_gate(pending_dispatch, [this] {
+ return dispatcher.ms_handle_accept(
+ seastar::static_pointer_cast<SocketConnection>(conn.shared_from_this()));
+ }).handle_exception([this] (std::exception_ptr eptr) {
+ logger().error("{} ms_handle_accept caught exception: {}", conn, eptr);
+ ceph_abort("unexpected exception from ms_handle_accept()");
+ });
seastar::with_gate(pending_dispatch,
[this,
reconnect,
}).then([] (ConnResults& results) {
results[0].assert_state_at(conn_state_t::established);
results[0].assert_connect(0, 0, 0, 0);
- results[0].assert_accept(1, 1, 0, 1);
+ results[0].assert_accept(1, 1, 0, 2);
results[0].assert_reset(0, 0);
results[1].assert_state_at(conn_state_t::replaced);
results[1].assert_connect(0, 0, 0, 0);
}).then([] (ConnResults& results) {
results[0].assert_state_at(conn_state_t::established);
results[0].assert_connect(0, 0, 0, 0);
- results[0].assert_accept(1, 1, 0, 1);
+ results[0].assert_accept(1, 1, 0, 2);
results[0].assert_reset(0, 0);
results[1].assert_state_at(conn_state_t::replaced);
results[1].assert_connect(0, 0, 0, 0);
}).then([bp] (ConnResults& results) {
results[0].assert_state_at(conn_state_t::established);
results[0].assert_connect(0, 0, 0, 0);
- results[0].assert_accept(1, 1, 0, 1);
+ if (bp == Breakpoint{Tag::SESSION_RECONNECT, bp_type_t::READ}) {
+ results[0].assert_accept(1, 1, 0, 2);
+ } else {
+ results[0].assert_accept(1, 1, 0, 3);
+ }
results[0].assert_reset(0, 0);
if (bp == Breakpoint{Tag::SESSION_RECONNECT, bp_type_t::READ}) {
results[1].assert_state_at(conn_state_t::closed);
}).then([] (ConnResults& results) {
results[0].assert_state_at(conn_state_t::established);
results[0].assert_connect(0, 0, 0, 0);
- results[0].assert_accept(1, 1, 0, 1);
+ results[0].assert_accept(1, 1, 0, 2);
results[0].assert_reset(0, 0);
results[1].assert_state_at(conn_state_t::replaced);
results[1].assert_connect(0, 0, 0, 0);
}).then([] (ConnResults& results) {
results[0].assert_state_at(conn_state_t::established);
results[0].assert_connect(1, 1, 0, 1);
- results[0].assert_accept(0, 0, 0, 0);
+ results[0].assert_accept(0, 0, 0, 1);
results[0].assert_reset(0, 0);
results[1].assert_state_at(conn_state_t::replaced);
results[1].assert_connect(0, 0, 0, 0);
results[0].assert_state_at(conn_state_t::established);
ceph_assert(results[0].connect_attempts == 2);
ceph_assert(results[0].cnt_connect_dispatched == 1);
- results[0].assert_accept(0, 0, 0, 0);
+ results[0].assert_accept(0, 0, 0, 1);
results[0].assert_reset(0, 0);
results[1].assert_state_at(conn_state_t::replaced);
results[1].assert_connect(0, 0, 0, 0);