This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via cce767b33839004e51051fe5de965b2903e520c0 (commit) via e49213d68edd3690e7279a15a97c64cf98961b47 (commit) from 786b3e98a54107e844d43cfc4b27f71baacba47e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/cce767b33839004e51051fe5de965b2903... commit cce767b33839004e51051fe5de965b2903e520c0 Author: Wesley Bland <[email protected]> Date: Tue Oct 21 14:58:15 2014 -0500 Don't try to destroy a request if it doesn't exist In the macro MPID_nem_lmt_send_RTS, the request for the send was being freed on an error even if it didn't exist. This caused a segfault if calling a bcast after a process previously failed. Signed-off-by: Huiwei Lu <[email protected]> diff --git a/src/mpid/ch3/channels/nemesis/include/mpid_nem_impl.h b/src/mpid/ch3/channels/nemesis/include/mpid_nem_impl.h index c32e9df..a726b7d 100644 --- a/src/mpid/ch3/channels/nemesis/include/mpid_nem_impl.h +++ b/src/mpid/ch3/channels/nemesis/include/mpid_nem_impl.h @@ -151,8 +151,10 @@ typedef union MPIDI_CH3_nem_pkt /* --BEGIN ERROR HANDLING-- */ \ if (mpi_errno != MPI_SUCCESS) \ { \ - MPIU_Object_set_ref(_rts_req, 0); \ - MPIDI_CH3_Request_destroy(_rts_req); \ + if (NULL != _rts_req) { \ + MPIU_Object_set_ref(_rts_req, 0); \ + MPIDI_CH3_Request_destroy(_rts_req); \ + } \ MPIU_ERR_SETANDJUMP(mpi_errno, MPI_ERR_OTHER, "**rtspkt"); \ } \ /* --END ERROR HANDLING-- */ \ http://git.mpich.org/mpich.git/commitdiff/e49213d68edd3690e7279a15a97c64cf98... commit e49213d68edd3690e7279a15a97c64cf98961b47 Author: Wesley Bland <[email protected]> Date: Tue Oct 21 10:27:20 2014 -0500 Fix typo in bcast macro The macro that called the bcast function left out an underscore in the mpi_errno return value. This caused the test to always return MPI_ERR_OTHER instead of the value being returned by the underlying bcast function. Signed-off-by: Huiwei Lu <[email protected]> diff --git a/src/mpi/coll/bcast.c b/src/mpi/coll/bcast.c index 836dd4d..7e42727 100644 --- a/src/mpi/coll/bcast.c +++ b/src/mpi/coll/bcast.c @@ -982,7 +982,7 @@ fn_fail: /* for communication errors, just record the error but continue */ \ *(errflag_) = TRUE; \ MPIU_ERR_SET(mpi_errno_, MPI_ERR_OTHER, "**fail"); \ - MPIU_ERR_ADD(mpi_errno_ret_, mpi_errno); \ + MPIU_ERR_ADD(mpi_errno_ret_, mpi_errno_); \ } \ } while (0) diff --git a/test/mpi/ft/bcast.c b/test/mpi/ft/bcast.c index 06cfeff..8c877a9 100644 --- a/test/mpi/ft/bcast.c +++ b/test/mpi/ft/bcast.c @@ -27,6 +27,10 @@ int main(int argc, char **argv) MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_set_errhandler(MPI_COMM_WORLD, MPI_ERRORS_RETURN); + MPI_Comm_group(MPI_COMM_WORLD, &world); + MPI_Group_excl(world, 1, deadprocs, &newgroup); + MPI_Comm_create_group(MPI_COMM_WORLD, newgroup, 0, &newcomm); + if (size < 3) { fprintf( stderr, "Must run with at least 3 processes\n" ); MPI_Abort( MPI_COMM_WORLD, 1 ); @@ -66,10 +70,6 @@ int main(int argc, char **argv) } #endif - MPI_Comm_group(MPI_COMM_WORLD, &world); - MPI_Group_excl(world, 1, deadprocs, &newgroup); - MPI_Comm_create_group(MPI_COMM_WORLD, newgroup, 0, &newcomm); - rc = MPI_Reduce(&errs, &toterrs, 1, MPI_INT, MPI_SUM, 0, newcomm); if(rc) fprintf(stderr, "Failed to get errors from other processes\n"); ----------------------------------------------------------------------- Summary of changes: src/mpi/coll/bcast.c | 2 +- .../ch3/channels/nemesis/include/mpid_nem_impl.h | 6 ++++-- test/mpi/ft/bcast.c | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) hooks/post-receive -- MPICH primary repository