On 10/22/06, Open MPI <[email protected]> wrote:
#529: MPI_START* returning OMPI_* error codes ---------------------+------------------------------------------------------ Reporter: jsquyres | Owner: Type: defect | Status: new Priority: major | Milestone: Open MPI 1.1.3 Version: trunk | Keywords: ---------------------+------------------------------------------------------ I sent this on the core list but got no reply, so I'm turning it into a ticket.A user reported that they were getting back value -105 from MPI_STARTALL (which is OMPI_ERR_REQUEST -- assumedly they were using MPI_ERRORS_RETURN). Regardless of what is happening to make this error be returned, we should never be returning an OMPI_ERR_* value from an MPI function. Instead, we should be converting this from OMPI_ERR_* to MPI_ERR_*. Specifically, don't we need to wrap the returns of these MCA_PML_CALLs in OMPI_ERRHANDLER_RETURN? Something like: {{{ rc = MCA_PML_CALL(start(....)); OMPI_ERRHANDLER_RETURN(rc, XXXXX, rc, FUNC_NAME); }}} where XXX is some relevant communicator: * MPI_START: the communicator of the single request -- easy enough * MPI_STARTALL: MPI-1:3.9 says that STARTALL is exactly equivalent to calling START n times, so I guess we use the communicator from the request that caused the error. pml_base_module_start_t() doesn't return ''which'' request caused the error, so I'm guessing that if (OMPI_SUCCESS != rc), we'll have to scan through the list of requests to find the first one with an error and use the communicator from that one. Right? -- Ticket URL: <http://svn.open-mpi.org/trac/ompi/ticket/529> Open MPI <http://www.open-mpi.org/>
Yes, but... Which error handler will be called?? The one associated to the communicator involved in the request, or MPI_COMM_WORLD? I do not remember right now if the standar says anything about this. If not, it should call the error handler of WORLD communicator. Am I right? -- Lisandro Dalcín --------------- Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) PTLC - Güemes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594
