On Apr 23 14:28, E. Madison Bray wrote: > On Tue, Apr 23, 2019 at 2:17 PM E. Madison Bray wrote: > > > > Hello, > > > > I have had some users of the Jupyter Notebook [1] on Cygwin report an > > crash on startup where, when the Notebook server tries to bind() to > > the port it will listen on (TCP 8888) the bind() fails and errno is > > set to EPERM, which is not an expected errno from bind(). > > > > Looking at the Cygwin sources, in net.cc I see that in > > set_winsock_errno, EPERM is returned by default if there is some WSA > > error for which there is no POSIX equivalent mapped. Fine--EPERM is > > as good as any other fallback I suppose (?) in that it unambiguously > > indicates some unknown WSA error. > > > > I'm just wondering if anyone has any idea what might cause such an > > error. Some third-party firewall or BLODA? I can't reproduce it > > myself. Trying to bind to a port already in use correctly returns > > EADDRINUSE. > > > > > > [1] https://jupyter.org/ > > Answering my own question after comparing the list on > https://docs.microsoft.com/en-us/windows/desktop/winsock/windows-sockets-error-codes-2 > to Cygwin's wsock_errmap table this is a likely culprit: > > > WSAEACCES > > 10013 > > Permission denied.An attempt was made to access a socket in a way forbidden by its access permissions. > > An example is using a broadcast address for sendto without broadcast permission being set using > > setsockopt(SO_BROADCAST). > > Another possible reason for the WSAEACCES error is that when the bind function is called (on Windows NT > > 4.0 with SP4 and later), another application, service, or kernel mode driver is bound to the same address > > with exclusive access. Such exclusive access is a new feature of Windows NT 4.0 with SP4 and later, and is > > implemented by using the SO_EXCLUSIVEADDRUSE option. > > This appears to be missing from the wsock_errmap table, but should > obviously map to EACCES. I'll supply a patch. Good catch! As I *just* wrote in my other reply, we should better default to EACCES. It should be sufficient to change the default then. I'm looking forward to your patch submission. Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer