Josh, Your patch (r24551) looks fine. I think you should make a CMR for the 1.4 and 1.5.
Thanks, george. On Mar 22, 2011, at 09:04 , Joshua Hursey wrote: > George, > > I agree that it is difficult to come up with a good scenario, outside of > resilience, in which MPI_Probe would return an error (other than a bad > argument type of error - which does currently work). I agree with your > assessment of the value of the return code, and that it should trigger the > error handler. I just wanted to confirm that there was not something I was > missing. > > I will commit a patch to fix this (it is just a couple lines in pml/ob1) for > the trunk. I don't know if we need to push it to the release branches just > yet. > > Thanks, > Josh > > On Mar 21, 2011, at 10:17 PM, George Bosilca wrote: > >> Josh, >> >> If we don't take in account resilience I would not expect MPI_Probe to have >> that many opportunities to return errors. However, in order to keep the >> implementation consistent (with the other MPI functions) I would abide to >> the following. >> >> MPI_ERROR_IN_STATUS is only for calls taking multiple requests as input, so >> I don't think this should be applied to the MPI_Probe. I would expect the >> return to be equal to status.MPI_ERROR (similar to only other function >> working on a single request, such as MPI_Test). >> >> It better trigger the error-handler attached to the communicator, as >> explicitly requested by the MPI standard (section 8.3). >>> A user can associate error handlers to three types of objects: >>> communicators, windows, and files. The specified error handling routine >>> will be used for any MPI exception that occurs during a call to MPI for the >>> respective object. >> >> george. >> >> On Mar 21, 2011, at 16:50 , Joshua Hursey wrote: >> >>> If MPI_Probe() encounters an error causing it to exit with the >>> 'status.MPI_ERROR' set, say: >>> ret = MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); >>> >>> Should it return an error? So should it return: >>> - ret = status.MPI_ERROR >>> - ret = MPI_ERROR_IN_STATUS >>> - ret = MPI_SUCCESS >>> Additionally, should it trigger the error handler on the communicator? >>> >>> In Open MPI, it will always return MPI_SUCCESS (pml_ob1_iprobe.c:74), but >>> it feels like this is wrong. I looked to the MPI standard for some insight, >>> but could not find where it addresses the return code of MPI_Probe. >>> >>> Can anyone shed some light on this topic for me? >>> >>> Thanks, >>> Josh >>> >>> >>> ------------------------------------ >>> Joshua Hursey >>> Postdoctoral Research Associate >>> Oak Ridge National Laboratory >>> http://users.nccs.gov/~jjhursey >>> >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >> >> "To preserve the freedom of the human mind then and freedom of the press, >> every spirit should be ready to devote itself to martyrdom; for as long as >> we may think as we will, and speak as we think, the condition of man will >> proceed in improvement." >> -- Thomas Jefferson, 1799 >> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/devel >> > > ------------------------------------ > Joshua Hursey > Postdoctoral Research Associate > Oak Ridge National Laboratory > http://users.nccs.gov/~jjhursey > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel "To preserve the freedom of the human mind then and freedom of the press, every spirit should be ready to devote itself to martyrdom; for as long as we may think as we will, and speak as we think, the condition of man will proceed in improvement." -- Thomas Jefferson, 1799