FWIW: this now appears true for *any* case where a parent connects to more than one child - i.e., if a process calls connect-accept more than once (e.g., in loop_spawn)
This didn't used to be true, so something has changed in OMPI's underlying behavior.
On May 26, 2014, at 11:27 PM, Gilles Gouaillardet <gilles.gouaillardet_at_[hidden]> wrote:
> currently, the dynamic/intercomm_create test from the ibm test suite output the following messages :
> dpm_base_disconnect_init: error -12 in isend to process 1
> the root cause it task 0 tries to send messages to already exited tasks.
> one way of seeing things is that this is an application issue :
> task 0 should have MPI_Comm_free'd all its communicator before calling MPI_Comm_disconnect.
> This can be achieved via the attached patch
> an other way of seeing things is that this is a bug in OpenMPI.
> In this case, what would be the the right approach ?
> - automatically free communicators (if needed) when MPI_Comm_disconnect is invoked ?
> - simply remove communicators (if needed) from ompi_mpi_communicators when MPI_Comm_disconnect is invoked ?
> /* this causes a memory leak, but the application can be seen as responsible of it */
> - other ?
> Thanks in advance for your feedback,
> devel mailing list
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: http://www.open-mpi.org/community/lists/devel/2014/05/14847.php