[zeromq-dev] debugging curve handshake

Drew Crawford drew at sealedabstract.com
Fri Feb 14 14:39:12 CET 2014

Hello folks,

For some reason, a message sent from the REQ side of a REQ/ROUTER isn’t arriving.  I know from experience this is some kind of CURVE issue, but I have stared at my curve usage for several hours now without seeing the problem.  I’m hoping to collect some general strategies on how to debug curve authentication issues as I seem to hit problems like this from time to time.

Some notes:

It’s definitely a curve issue, as when I turn off curve authentication on both sides everything works fine.
Everybody’s on zeromq-4.0.3
I’m reasonably sure the issue is client-side, as a test client written in Python authenticates with the server successfully.
The server’s ZAP handler is never called, so something bad is happening very early
I’ve checked the obvious things: the server’s port is open, the client is setting all three of ZMQ_CURVE_PUBLICKEY, ZMQ_CURVE_SECRETKEY, and ZMQ_CURVE_SERVERKEY to what look like reasonable values
Client and server don’t have any zeromq errors returned during send, receive, or setsockopt
Server is running pyzmq on python 3.3 on Darwin, client is a C client built for the iPhoneSimulator which is i386-apple-darwin.

An obvious next step is to verify at the TCP level that a connection is being established, but I’m not totally sure what I can check that would verify that.

Beyond that I am interested in your thoughts on what I should test.  I really think there should be some better errors for CURVE issues as I seem to get stuck here a lot.  But for now I will settle for understanding what is wrong…


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

More information about the zeromq-dev mailing list