On Apr 4, 2011, at 10:18 AM, Rob Latham wrote:
> What I see happening here is the OpenMPI finalize routine is deleting
> attributes. one of those attributes is ROMIO's, which in turn tries
> to free keyvals. Is the deadlock that noting "under" ompi_attr_delete
> can itself call ompi_* routines? (as ROMIO triggers a call to
> ompi_attr_free_keyval) ?
Yes, this is exactly what is happening -- the communicator attribute delete callback is invoking MPI_KEYVAL_FREE(), which is not something we anticipated. The locks are only active for THREAD_MULTIPLE, which results in this issue.
I'll have to dig some more to make this case safe; I'll file a ticket about it.
For corporate legal information go to: