In MPI, you must complete every MPI_Isend by MPI_Wait on the request handle (or a variant like MPI_Waitall or MPI_Test that returns TRUE). An un-completed MPI_Isend leaves resources tied up.
Good point, but that doesn't seem to help. I augmented each MPI_Isend with a MPI_Wait. Now, one process keeps hanging after a number of messages in MPI_Wait and the other one keeps MPI_Iprobe'ing for new messages to receive.
I do not know what symptom to expect from OpenMPI with this particular application error but the one you describe is plausible.
If I start with the parameter "--mca btl tcp,self" on the other hand, the processes finish communication just fine. I am not exactly sure why this flag helps.
Best wishes, Dennis