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

Reply via email to