From 17153fea38daaa84ab6c34b3ed7e6be47f905947 Mon Sep 17 00:00:00 2001 From: Artem Polyakov <artpol84@gmail.com> Date: Wed, 18 Nov 2015 15:46:09 +0600 Subject: [PATCH] Fix direct modex race condition. --- src/plugins/mpi/pmix/pmixp_dmdx.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/plugins/mpi/pmix/pmixp_dmdx.c b/src/plugins/mpi/pmix/pmixp_dmdx.c index d796480b1a4..2bd44147e53 100644 --- a/src/plugins/mpi/pmix/pmixp_dmdx.c +++ b/src/plugins/mpi/pmix/pmixp_dmdx.c @@ -259,6 +259,18 @@ int pmixp_dmdx_get(const char *nspace, int rank, /* store cur seq. num and move to the next request */ seq = _dmdx_seq_num++; + /* track this request */ + req = xmalloc(sizeof(dmdx_req_info_t)); + req->seq_num = seq; + req->cbfunc = cbfunc; + req->cbdata = cbdata; + req->ts = time(NULL); +#ifndef NDEBUG + strncpy(req->nspace, nspace, PMIX_MAX_NSLEN); + req->rank = rank; +#endif + list_append(_dmdx_requests, req); + /* send the request */ rc = pmixp_server_send(host, PMIXP_MSG_DMDX, seq, addr, get_buf_data(buf), get_buf_offset(buf)); @@ -274,17 +286,6 @@ int pmixp_dmdx_get(const char *nspace, int rank, return SLURM_ERROR; } - /* track this request */ - req = xmalloc(sizeof(dmdx_req_info_t)); - req->seq_num = seq; - req->cbfunc = cbfunc; - req->cbdata = cbdata; - req->ts = time(NULL); -#ifndef NDEBUG - strncpy(req->nspace, nspace, PMIX_MAX_NSLEN); - req->rank = rank; -#endif - list_append(_dmdx_requests, req); return rc; } -- GitLab