1
1

osc/rdma: fix hang when accumulating with MPI_REPLACE

The replace callback did not increment the incoming frag counter. This
leads to a hang during synchronization. This commit adds the increment
and also puts the request on the garbage collection list to fix a leak.

This fixes a hang found when running the mpich test suite.

cmr=v1.8.2:reviewer=bbenton

This commit was SVN r32016.
Этот коммит содержится в:
Nathan Hjelm 2014-06-17 14:53:29 +00:00
родитель 7f6de57653
Коммит 927098d567

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

@ -763,6 +763,16 @@ static int ompi_osc_rdma_acc_op_queue (ompi_osc_rdma_module_t *module, ompi_osc_
static int replace_cb (ompi_request_t *request)
{
ompi_osc_rdma_module_t *module = (ompi_osc_rdma_module_t *) request->req_complete_cb_data;
int rank = MPI_PROC_NULL;
if (request->req_status.MPI_TAG & 0x01) {
rank = request->req_status.MPI_SOURCE;
}
mark_incoming_completion (module, rank);
/* put this request on the garbage colletion list */
osc_rdma_gc_add_request (request);
/* unlock the accumulate lock */
ompi_osc_rdma_accumulate_unlock (module);