On 8 Aug 2013, at 4:07 am, Pieter Hintjens <[email protected]> wrote: > On Wed, Aug 7, 2013 at 3:20 PM, Matt Connolly <[email protected]> wrote: > >> Could it be that a child process exiting is triggering a SIGCHLD signal >> which is causing a “false positive” in the mailbox code? > > Could be. Can you investigate?
I couldn’t reproduce the issue in a C program using ZMQ or CZMQ directly. The child signal does occur, but this appears to be being handled correctly by zeromq. Eventually I found it. The child ruby process is destroying the context that it inherited from the parent. The io threads in the parent continue to run even though their sockets / pipes (guess!) have been altered by the child process. This is something I can fix in the rbczmq binding so that its garbage collection will only touch contexts owned by the same process. I have a fix for it already. The same approach may be useful for those doing bindings in other languages too. Cheers, Matt. _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
