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

Reply via email to