<div dir="ltr">Hi FT Folks,<div><br></div><div>I encountered this oddity while doing some hacking today.  Apparently, MPI_ERRORS_RETURN has a different signature from all other error handlers; it returns a value and all other error handlers (e.g. MPI_ERRORS_ARE_FATAL and user-defined error handlers) have void return:</div><div><br></div><div>typedef void MPI_Comm_errhandler_function(MPI_Comm *, int *, ...);<br></div><div><br></div><div>Because of this, MPI_Comm_call_errhandler effectively does not do anything when the error handler is set to MPI_ERRORS_RETURN.  More specifically, the following code,</div><div><br></div><div>return MPI_Comm_call_errhandler(my_comm, my_err_code);</div><div><br></div><div>always returns success.</div><div><br></div><div>To summarize the issues: (1) It is difficult or impossible to use the MPI error subsystem when the error handler is set to MPI_ERRORS_RETURN and (2) it is impossible for a user defined error handler to return an error code.  These difficulties seem like they could be troublesome to users of FT that want to create higher level resilience/resilient libraries that interact with the MPI errors subsystem.</div><div><br></div><div>Is what I have encountered a real issue or am I misunderstanding something?  If it is a real issue, is it something we queue up for discussion at the upcoming F2F?</div><div><br></div><div>Interested to hear your thoughts,</div><div> ~Jim.</div></div>