From 7aa689108521e894960c8ce68d54789371aacfb2 Mon Sep 17 00:00:00 2001 From: "Erik M. Bray" Date: Tue, 23 Apr 2019 14:34:05 +0200 Subject: [PATCH 1/2] Workaround for wrong errno on socket bind permission errors on Cygwin. --- notebook/notebookapp.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/notebook/notebookapp.py b/notebook/notebookapp.py index e35808a008..77ebfd78cb 100755 --- a/notebook/notebookapp.py +++ b/notebook/notebookapp.py @@ -1725,14 +1725,21 @@ def _bind_http_server_tcp(self): try: self.http_server.listen(port, self.ip) except socket.error as e: + eacces = (errno.EACCES, getattr(errno, 'WSAEACCES', errno.EACCES)) + if sys.platform == 'cygwin': + # Cygwin has a bug that causes EPERM to be returned in this + # case instead of EACCES: + # https://cygwin.com/ml/cygwin/2019-04/msg00160.html + eacces += (errno.EPERM,) + if e.errno == errno.EADDRINUSE: if self.port_retries: self.log.info(_('The port %i is already in use, trying another port.') % port) else: self.log.info(_('The port %i is already in use.') % port) continue - elif e.errno in (errno.EACCES, getattr(errno, 'WSAEACCES', errno.EACCES)): - self.log.warning(_("Permission to listen on port %i denied.") % port) + elif e.errno in eacces: + self.log.warning(_("Permission to listen on port %i denied") % port) continue else: raise From 85e69e9fb6de513408067ff1af460bb155ba49e9 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 7 Jun 2020 08:28:31 -0500 Subject: [PATCH 2/2] [ci skip] Add period to comment --- notebook/notebookapp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notebook/notebookapp.py b/notebook/notebookapp.py index 77ebfd78cb..b907c112b8 100755 --- a/notebook/notebookapp.py +++ b/notebook/notebookapp.py @@ -1739,7 +1739,7 @@ def _bind_http_server_tcp(self): self.log.info(_('The port %i is already in use.') % port) continue elif e.errno in eacces: - self.log.warning(_("Permission to listen on port %i denied") % port) + self.log.warning(_("Permission to listen on port %i denied.") % port) continue else: raise