Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2006-10-13 16:37:56

On Oct 9, 2006, at 8:41 AM, Lisandro Dalcin wrote:

> Looking at MPI-2 errata document,
>, is says:
> Page 61, after line 36. Add the following (paralleling the errata
> to MPI-1.1):
> MPI_{COMM,WIN,FILE}_GET_ERRHANDLER behave as if a new error handler
> object is created. That is, once the error handler is no longer
> needed, MPI_ERRHANDLER_FREE should be called with the error handler
> to mark the error handler for deallocation. This provides behavior
> similar to that of MPI_COMM_GROUP and MPI_GROUP_FREE.
> Well, is seems that OMPI does not currently follow this specification.
> Any plans to change this? Or it will not go in?

I'm not sure what you mean here -- OMPI currently increases the
reference count on the errhandlers returned by COM|WIN|
COMM_GET_ERRHANDLER). So when you call ERRHANDLER_FREE, it decreases
the refcount, and if the refcount is 0, it actually frees the error
handler (the user's handle is always set to ERRHANDLER_NULL,
regardless of whether the reference count went to 0 or not).

Remember, too, that all communications increase the refcount on the
associated communicator's errhandler. So even if you ERRHANDLER_FREE
an errhandler, if it's still associated with an ongoing
communication, the back-end object won't be freed right away.

Can you cite a specific example of what you're trying to do and how
OMPI is doing it wrong?

> Additionaly, I've noted that MPI_File_get_errhandler fails with
> MPI_ERR_FILE is passed file handle is MPI_FILE_NULL. However, I
> undersand (regarding the standard) this is the handle to query to
> get/set/reset the default error handler for new files... I think
> MPI_File_{get|set}_errhandler should accept MPI_FILE_NULL handle. Am I
> right?

By MPI-2:9.7, you are exactly correct. OMPI currently allows
MPI_FILE_SET_ERRHANDLER(MPI_FILE_NULL, ...) (there's even an explicit
reference to MPI-2:9.7 in a comment in the source), but it looks like
an oversight that we don't allow MPI_FILE_GET_ERRHANDLER
(MPI_FILE_NULL, ...). I will fix.


Jeff Squyres
Server Virtualization Business Unit
Cisco Systems