On 10/04/12 07:00, Kawashima, Takahiro wrote:
(1) MPI_SOURCE of MPI_Status for a null request must be MPI_ANY_SOURCE.
This bug is caused by a use of an incorrect variable in
ompi/mpi/c/wait.c (for MPI_Wait) and by an incorrect
initialization of ompi_request_null in ompi/request/request.c
(for MPI_Waitall and MPI_Testall).
(2) MPI_Status for an inactive request must be an empty status.
This bug is caused by not updating a req_status field of an
inactive persistent request object in ompi/request/req_wait.c
and ompi/request/req_test.c.
(3) Possible BUS errors on sparc64 processors.
r23554 fixed possible BUS errors on sparc64 processors.
But the fix seems to be insufficient.
We should use OMPI_STATUS_SET macro for all user-supplied
MPI_Status objects.
The attached patch is for Open MPI trunk and it also fixes some
typos in comments. A program to reproduce bugs (1) and (2) is
also attached.
Again, I apologize for the delays in fixing #3. Anyhow, the fix is
available in r27403 and I updated trac ticket 3218. This particular fix
does not address #1 or #2. Note that OMPI_STATUS_SET has been removed
as part of r27403 and status structs can now be accessed directly in the
OMPI C internals.