Well, here is what I think is a legitimate fix based on the MPICH 3.2 tarball,
to the file src/mpi/coll/helper_fns.c
--- helper_fns_old.c 2016-01-09 19:21:21.000000000 -0500
+++ helper_fns.c 2016-01-09 19:22:19.000000000 -0500
@@ -760,6 +760,8 @@
to check for the error bit in the tag below, we should initialize all
tag fields here. */
status_array[i].MPI_TAG = 0;
+ /* Same as above for MPI_SOURCE */
+ status_array[i].MPI_SOURCE = MPI_PROC_NULL;
/* Convert the MPID_Request objects to MPI_Request objects */
request_ptrs[i] = requests[i]->handle;
Seems like the MPID refactoring introduced both the status_static_array
optimization and properly caught the uninitialized MPI_TAG:
https://github.com/jeffhammond/mpich/commit/54362c008ee413b40d5e4f654b72ee45091f1c33#diff-068b13839481e0ca992aee507263aa37R720
Then subsequent continuations of that work added MPI_SOURCE
as something that is checked but didn't go back and initialize it:
Apologies for the lack of version control coherence,
I'm not sure what the optimal way is to propose changes.
Please let me know if you can apply this patch.
Thanks