zmq_term can not safely be re-entered with pgm transport

Description

According to the man page of zmq_term, it should be safe to re-enter
zmq_term if it previously returned with EINTR. This is actually not
true if used with OpenPGM. zmq_term invokes pgm_shutdown which is
reading and modifying the static variable pgm_ref_count and will
return FALSE on second invocation which makes zmq_term abort with
"Assertion failed: false (zmq.cpp:185)". This affects version 2.2 as
well as 3.2.

Environment

Linux and Windows

Activity

Show:

Ricardo Catalinas Jiménez July 29, 2012 at 7:53 PM

Pull request for the 2.x backport sent.

PieterP July 29, 2012 at 7:47 AM

Reopening so that we can backport to 2.2 and 3.2 and mark as fixed in those versions.

PieterP July 29, 2012 at 7:47 AM

Ricardo, if you want to backport this to 2.2, you can send a pull request for the 2.2 repository. Ditto for the 3.2.1 release candidate. Thanks!

Ricardo Catalinas Jiménez July 28, 2012 at 8:51 AM

The issue was found in the haskell binding as the haskell runtime uses SIGVTALRM or SIGALRM to handle the thread scheduling and this interferes with ZMQ in the manner described:

https://github.com/twittner/zeromq-haskell/issues/19

Fixed

Details

Assignee

Reporter

Labels

Components

Fix versions

Affects versions

Priority

Created July 28, 2012 at 8:43 AM
Updated July 30, 2012 at 8:09 AM
Resolved July 30, 2012 at 8:09 AM