Commit 57b297e6 authored by Xin Zhao's avatar Xin Zhao Committed by Pavan Balaji

Bug-fix: set kind of user request in request-based RMA operation correctly.

Here we should set the kind of user request in request-based RMA
operation to MPID_WIN_REQUEST, so that in MPI_Wait function, after
request is completed, it will decrement the ref counter of the
request and free it.

Originally the kind is set to MPID_REQUEST_SEND, which goes into
the path of MPID_REQUEST_SEND in MPI_Wait and causes segment fault
when --enable-debuginfo is set in configure.
Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
parent ba2870aa
......@@ -39,7 +39,7 @@ int MPIDI_Rput(const void *origin_addr, int origin_count,
/* Create user request, initially cc=1, ref=1 */
ureq = MPID_Request_create();
MPIU_ERR_CHKANDJUMP(ureq == NULL, mpi_errno, MPI_ERR_OTHER, "**nomemreq");
ureq->kind = MPID_REQUEST_SEND;
ureq->kind = MPID_WIN_REQUEST;
/* Enqueue or perform the RMA operation */
if (target_rank != MPI_PROC_NULL && data_sz != 0) {
......@@ -101,7 +101,7 @@ int MPIDI_Rget(void *origin_addr, int origin_count,
/* Create user request, initially cc=1, ref=1 */
ureq = MPID_Request_create();
MPIU_ERR_CHKANDJUMP(ureq == NULL, mpi_errno, MPI_ERR_OTHER, "**nomemreq");
ureq->kind = MPID_REQUEST_SEND;
ureq->kind = MPID_WIN_REQUEST;
/* Enqueue or perform the RMA operation */
if (target_rank != MPI_PROC_NULL && data_sz != 0) {
......@@ -161,7 +161,7 @@ int MPIDI_Raccumulate(const void *origin_addr, int origin_count,
/* Create user request, initially cc=1, ref=1 */
ureq = MPID_Request_create();
MPIU_ERR_CHKANDJUMP(ureq == NULL, mpi_errno, MPI_ERR_OTHER, "**nomemreq");
ureq->kind = MPID_REQUEST_SEND;
ureq->kind = MPID_WIN_REQUEST;
MPIDI_Datatype_get_info(origin_count, origin_datatype, dt_contig, data_sz, dtp, dt_true_lb);
......@@ -224,7 +224,7 @@ int MPIDI_Rget_accumulate(const void *origin_addr, int origin_count,
/* Create user request, initially cc=1, ref=1 */
ureq = MPID_Request_create();
MPIU_ERR_CHKANDJUMP(ureq == NULL, mpi_errno, MPI_ERR_OTHER, "**nomemreq");
ureq->kind = MPID_REQUEST_SEND;
ureq->kind = MPID_WIN_REQUEST;
/* Note that GACC is only a no-op if no data goes in both directions */
MPIDI_Datatype_get_info(origin_count, origin_datatype, dt_contig, data_sz, dtp, dt_true_lb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment