bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#49496: 28.0.50; process-tests/fd-setsize-no-crash/make-network-proce


From: Eli Zaretskii
Subject: bug#49496: 28.0.50; process-tests/fd-setsize-no-crash/make-network-process hangs on Cygwin
Date: Fri, 09 Jul 2021 21:18:43 +0300

> From: Ken Brown <kbrown@cornell.edu>
> Date: Fri, 9 Jul 2021 14:01:33 -0400
> 
> It is possible to work around this problem by disabling the credential 
> exchange 
> as in the following patch:
> 
> diff --git a/src/process.c b/src/process.c
> index b8c3e4ecfb..01548c8ab5 100644
> --- a/src/process.c
> +++ b/src/process.c
> @@ -3355,6 +3355,12 @@ connect_network_socket (Lisp_Object proc, Lisp_Object 
> addrinfos,
>             xerrno = EMFILE;
>             continue;
>           }
> +#ifdef CYGWIN
> +       /* Avoid possible hang in connect/accept.  */
> +       if (family == AF_LOCAL && p->socktype == SOCK_STREAM
> +           && setsockopt (s, SOL_SOCKET, SO_PEERCRED, 0, 0) < 0)
> +         report_file_error ("Cannot disable credential exchange", Qnil);
> +#endif
>       }
>          if (p->is_non_blocking_client && ! (SOCK_NONBLOCK && socket_to_use < 
> 0))
> 
> But this seems too drastic just to fix a potential problem that doesn't seem 
> to 
> occur in practice, but only in the contrived situation of 
> process-tests/fd-setsize-no-crash/make-network-process.  So my preference is 
> to 
> simply skip that test on Cygwin.
> 
> OK?

Yes, OK.  But please explain there in a comment why we skip that, with
a reference to this bug.

(FWIW, I consider the process-tests suite to be not useful enough, in
that it many times tests behavior that is only guaranteed to happen on
GNU/Linux, and is not really required, nor should be expected, in
portable Lisp programs.  So it doesn't surprise me that some of the
tests fail on some systems.)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]