diff --git a/ompi/mca/coll/tuned/coll_tuned_barrier.c b/ompi/mca/coll/tuned/coll_tuned_barrier.c index 8002a74920..455e7e1474 100644 --- a/ompi/mca/coll/tuned/coll_tuned_barrier.c +++ b/ompi/mca/coll/tuned/coll_tuned_barrier.c @@ -69,8 +69,6 @@ ompi_coll_tuned_sendrecv_zero(int dest, int stag, /* post new irecv */ err = MCA_PML_CALL(irecv( NULL, 0, MPI_BYTE, source, rtag, comm, &reqs[0])); - /* try to silence CID 1269934 */ - assert( MPI_ERR_IN_STATUS != err ); if (err != MPI_SUCCESS) { line = __LINE__; goto error_handler; } /* send data to children */ @@ -79,15 +77,6 @@ ompi_coll_tuned_sendrecv_zero(int dest, int stag, if (err != MPI_SUCCESS) { line = __LINE__; goto error_handler; } err = ompi_request_wait_all( 2, reqs, statuses ); - if (err != MPI_SUCCESS) { line = __LINE__; goto error_handler; } - - return (MPI_SUCCESS); - - error_handler: - /* As we use wait_all we will get MPI_ERR_IN_STATUS which is not an error - * code that we can propagate up the stack. Instead, look for the real - * error code from the MPI_ERROR in the status. - */ if( MPI_ERR_IN_STATUS == err ) { /* At least we know the error was detected during the wait_all */ int err_index = 1; @@ -98,13 +87,18 @@ ompi_coll_tuned_sendrecv_zero(int dest, int stag, OPAL_OUTPUT ((ompi_coll_tuned_stream, "%s:%d: Error %d occurred in the %s" " stage of ompi_coll_tuned_sendrecv_zero\n", __FILE__, line, err, (0 == err_index ? "receive" : "send"))); - } else { - /* Error discovered during the posting of the irecv or isend, - * and no status is available. - */ - OPAL_OUTPUT ((ompi_coll_tuned_stream, "%s:%d: Error %d occurred\n", - __FILE__, line, err)); + return MPI_ERR_IN_STATUS; } + if (err != MPI_SUCCESS) { line = __LINE__; goto error_handler; } + + return (MPI_SUCCESS); + + error_handler: + /* Error discovered during the posting of the irecv or isend, + * and no status is available. + */ + OPAL_OUTPUT ((ompi_coll_tuned_stream, "%s:%d: Error %d occurred\n", + __FILE__, line, err)); return err; }