delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:mime-version:references:in-reply-to:from:date | |
:message-id:subject:to:content-type; q=dns; s=default; b=gz++1m8 | |
RNBy7JND+xQNALo0DbZannCoWbomzNOQevVwj9SwuBmUlbRiw7piQ6Y7ynS/bsBu | |
zfRlo9QmsnZX9DWbSYlZh77Ngg4XFdglFGsfgHeYIo75IEomA2TbBljKG1lgZGYG | |
iaZPsrgqhQubN9DE1H0Yv5PmX1/0NxxnaYa0= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:mime-version:references:in-reply-to:from:date | |
:message-id:subject:to:content-type; s=default; bh=HvpIxSTZ42oYy | |
wwUul/VA5Fzbxs=; b=IWjuBy4C6aitCDl96QinAxiJSijYoG0MqwaHd5cyjB3CL | |
b5S8w2v+zjNbUE+RiUUvGSJP4cEMfPKtrTh4fgmoaIYUkThr3e+FGfwL7zdNWBaU | |
VnMjM83znIDEDfeqdT+8NRv8oMTE/PID6BWfi3qHMFEBOClj5utBSpF4U0i/C4= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Spam-SWARE-Status: | No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=historical, wondering |
X-HELO: | mail-it1-f194.google.com |
DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=ZOt1x+E2krL4W3WkAyvW7fejvz2Qy+UiAsPBJO5vAO8=; b=q/+vIlLiSxLFD6Vv8uHvRQ+F275mpn6Q6Loy/aYMc2CpqtdaZQX/gGIR4plNfK8Eqm qDbuNZDo9wkPYiatI56i/n+Ao/ZlPh8pVcroc6UK21dUOcc4J0XY+y31YDPMZx/czf/C MsdyfJNMEslCDSFzy5v7r7c78s79VOhZ80briwPCwhQxEZtGFHThQLcvdWw15LgrAaNl YwAwX9s7jWqYcw9rkX1Mdo+AUEB8GMJk3D0syuxfwhbZk0I2whnO3KmfUi3FNc9xXteZ CaG3FCycjrnIMQGHld3OI/buahYw7A6od67UvPteWOqukuNDOlmoDXENj9lufKpDNRSU k60g== |
MIME-Version: | 1.0 |
References: | <CAOTD34a_LJP5kk==DzkHz89PFjjPFcXWM1eDFVx+4uNf6XbCjw AT mail DOT gmail DOT com> <CAOTD34Yc=3023bXgKEpKkYehQPyiPdNn5SK9ZQR2rCCWqETU0w AT mail DOT gmail DOT com> <20190423124810 DOT GD30041 AT calimero DOT vinschen DOT de> |
In-Reply-To: | <20190423124810.GD30041@calimero.vinschen.de> |
From: | "E. Madison Bray" <erik DOT m DOT bray AT gmail DOT com> |
Date: | Tue, 23 Apr 2019 15:37:15 +0200 |
Message-ID: | <CAOTD34aAc0T1iNQBWjkkbva3q2e04Wu4gxNGrygbOjhQg70kUg@mail.gmail.com> |
Subject: | Re: EPERM on bind() ? |
To: | cygwin AT cygwin DOT com |
X-IsSubscribed: | yes |
On Tue, Apr 23, 2019 at 2:48 PM Corinna Vinschen wrote: > > 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 for the historical background (I didn't even realize how old that code was) and for the confirmation. I'll do that. On one hand EPERM sort of make sense just because it didn't map to anything else, so it was useful in this case in identifying the problem. At the same time it's not a valid error for most any socket-related function defined by POSIX that I can find, so EACCES makes more sense. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |