On Mar 11, 2013, at 13:13, Jonathan Kamens <jkam...@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@lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to