ZMQ 3.0.1 crashes
Description
Environment
None
Attachments
3
Activity
Show:
PieterP September 2, 2011 at 8:52 AM
Excellent! thanks.
taurelf September 2, 2011 at 7:25 AM
Therefore, I confirm that with ZMQ 3.0.2, it works.
I mark this issue as resolved.
Thanks
PieterP September 1, 2011 at 4:18 PM
Sorry, it's 3-0
On Sep 1, 2011 3:44 PM, "Emmanuel Taurel (Commented) (JIRA)" <
jira@zeromq.jira.com> wrote:
taurelf September 1, 2011 at 1:42 PM
I confirm that using ZMQ 3.0.2, the bug is fixed. But I cant find any ZMQ 3.1 on github!
I get error 404 when I try to access github.com/zeromq/zeromq3-1
Regards
PieterP September 1, 2011 at 12:26 PMEdited
Emmanuel,
Thanks for logging this issue. The fix is now in the zeromq3-1 git master at https://github.com/zeromq/zeromq3-1. Could you build from there and confirm the fix? You can then close this issue as 'resolved'.
[edit] the URI is https://github.com/zeromq/zeromq3-0, sorry.
I am using ZMQ 3.0.1 on a Ubuntu 10.10 box (32 bits)
I am actually experimenting crashes in ZMQ when using ZMQ 3.0.1. If I use ZMQ 2.1.7, my software works without any problems.
I am mainly using PUB/SUB pattern.
The publisher publishes a multipart message with 3 parts (one of the part is a very small message: only one byte).
The subscriber dynamically connects its subscriber socket to publisher(s).
To do so, the thread in which runs the subscriber socket also has a REP socket and is listening on socket events using zmq:oll().
The REP socket is used to receive dynamic connection request for the subscriber socket. These requests are sent by other threads using a REQ socket
(inproc transport). The connection endpoint and the subscription string are sent in the message used by the REQ/REP communication.
The subscriber process crashes when the code tries to connect the subscriber socket to a publisher.
The crash happens in one of the 2 ZMQ threads at msg.cpp:126 in method zmq::msg_t::close() due to a
"glibc detected free(): invalid pointer"
I am using a ZMQ library compiled with ZMQ_MAKE_VALGRIND_HAPPY.
If I run my subscriber process under valgrind, it works but valgrind complains about memory access and invalid free.
I attach to this mail my subscriber and publisher code which contains only ZMQ related code (sub.cpp and pub.cpp)
I also attach the output from valgrind (valgrind.out)
To reproduce the crash:
1 - Start one publisher with a port number and a string (pub 5555 Hello)
2 - Start another publisher with another port and string (pub 5556 world)
3 - Wait for publishers to start publishing data
4 - Start the subscriber with the publisher endpoints and strings (sub tcp://host:5555 tcp://host:5556 Hello world)
I hope I am clear enough
Thank's for your help
Emmanuel Taurel