[zeromq-dev] Fwd: 37/ZMTP RFC inconsistencies

Elliot Crosby-McCullough elliot.cm at gmail.com
Sun May 22 10:54:23 CEST 2016

Hi there!

I'm working my way through an implementation of 37/ZMTP (
http://rfc.zeromq.org/spec:37) and there's a few inconsistencies in the
spec, mostly the timing of message exchanges, and how it differs in the
spec proper from the worked example.

Here's a couple of quotes where anti-deadlock approaches are discussed:

> A peer that reads a full greeting, including mechanism, MUST also send a
> full greeting including mechanism. This avoids deadlocks in which two peers
> each wait for the other to divulge the remainder of their greeting.

Note that to avoid deadlocks, each peer MUST send its READY command before
> attempting to receive a READY from the other peer. In the NULL mechanism,
> peers are symmetric.

However, the worked example doesn't do this:

> The client sends a partial greeting (11 octets) greeting to the server,
> and at the same time (before receiving anything from the client), the
> server also sends a partial greeting

The server validates the socket type, accepts it, and replies with a READY
> command

The partial greeting isn't quite against the word of the spec though it
would be good if it was described more clearly in the spec itself, however
waiting to send the READY until after validating the client's READY goes
directly against the MUST requirement.

Am I missing something or does the spec and/or worked example need changing?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20160522/c4337e1e/attachment.htm>

More information about the zeromq-dev mailing list