On Jan 3, 2016 03:15, "Samuel Thibault" <sthiba...@debian.org> wrote: > > Samuel Thibault, on Sun 03 Jan 2016 02:57:31 +0100, wrote: > > Luca Boccassi, on Sat 10 Oct 2015 13:07:26 +0100, wrote: > > > <svante.sign...@gmail.com> wrote: > > > > Two tests fails causing ssh to hang and crashes a translator in a > > > > hurd terminal: test_pair_ipc and test_reqrep_ipc. Partial problems > > > > with these tests are that option SO_ERROR is not yet supported for > > > > gsetsockopt() on Hurd. > > > > > > The problem is that SO_ERROR is used by ZMQ to check the status of an > > > asynchronous socket connect() [1]. > > > > To be more precise, SO_ERROR is completely supported for TCP/IP sockets. > > It is not supported for local sockets only. But this shouldn't be a > > problem for zeromq at all since local sockets always either connect > > immediately without blocking, or get a refused connection. > > Put another way, I believe the attached patch is right: if the > implementation does not support SO_ERROR, then it means it does not > support asynchronous connect and there is no error to read, so assume > success. With that change, the testsuite passes completely without any > issue.
Ah, that changes things of course, very good news! Thanks for checking back! Only a minor cosmetic question about the patch, what is the purpose of this if 0 block in poller.hpp: +#if 0 +#define ZMQ_USE_POLL +#include "poll.hpp" +#endif > We can also make hurd's local sockets always return 0 from SO_ERROR > since it doesn't have asynchronous connects. That sounds like a good plan, but perhaps it's best to ask upstream for comments, my knowledge of the internals is very limited, so their review is going to be much more helpful :-) Could you please open a pull request to upstream's dev repo https://github.com/zeromq/libzmq ? Their support is fantastic, and you can expect a response (and a merge if it's all right) within hours usually. Thank you! Kind regards, Luca Boccassi