← Back to team overview

sts-sponsors team mailing list archive

[Bug 1873368] Re: ssshuttle server fails to connect endpoints with python 3.8

 

[sts-sponsor]

Thanks for your contribution Felipe.

The debdiff has been sponsored with the following minor changes:

- Renamed the quilt patch to "d/p/0001-compatibility-with-python38.patch"
- Removed the py2 build dependencies as they are no longer used and prevent to build properly 
(python-pytest-runner, python-pytest-cov
- Added a DEP3 header in the quilt patch.
- Slighly modified d/changelog to reflect the minor changes.

- Eric

-- 
You received this bug notification because you are a member of STS
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1873368

Title:
  ssshuttle server fails to connect endpoints with python 3.8

Status in sshuttle package in Ubuntu:
  Fix Released
Status in sshuttle source package in Focal:
  In Progress
Status in sshuttle source package in Groovy:
  Fix Released
Status in sshuttle package in Debian:
  Fix Released

Bug description:
  [Impact]

  Endpoints that have been updated with python 3.8 seem to cause issues
  with sshuttle.

  [Test Case]

  Client
  $ python3 --version
  Python 3.8.2
  $ lsb_release -rd
  Description:    Ubuntu Focal Fossa (development branch)
  Release:        20.04
  $ apt-cache policy sshuttle
  sshuttle:
    Installed: 0.78.5-1
    Candidate: 0.78.5-1

  Server
  $ python3 --version
  Python 3.8.2
  $ lsb_release -rd
  Description:    Ubuntu 20.04 LTS
  Release:        20.04
  $ apt-cache policy openssh-server
  openssh-server:
    Installed: 1:8.2p1-4
    Candidate: 1:8.2p1-4

  $ sshuttle -r ubuntu@{ip-addr} {subnet-1} {subnet-2}
  assembler.py:3: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  client: Connected.
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "assembler.py", line 38, in <module>
    File "sshuttle.server", line 298, in main
    File "/usr/lib/python3.8/socket.py", line 544, in fromfd
      return socket(family, type, proto, nfd)
    File "/usr/lib/python3.8/socket.py", line 231, in __init__
      _socket.socket.__init__(self, family, type, proto, fileno)
  OSError: [Errno 88] Socket operation on non-socket
  client: fatal: server died with error code 1

  [Regression Potential]

  * python 2 has been dropped (support-wise) in Focal.

  * This fix is actually fixing a regression itself.
  This regression was introduced in python 3.8 by bpo#35415 [2], which restricts socket.fromfd() calls to provide valid socket family file descriptors.

  [Other Info]

  https://github.com/sshuttle/sshuttle/issues/381
  https://bugs.python.org/issue39685
  https://bugs.python.org/issue35415

  [Original Description]

  Client
  $ python3 --version
  Python 3.8.2
  $ lsb_release -rd
  Description:    Ubuntu Focal Fossa (development branch)
  Release:        20.04
  $ apt-cache policy sshuttle
  sshuttle:
    Installed: 0.78.5-1
    Candidate: 0.78.5-1

  Server
  $ python3 --version
  Python 3.8.2
  $ lsb_release -rd
  Description:    Ubuntu 20.04 LTS
  Release:        20.04
  $ apt-cache policy openssh-server
  openssh-server:
    Installed: 1:8.2p1-4
    Candidate: 1:8.2p1-4

  $ sshuttle -r ubuntu@{ip-addr} {subnet-1} {subnet-2}
  assembler.py:3: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  client: Connected.
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "assembler.py", line 38, in <module>
    File "sshuttle.server", line 298, in main
    File "/usr/lib/python3.8/socket.py", line 544, in fromfd
      return socket(family, type, proto, nfd)
    File "/usr/lib/python3.8/socket.py", line 231, in __init__
      _socket.socket.__init__(self, family, type, proto, fileno)
  OSError: [Errno 88] Socket operation on non-socket
  client: fatal: server died with error code 1

  The sshuttle upstream tracker is issue#381 [0]. They are waiting on a
  response to bpo#39685 [1].

  This regression was introduced in python 3.8 by bpo#35415 [2], which
  restricts socket.fromfd() calls to provide valid socket family file
  descriptors.

  [0] https://github.com/sshuttle/sshuttle/issues/381
  [1] https://bugs.python.org/issue39685
  [2] https://bugs.python.org/issue35415

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sshuttle/+bug/1873368/+subscriptions