What's in "stop_run" ? Does it work if you do it the following way?
BTW, I'm assuming "commspawn.Get_size() == 1", otherwize root=MPI.ROOT would not be correct.
I'm wondering if anyone knows of a reason why this simple data transfer might not work or how to figure out what the problem is?
Try the examples in mpi4py's demo/spawning/ directory,
If these examples work, then that would signal you have a bug somewhere.
If these demos do not work, then the problem is on your MPI implementation.