On Mar 25, 2013, at 4:59 AM, Дмитрий Донцов <[email protected]> wrote:
> I've found error in OpenMPI with error codes.
Thanks for investigating this!
> According to MPI standard (2.2 and later):
> MPI_ERR_LASTCODE must be equals to last error code and MPI_LASTUSEDCODE must
> be greater than or equal to MPI_ERR_LASTCODE.
Hmm. Can you cite where you see that in the spec? I see in MPI-3 p349, line
48:
0 = MPI_SUCCESS < MPI_ERR_... <= MPI_ERR_LASTCODE
Specifically, it says that MPI_ERR_LASTCODE can be greater than the last error
code (MPI_ERR_WIN, in this case).
Regardless, I'm just arguing semantics here -- our current value of LASTCODE is
technically ok (for this reason), but your next argument gives a different
reason why it's not ok. :-)
> In OpenMPI MPI_ERR_LASTCODE is greater than real last error code
> (MPI_ERR_WIN) for 1 and MPI_LASTUSEDCODE hardcoded linked with MPI_ERR_WIN.
> So, possible situation when MPI_LASTUSEDCODE (equals to MPI_ERR_WIN) is less
> than MPI_ERR_LASTCODE.
You're right -- I see the definition of MPI_LASTUSEDCODE in MPI-3 p353 27-32,
and it says that LASTUSEDCODE must be >= MPI_ERR_LASTCODE.
So we have two choices:
1. set MPI_ERR_LASTCODE = MPI_LASTUSEDCODE = MPI_ERR_WIN
2. leave MPI_ERR_LASTCODE = MPI_ERR_WIN + 1, and set MPI_LASTUSEDCODE to
MPI_ERR_LASTCODE
I'm ok with your solution (#1) -- it doesn't leave a "hole" in the error code
space when users create their own.
I applied a slightly modified version of your patch in
https://svn.open-mpi.org/trac/ompi/changeset/28225. I don't know / doubt if
this will make 1.7.0, but we can get it in 1.7.1.
Thank you!
--
Jeff Squyres
[email protected]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/