On 10/4/2012 4:00 AM, Kawashima, Takahiro wrote:
> Hi Open MPI developers,
>
> I found some bugs in Open MPI and attach a patch to fix them.
>
> The bugs are:
>
> (1) MPI_SOURCE of MPI_Status for a null request must be MPI_ANY_SOURCE.
>
> (2) MPI_Status for an inactive request must be an empty status.
>
> (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.
Regarding #3, see also a trac 3218. I'm putting a fix back today. Sorry
for the delay. One proposed solution was extending the use of the
OMPI_STATUS_SET macros, but I think the consensus was to fix the problem
in the Fortran layer. Indeed, the Fortran layer already routinely
converts between Fortran and C statuses. The problem was that we started
introducing optimizations to bypass the Fortran-to-C conversion and that
optimization was employed too liberally (e..g, in situations that would
introduce the alignment errors you're describing). My patch will clean
that up. I'll try to put it back in the next few hours.