diff --git a/opal/mca/btl/usnic/btl_usnic_endpoint.c b/opal/mca/btl/usnic/btl_usnic_endpoint.c index ebe7c942b8..651fa73c8e 100644 --- a/opal/mca/btl/usnic/btl_usnic_endpoint.c +++ b/opal/mca/btl/usnic/btl_usnic_endpoint.c @@ -113,8 +113,9 @@ static void endpoint_destruct(mca_btl_base_endpoint_t* endpoint) int rc; opal_btl_usnic_proc_t *proc; - /* We should not get here for an endpoint that is on the ACK list, - so it should be safe to unconditionally destruct the ack_li */ + if (endpoint->endpoint_ack_needed) { + opal_btl_usnic_remove_from_endpoints_needing_ack(endpoint); + } OBJ_DESTRUCT(&(endpoint->endpoint_ack_li)); /* Remove the endpoint from the all_endpoints list */