Subject: Re: [OMPI devel] [patch] Invalid MPI_Status for null or inactive request
From: Eugene Loh (eugene.loh_at_[hidden])
Date: 2012-10-04 12:19:10
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.