I have a program that sends messages on a ZMQ_DEALER socket with ZMQ_DONTWAIT. If I get back EAGAIN (perhaps because the other end is responding slowly or has gone away) I call zmq_close to close the socket and then re-establish the connection (possibly to a new server) with a new socket. ZMQ_LINGER is set to 0.
I'm occasionally seeing crashes in libzmq that look like:
I've attached a program, zmqtest.c, that reproduces this. Compile it with -lzmq and run it, it should crash after a minute or so (at least it does for me).
Ubuntu 12.04 LTS, Virtualbox VM (64-bit).