[zeromq-dev] identity bug
Martin Sustrik
sustrik at 250bpm.com
Mon May 24 13:54:46 CEST 2010
Hi Serge,
> I am working on completing Erlang 0MQ bindings I ran into this odd scenario:
>
> 1. 0MQ REP server opens a socket
> 2. The server sets ZMQ_IDENTIFY option to some value (e.g. "XYZ")
> 3. The server binds the socket to local TCP port
> 4. 0MQ REQ client opens a socket and connects to the server.
> 5. 0MQ REP server is terminated by ^C and restarted.
> 6. The server opens a socket
> 7. The server binds it to local TCP port (without setting ZMQ_IDENTITY)
> 8! The client core dumps with:
>
> Assertion failed: peer_identity == peer_identity_ (session.cpp:215)
> Aborted (core dumped)
What's happening here is that client connects to a service named 'XYZ'.
Then (from the client's perspective) connection breaks and after a while
it becomes available again.
However, now it's someone else on the other side of the connection, not
the good old XYZ.
This is most probably caused by misconfiguration of services and thus
the client shouldn't proceed. It should reject the connection and
complain so that user fixes the configuration
Currently the complain is realised using the assertion above. However,
it should be made more user-friendly. Presumably, client should drop the
connection, write a warning to the system log and try reconnecting
again, just in case the XYZ gets online again.
Martin
More information about the zeromq-dev
mailing list