I have built a library with "--enable-mpi-threads --with-threads=posix"
the trunk) and tried running a simple non-threaded program linked
The program just calls to MPI_Send and MPI_Recv so every process sends an
MPI_INT to one another.
When I run it I see the following:
burl-ct-v440-4 86 =>mpirun -np 4 connectivity -v
burl-ct-v440-4: checking connection 0 <-> 1
burl-ct-v440-4: checking connection 1 <-> 2
burl-ct-v440-4: checking connection 0 <-> 2
opal_mutex_lock(): Deadlock situation detected/avoided
Signal:6 info.si_errno:0(Error 0) si_code:-1()
*** End of error message ***
burl-ct-v440-4 87 =>
Since I had the debug enabled, I get to see that one of the processes
was trying to grab a lock that it already head. (Nice feature having
that error printed out!)
Has anyone else seen this? As I said, this is a non-threaded program
so there is only one thread per process. I am wondering if I am missing
something basic in the building of my library. This test works fine against
a library configured without "--enable-mpi-threads --with-threads=posix".