1
1

PML/UCX: fixed ucp request free on persistent request completion

- in sine cases persistent request was deleted during completion
  callback, this cause double free of linked UCX request (assert
  in debug build or hang in release build)
- UCX request is freed prior completion calback

Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
Этот коммит содержится в:
Sergey Oblomov 2018-07-20 19:27:58 +03:00
родитель e172849039
Коммит 6fe0a73861

Просмотреть файл

@ -85,10 +85,10 @@ mca_pml_ucx_persistent_request_complete(mca_pml_ucx_persistent_request_t *preq,
ompi_request_t *tmp_req)
{
preq->ompi.req_status = tmp_req->req_status;
ompi_request_complete(&preq->ompi, true);
mca_pml_ucx_persistent_request_detach(preq, tmp_req);
mca_pml_ucx_request_reset(tmp_req);
mca_pml_ucx_persistent_request_detach(preq, tmp_req);
ucp_request_free(tmp_req);
ompi_request_complete(&preq->ompi, true);
}
static inline void mca_pml_ucx_preq_completion(ompi_request_t *tmp_req)