Assertion failed: msg_->flags () & msg_t::more (rep.cpp:75) in simple ping/pong

Description

I can readily encounter Assertion failed: msg_->flags () & msg_t::more (rep.cpp:75) in new libzmq-3.1 master, simply by echoing a message back and forth with req/rep.

Attached is a python script that creates req/rep pairs, sending a simple message back and forth a number of times. The assert is hit in rep.recv() after a few cycles. It never seems to happen on the first pair of sockets, no matter how many pings I add, but always happens in the first few socket pairs, and always happens on the first echo for a given socket pair.

Sometimes, instead of hitting the assert in rep.recv(), the following req.recv() hangs, which is presumably related, but possibly a separate bug.

Environment

OSX 10.7.2

Attachments

3

Activity

Show:

Min RK November 8, 2011 at 4:25 PM

Fix confirmed, closing.

Thanks!

Martin Sustrik November 8, 2011 at 1:52 PM

Fixed in commit 89962a8.

Please re-check and close the issue if the problem is fixed.

Martin Sustrik November 8, 2011 at 7:06 AM

It just happened here as well. However, it seems very rare on my box <1%. Anyway, I'm moving on with the debugging of the hangup.

Min RK November 7, 2011 at 6:08 PM

the cpp test does cause the assertion on my machine, so maybe that's kqueue-specific?

Martin Sustrik November 7, 2011 at 7:53 AM

This one reproduces the hangup in 100% of cases.

Fixed

Details

Assignee

Reporter

Labels

Components

Affects versions

Priority

Created November 7, 2011 at 5:29 AM
Updated November 8, 2011 at 4:25 PM
Resolved November 8, 2011 at 1:52 PM