[zeromq-dev] "cython inline checkrc" change in PyZMQ 13.0.0 changes handling of EINTR?

Min RK benjaminrk at gmail.com
Mon Mar 11 22:16:27 CET 2013



On Mar 11, 2013, at 13:13, Jonathan Kamens <jkamens at quantopian.com> wrote:

> Greetings,
> 
> With PyZMQ versions prior to 13.0.0, we were running into problems with certain PyZMQ calls getting interrupted by restartable signals (e.g., SIGALRM) used by our application. We fixed this problem like     this:
>             while True:
>                 try:
>                     self.context.term()
>                 except zmq.ZMQError as exc:
>                     if exc.errno == EINTR:
>                         log.info('zmq_term interrupted by signal, restarting')
>                     else:
>                         log.exception('Error terminating ZMQ context')
>                         raise
>                 except BaseException as exc:
>                     log.exception('Error terminating ZMQ context')
>                     raise
>                 else:
>                     break
> Note that 0MQ allows term() to be restarted when it gets EINTR.
> 
> This worked just fine, but has stopped working in PyZMQ 13.0.0. Now, instead of a ZMQError with errno set to EINTR, we are getting a KeyboardInterrupt exception. I think this commit to PyZMQ is the cause.
> 
> Questions:
> Was this change in behavior intentional? If so, it probably should be documented in the release notes.
> Am I understanding correctly that what needs to be done to fix the problem in my app is to do "except KeyboardInterrupt" instead of "except zmq.ZMQError as exc" and not bother to check errno?
> Thanks in advance for any help you can provide.

This was not intentional, and is fixed in master.  There should only be a difference in behavior if you have non-default signal handler registered.

> 
> Regards,
> 
> Jonathan Kamens
> 
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130311/3ef9b2dd/attachment.htm>


More information about the zeromq-dev mailing list