Skip to content

Commit

Permalink
GTEST/UCP: Destroy failed EP in err handling callback to avoid EP_CHE…
Browse files Browse the repository at this point in the history
…CK errors
  • Loading branch information
dmitrygx committed Jan 6, 2021
1 parent 145b2c4 commit 64c4221
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion test/gtest/ucp/test_ucp_sockaddr.cc
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ class test_ucp_sockaddr : public ucp_test {
* handle a large worker address but neither ud nor ud_x are present */
ep_params.err_mode = UCP_ERR_HANDLING_MODE_PEER;
ep_params.err_handler.cb = err_handler_cb;
ep_params.err_handler.arg = NULL;
ep_params.err_handler.arg = this;
return ep_params;
}

Expand Down Expand Up @@ -1613,6 +1613,19 @@ class test_ucp_sockaddr_protocols_err : public test_ucp_sockaddr_protocols {
test_ucp_sockaddr_protocols::cleanup();
}

static void err_handler_cb(void *arg, ucp_ep_h ep, ucs_status_t status) {
test_ucp_sockaddr::err_handler_cb(arg, ep, status);

test_ucp_sockaddr_protocols *test =
static_cast<test_ucp_sockaddr_protocols*>(arg);
if (test->sender().ep() == ep) {
test->sender().disconnect_nb(0, 0, UCP_EP_CLOSE_MODE_FORCE);
} else {
ASSERT_EQ(test->receiver().ep(), ep);
test->receiver().disconnect_nb(0, 0, UCP_EP_CLOSE_MODE_FORCE);
}
}

protected:
ucs::ptr_vector<ucs::scoped_setenv> m_env;
};
Expand Down

0 comments on commit 64c4221

Please sign in to comment.