Assertion reading type 0 message from pipe.

Description

Publishing very small messages causes an assert when there are lots of connections and disconnections going on.

The bug appears to be in dist.cpp in void zmq::dist_t::distribute (msg_t *msg_, int flags_) where when a write fails rm_ref is called which closes the VSM message. This close message is then push to any other pipes.
Later on when a message is read from the pipe size is called and the assert is thrown.

This condition was dealt with in version 2.x and I've written a patch that matches it as much as I can. Currently this patch is untested but I hope to do that later today.

Environment

Redhat/CentOS 5.7

Attachments

1
  • 26 Oct 2011, 09:54 AM

Activity

Show:

Martin Sustrik October 27, 2011 at 10:33 AM

Ok. The patch looks OK. Can you please sign-off the patch and send it to the mailing list?

http://www.zeromq.org/docs:contributing#toc5

Ben Gray October 26, 2011 at 2:05 PM

Works though all the cases we could force the assert before.

Fixed

Details

Assignee

Reporter

Labels

Components

Affects versions

Priority

Created October 26, 2011 at 9:54 AM
Updated October 28, 2011 at 11:24 AM
Resolved October 28, 2011 at 11:24 AM