It would appear events aren’t being signalled correctly on a DEALER->ROUTER (at least? maybe? It’s the only evidence I have) communication in in the IOLib multiplexer when the FD bound for read is one discovered from a ZeroMQ socket with ZMQ_FD then checked against ZMQ_EVENTS.
If I close the socket and terminate the context after the request the message is always delivered, much like a message is pulled from the queue when another client connects and disconnects. Events on the plain file descriptor tied to a network socket seem to fire just fine, though.
I’ll have to run some science later using the native zmq:poll to make sure they are supposed to arrive like I expect, but if they don’t I might attempt to bring a bridge over to libev and never have this problem again for as long as I parenthesize.