On Wed, Jan 23, 2013 at 2:44 PM, Dave Goodell <goodell@mcs.anl.gov> wrote:
Hmm… it looks like we aren't poking NBC progress properly when a "test" or "iprobe" routine is called.  MPIDI_CH3i_Progress_test is missing a call to MPIDU_Sched_progress: http://git.mpich.org/mpich.git/blob/refs/heads/master:/src/mpid/ch3/channels/sock/src/ch3_progress.c#l51

The attached code demonstrates this. With ch3:sock, it completes with MPI_Wait, but not with MPI_Test.

$ ~/usr/mpich-sock/bin/mpicc ibarrier.c -o ibarrier
$ mpirun.hydra -n 2 ./ibarrier                                                                                                            
[0] MPI_Test: 0
[1] MPI_Test: 0
[0] MPI_Test: 1
[1] MPI_Test: 1
[0] MPI_Test: 2
[1] MPI_Test: 2
...
 


I'm surprised this isn't caught by the "coll/nonblock3" test, although we may just be making too much progress some other way, or we may not have enough coverage of the test itself in that test: http://git.mpich.org/mpich.git/blob/refs/heads/master:/test/mpi/coll/nonblocking3.c

A modest test case would be very helpful.