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

Attachment: signature.asc
Description: PGP signature

Reply via email to