← Back to team overview

sts-sponsors team mailing list archive

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

 

You have been subscribed to a public bug by Eric Desrochers (slashd):

[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

** Affects: sshuttle (Ubuntu)
     Importance: High
         Status: Fix Released

** Affects: sshuttle (Ubuntu Focal)
     Importance: High
     Assignee: Felipe Reyes (freyes)
         Status: In Progress

** Affects: sshuttle (Ubuntu Groovy)
     Importance: High
         Status: Fix Released

** Affects: sshuttle (Debian)
     Importance: Unknown
         Status: Fix Released


** Tags: seg
-- 
ssshuttle server fails to connect endpoints with python 3.8
https://bugs.launchpad.net/bugs/1873368
You received this bug notification because you are a member of STS Sponsors, which is subscribed to the bug report.