Closed
Description
I created a test case in ompi-tests underibm/communicator/comm_idup_many.c
This test is doing a simple:
for (i = 0; i < num_comms_to_create; i++) {
MPI_Comm_idup(MPI_COMM_WORLD, &comms[i], &req[i]);
}
MPI_Waitall(num_comms_to_create, req, MPI_STATUSES_IGNORE);
If you compile the v2.0.x
branch with --enable-mpi-thread-multiple
this test will hang when you try to create more than one communicator this way.
./configure --enable-debug --enable-mpi-thread-multiple
The problem is that the first request will progress past stage one, but the second request will block the progress thread in this section of code:
The master
and v2.x
branches pass this test. So I believe that the CID allocation fix that went into those two branches 'fixed' this problem.