Skip to content

gh-94821: Fix autobind of empty unix domain address #94826

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 15, 2022

Conversation

nirs
Copy link
Contributor

@nirs nirs commented Jul 13, 2022

When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

>>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
>>> s.bind("")
>>> s.getsockname()
b'\x0075499'

Since python 3.9, the socket is bound to the one address:

>>> s.getsockname()
b'\x00'

And trying to bind multiple sockets will fail with:

Traceback (most recent call last):
  File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
    s2.bind("")
OSError: [Errno 98] Address already in use

Added 2 tests:

  • Auto binding empty address on Linux
  • Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (GH-26866)

When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

    >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    >>> s.bind("")
    >>> s.getsockname()
    b'\x0075499'

Since python 3.9, the socket is bound to the one address:

    >>> s.getsockname()
    b'\x00'

And trying to bind multiple sockets will fail with:

    Traceback (most recent call last):
      File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
        s2.bind("")
    OSError: [Errno 98] Address already in use

Added 2 tests:
- Auto binding empty address on Linux
- Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (pythonGH-26866)
- Simplify condition since path.len always >= 0
- Make it more clear why we bind to "" twice
- Match abstract address pattern
- Test that sockets are bound to different addresses
@nirs nirs requested a review from serhiy-storchaka July 14, 2022 18:39
Copy link
Member

@serhiy-storchaka serhiy-storchaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@serhiy-storchaka serhiy-storchaka merged commit c22f134 into python:main Jul 15, 2022
@serhiy-storchaka serhiy-storchaka added type-bug An unexpected behavior, bug, or error needs backport to 3.9 only security fixes needs backport to 3.10 only security fixes needs backport to 3.11 only security fixes labels Jul 15, 2022
@miss-islington
Copy link
Contributor

Thanks @nirs for the PR, and @serhiy-storchaka for merging it 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Thanks @nirs for the PR, and @serhiy-storchaka for merging it 🌮🎉.. I'm working now to backport this PR to: 3.10.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Thanks @nirs for the PR, and @serhiy-storchaka for merging it 🌮🎉.. I'm working now to backport this PR to: 3.9.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Jul 15, 2022
…4826)

When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

    >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    >>> s.bind("")
    >>> s.getsockname()
    b'\x0075499'

Since python 3.9, the socket is bound to the one address:

    >>> s.getsockname()
    b'\x00'

And trying to bind multiple sockets will fail with:

    Traceback (most recent call last):
      File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
        s2.bind("")
    OSError: [Errno 98] Address already in use

Added 2 tests:
- Auto binding empty address on Linux
- Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (pythonGH-26866)
(cherry picked from commit c22f134)

Co-authored-by: Nir Soffer <[email protected]>
@bedevere-bot
Copy link

GH-94873 is a backport of this pull request to the 3.11 branch.

@bedevere-bot bedevere-bot removed the needs backport to 3.11 only security fixes label Jul 15, 2022
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Jul 15, 2022
…4826)

When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

    >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    >>> s.bind("")
    >>> s.getsockname()
    b'\x0075499'

Since python 3.9, the socket is bound to the one address:

    >>> s.getsockname()
    b'\x00'

And trying to bind multiple sockets will fail with:

    Traceback (most recent call last):
      File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
        s2.bind("")
    OSError: [Errno 98] Address already in use

Added 2 tests:
- Auto binding empty address on Linux
- Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (pythonGH-26866)
(cherry picked from commit c22f134)

Co-authored-by: Nir Soffer <[email protected]>
@bedevere-bot bedevere-bot removed the needs backport to 3.10 only security fixes label Jul 15, 2022
@bedevere-bot
Copy link

GH-94874 is a backport of this pull request to the 3.10 branch.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Jul 15, 2022
…4826)

When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

    >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    >>> s.bind("")
    >>> s.getsockname()
    b'\x0075499'

Since python 3.9, the socket is bound to the one address:

    >>> s.getsockname()
    b'\x00'

And trying to bind multiple sockets will fail with:

    Traceback (most recent call last):
      File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
        s2.bind("")
    OSError: [Errno 98] Address already in use

Added 2 tests:
- Auto binding empty address on Linux
- Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (pythonGH-26866)
(cherry picked from commit c22f134)

Co-authored-by: Nir Soffer <[email protected]>
@bedevere-bot
Copy link

GH-94875 is a backport of this pull request to the 3.9 branch.

@bedevere-bot bedevere-bot removed the needs backport to 3.9 only security fixes label Jul 15, 2022
@nirs nirs deleted the unix-abstract-fix branch July 15, 2022 08:41
miss-islington added a commit that referenced this pull request Jul 17, 2022
When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

    >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    >>> s.bind("")
    >>> s.getsockname()
    b'\x0075499'

Since python 3.9, the socket is bound to the one address:

    >>> s.getsockname()
    b'\x00'

And trying to bind multiple sockets will fail with:

    Traceback (most recent call last):
      File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
        s2.bind("")
    OSError: [Errno 98] Address already in use

Added 2 tests:
- Auto binding empty address on Linux
- Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (GH-26866)
(cherry picked from commit c22f134)

Co-authored-by: Nir Soffer <[email protected]>
miss-islington added a commit that referenced this pull request Jul 17, 2022
When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

    >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    >>> s.bind("")
    >>> s.getsockname()
    b'\x0075499'

Since python 3.9, the socket is bound to the one address:

    >>> s.getsockname()
    b'\x00'

And trying to bind multiple sockets will fail with:

    Traceback (most recent call last):
      File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
        s2.bind("")
    OSError: [Errno 98] Address already in use

Added 2 tests:
- Auto binding empty address on Linux
- Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (GH-26866)
(cherry picked from commit c22f134)

Co-authored-by: Nir Soffer <[email protected]>
ambv pushed a commit that referenced this pull request Jul 26, 2022
)

When binding a unix socket to an empty address on Linux, the socket is
automatically bound to an available address in the abstract namespace.

    >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    >>> s.bind("")
    >>> s.getsockname()
    b'\x0075499'

Since python 3.9, the socket is bound to the one address:

    >>> s.getsockname()
    b'\x00'

And trying to bind multiple sockets will fail with:

    Traceback (most recent call last):
      File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind
        s2.bind("")
    OSError: [Errno 98] Address already in use

Added 2 tests:
- Auto binding empty address on Linux
- Failing to bind an empty address on other platforms

Fixes f6b3a07 (bpo-44493: Add missing terminated NUL in sockaddr_un's length (GH-26866)
(cherry picked from commit c22f134)

Co-authored-by: Nir Soffer <[email protected]>
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 Debian root 3.9 has failed when building commit cd0a59f.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/429/builds/588) and take a look at the build logs.
  4. Check if the failure is related to this commit (cd0a59f) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/429/builds/588

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 2346, done.        
remote: Counting objects:   0% (1/1359)        
remote: Counting objects:   1% (14/1359)        
remote: Counting objects:   2% (28/1359)        
remote: Counting objects:   3% (41/1359)        
remote: Counting objects:   4% (55/1359)        
remote: Counting objects:   5% (68/1359)        
remote: Counting objects:   6% (82/1359)        
remote: Counting objects:   7% (96/1359)        
remote: Counting objects:   8% (109/1359)        
remote: Counting objects:   9% (123/1359)        
remote: Counting objects:  10% (136/1359)        
remote: Counting objects:  11% (150/1359)        
remote: Counting objects:  12% (164/1359)        
remote: Counting objects:  13% (177/1359)        
remote: Counting objects:  14% (191/1359)        
remote: Counting objects:  15% (204/1359)        
remote: Counting objects:  16% (218/1359)        
remote: Counting objects:  17% (232/1359)        
remote: Counting objects:  18% (245/1359)        
remote: Counting objects:  19% (259/1359)        
remote: Counting objects:  20% (272/1359)        
remote: Counting objects:  21% (286/1359)        
remote: Counting objects:  22% (299/1359)        
remote: Counting objects:  23% (313/1359)        
remote: Counting objects:  24% (327/1359)        
remote: Counting objects:  25% (340/1359)        
remote: Counting objects:  26% (354/1359)        
remote: Counting objects:  27% (367/1359)        
remote: Counting objects:  28% (381/1359)        
remote: Counting objects:  29% (395/1359)        
remote: Counting objects:  30% (408/1359)        
remote: Counting objects:  31% (422/1359)        
remote: Counting objects:  32% (435/1359)        
remote: Counting objects:  33% (449/1359)        
remote: Counting objects:  34% (463/1359)        
remote: Counting objects:  35% (476/1359)        
remote: Counting objects:  36% (490/1359)        
remote: Counting objects:  37% (503/1359)        
remote: Counting objects:  38% (517/1359)        
remote: Counting objects:  39% (531/1359)        
remote: Counting objects:  40% (544/1359)        
remote: Counting objects:  41% (558/1359)        
remote: Counting objects:  42% (571/1359)        
remote: Counting objects:  43% (585/1359)        
remote: Counting objects:  44% (598/1359)        
remote: Counting objects:  45% (612/1359)        
remote: Counting objects:  46% (626/1359)        
remote: Counting objects:  47% (639/1359)        
remote: Counting objects:  48% (653/1359)        
remote: Counting objects:  49% (666/1359)        
remote: Counting objects:  50% (680/1359)        
remote: Counting objects:  51% (694/1359)        
remote: Counting objects:  52% (707/1359)        
remote: Counting objects:  53% (721/1359)        
remote: Counting objects:  54% (734/1359)        
remote: Counting objects:  55% (748/1359)        
remote: Counting objects:  56% (762/1359)        
remote: Counting objects:  57% (775/1359)        
remote: Counting objects:  58% (789/1359)        
remote: Counting objects:  59% (802/1359)        
remote: Counting objects:  60% (816/1359)        
remote: Counting objects:  61% (829/1359)        
remote: Counting objects:  62% (843/1359)        
remote: Counting objects:  63% (857/1359)        
remote: Counting objects:  64% (870/1359)        
remote: Counting objects:  65% (884/1359)        
remote: Counting objects:  66% (897/1359)        
remote: Counting objects:  67% (911/1359)        
remote: Counting objects:  68% (925/1359)        
remote: Counting objects:  69% (938/1359)        
remote: Counting objects:  70% (952/1359)        
remote: Counting objects:  71% (965/1359)        
remote: Counting objects:  72% (979/1359)        
remote: Counting objects:  73% (993/1359)        
remote: Counting objects:  74% (1006/1359)        
remote: Counting objects:  75% (1020/1359)        
remote: Counting objects:  76% (1033/1359)        
remote: Counting objects:  77% (1047/1359)        
remote: Counting objects:  78% (1061/1359)        
remote: Counting objects:  79% (1074/1359)        
remote: Counting objects:  80% (1088/1359)        
remote: Counting objects:  81% (1101/1359)        
remote: Counting objects:  82% (1115/1359)        
remote: Counting objects:  83% (1128/1359)        
remote: Counting objects:  84% (1142/1359)        
remote: Counting objects:  85% (1156/1359)        
remote: Counting objects:  86% (1169/1359)        
remote: Counting objects:  87% (1183/1359)        
remote: Counting objects:  88% (1196/1359)        
remote: Counting objects:  89% (1210/1359)        
remote: Counting objects:  90% (1224/1359)        
remote: Counting objects:  91% (1237/1359)        
remote: Counting objects:  92% (1251/1359)        
remote: Counting objects:  93% (1264/1359)        
remote: Counting objects:  94% (1278/1359)        
remote: Counting objects:  95% (1292/1359)        
remote: Counting objects:  96% (1305/1359)        
remote: Counting objects:  97% (1319/1359)        
remote: Counting objects:  98% (1332/1359)        
remote: Counting objects:  99% (1346/1359)        
remote: Counting objects: 100% (1359/1359)        
remote: Counting objects: 100% (1359/1359), done.        
Receiving objects:   0% (1/2346)
Receiving objects:   1% (24/2346)
Receiving objects:   2% (47/2346)
Receiving objects:   3% (71/2346)
Receiving objects:   4% (94/2346)
Receiving objects:   5% (118/2346)
Receiving objects:   6% (141/2346)
Receiving objects:   7% (165/2346)
Receiving objects:   8% (188/2346)
Receiving objects:   9% (212/2346)
Receiving objects:  10% (235/2346)
Receiving objects:  11% (259/2346)
Receiving objects:  12% (282/2346)
Receiving objects:  13% (305/2346)
Receiving objects:  14% (329/2346)
Receiving objects:  15% (352/2346)
Receiving objects:  16% (376/2346)
Receiving objects:  17% (399/2346)
Receiving objects:  18% (423/2346)
Receiving objects:  19% (446/2346)
Receiving objects:  20% (470/2346)
Receiving objects:  21% (493/2346)
Receiving objects:  22% (517/2346)
Receiving objects:  23% (540/2346)
Receiving objects:  24% (564/2346)
Receiving objects:  25% (587/2346)
Receiving objects:  26% (610/2346)
Receiving objects:  27% (634/2346)
Receiving objects:  28% (657/2346)
Receiving objects:  29% (681/2346)
Receiving objects:  30% (704/2346)
Receiving objects:  31% (728/2346)
Receiving objects:  32% (751/2346)
Receiving objects:  33% (775/2346)
Receiving objects:  34% (798/2346)
Receiving objects:  35% (822/2346)
Receiving objects:  36% (845/2346)
Receiving objects:  37% (869/2346)
Receiving objects:  38% (892/2346)
Receiving objects:  39% (915/2346)
Receiving objects:  40% (939/2346)
Receiving objects:  41% (962/2346)
Receiving objects:  42% (986/2346)
Receiving objects:  43% (1009/2346)
Receiving objects:  44% (1033/2346)
Receiving objects:  45% (1056/2346)
Receiving objects:  46% (1080/2346)
Receiving objects:  47% (1103/2346)
Receiving objects:  48% (1127/2346)
Receiving objects:  49% (1150/2346)
Receiving objects:  50% (1173/2346)
Receiving objects:  51% (1197/2346)
Receiving objects:  52% (1220/2346)
Receiving objects:  53% (1244/2346)
Receiving objects:  54% (1267/2346)
Receiving objects:  55% (1291/2346)
Receiving objects:  56% (1314/2346)
Receiving objects:  57% (1338/2346)
Receiving objects:  58% (1361/2346)
Receiving objects:  59% (1385/2346)
Receiving objects:  60% (1408/2346)
Receiving objects:  61% (1432/2346)
Receiving objects:  62% (1455/2346)
Receiving objects:  63% (1478/2346)
Receiving objects:  64% (1502/2346)
Receiving objects:  65% (1525/2346)
Receiving objects:  66% (1549/2346)
Receiving objects:  67% (1572/2346)
Receiving objects:  68% (1596/2346)
Receiving objects:  69% (1619/2346)
Receiving objects:  70% (1643/2346)
Receiving objects:  71% (1666/2346)
Receiving objects:  72% (1690/2346)
Receiving objects:  73% (1713/2346)
Receiving objects:  74% (1737/2346)
Receiving objects:  75% (1760/2346)
Receiving objects:  76% (1783/2346)
Receiving objects:  77% (1807/2346)
Receiving objects:  78% (1830/2346)
Receiving objects:  79% (1854/2346)
Receiving objects:  80% (1877/2346)
Receiving objects:  81% (1901/2346)
Receiving objects:  82% (1924/2346)
Receiving objects:  83% (1948/2346)
Receiving objects:  84% (1971/2346)
Receiving objects:  85% (1995/2346)
Receiving objects:  86% (2018/2346)
Receiving objects:  87% (2042/2346)
Receiving objects:  88% (2065/2346)
Receiving objects:  89% (2088/2346)
Receiving objects:  90% (2112/2346)
Receiving objects:  91% (2135/2346)
Receiving objects:  92% (2159/2346)
Receiving objects:  93% (2182/2346)
Receiving objects:  94% (2206/2346)
Receiving objects:  95% (2229/2346), 2.68 MiB | 5.36 MiB/s
Receiving objects:  96% (2253/2346), 2.68 MiB | 5.36 MiB/s
Receiving objects:  97% (2276/2346), 2.68 MiB | 5.36 MiB/s
Receiving objects:  98% (2300/2346), 2.68 MiB | 5.36 MiB/s
Receiving objects:  99% (2323/2346), 2.68 MiB | 5.36 MiB/s
remote: Total 2346 (delta 1358), reused 1358 (delta 1358), pack-reused 987        
Receiving objects: 100% (2346/2346), 2.68 MiB | 5.36 MiB/s
Receiving objects: 100% (2346/2346), 3.78 MiB | 5.57 MiB/s, done.
Resolving deltas:   0% (0/1808)
Resolving deltas:   1% (19/1808)
Resolving deltas:   2% (37/1808)
Resolving deltas:   3% (55/1808)
Resolving deltas:   4% (73/1808)
Resolving deltas:   5% (91/1808)
Resolving deltas:   6% (109/1808)
Resolving deltas:   7% (127/1808)
Resolving deltas:   8% (145/1808)
Resolving deltas:   9% (163/1808)
Resolving deltas:  10% (181/1808)
Resolving deltas:  11% (199/1808)
Resolving deltas:  12% (217/1808)
Resolving deltas:  13% (236/1808)
Resolving deltas:  14% (254/1808)
Resolving deltas:  15% (272/1808)
Resolving deltas:  16% (290/1808)
Resolving deltas:  17% (308/1808)
Resolving deltas:  18% (326/1808)
Resolving deltas:  19% (344/1808)
Resolving deltas:  20% (362/1808)
Resolving deltas:  21% (380/1808)
Resolving deltas:  22% (398/1808)
Resolving deltas:  23% (416/1808)
Resolving deltas:  24% (434/1808)
Resolving deltas:  25% (452/1808)
Resolving deltas:  26% (471/1808)
Resolving deltas:  27% (489/1808)
Resolving deltas:  28% (507/1808)
Resolving deltas:  29% (525/1808)
Resolving deltas:  30% (543/1808)
Resolving deltas:  31% (561/1808)
Resolving deltas:  32% (579/1808)
Resolving deltas:  33% (597/1808)
Resolving deltas:  34% (615/1808)
Resolving deltas:  35% (633/1808)
Resolving deltas:  36% (651/1808)
Resolving deltas:  37% (669/1808)
Resolving deltas:  38% (688/1808)
Resolving deltas:  39% (706/1808)
Resolving deltas:  40% (724/1808)
Resolving deltas:  41% (742/1808)
Resolving deltas:  42% (760/1808)
Resolving deltas:  43% (778/1808)
Resolving deltas:  44% (796/1808)
Resolving deltas:  45% (814/1808)
Resolving deltas:  46% (832/1808)
Resolving deltas:  47% (850/1808)
Resolving deltas:  48% (868/1808)
Resolving deltas:  49% (886/1808)
Resolving deltas:  50% (904/1808)
Resolving deltas:  51% (923/1808)
Resolving deltas:  52% (941/1808)
Resolving deltas:  53% (959/1808)
Resolving deltas:  54% (977/1808)
Resolving deltas:  55% (995/1808)
Resolving deltas:  56% (1013/1808)
Resolving deltas:  57% (1031/1808)
Resolving deltas:  58% (1049/1808)
Resolving deltas:  59% (1067/1808)
Resolving deltas:  60% (1085/1808)
Resolving deltas:  61% (1103/1808)
Resolving deltas:  62% (1121/1808)
Resolving deltas:  63% (1140/1808)
Resolving deltas:  64% (1158/1808)
Resolving deltas:  65% (1176/1808)
Resolving deltas:  66% (1194/1808)
Resolving deltas:  67% (1212/1808)
Resolving deltas:  68% (1230/1808)
Resolving deltas:  69% (1248/1808)
Resolving deltas:  70% (1266/1808)
Resolving deltas:  71% (1284/1808)
Resolving deltas:  72% (1302/1808)
Resolving deltas:  73% (1320/1808)
Resolving deltas:  73% (1329/1808)
Resolving deltas:  74% (1338/1808)
Resolving deltas:  75% (1356/1808)
Resolving deltas:  76% (1375/1808)
Resolving deltas:  77% (1393/1808)
Resolving deltas:  78% (1411/1808)
Resolving deltas:  79% (1429/1808)
Resolving deltas:  80% (1447/1808)
Resolving deltas:  81% (1465/1808)
Resolving deltas:  81% (1473/1808)
Resolving deltas:  82% (1483/1808)
Resolving deltas:  83% (1501/1808)
Resolving deltas:  84% (1519/1808)
Resolving deltas:  85% (1537/1808)
Resolving deltas:  86% (1555/1808)
Resolving deltas:  87% (1573/1808)
Resolving deltas:  88% (1592/1808)
Resolving deltas:  89% (1610/1808)
Resolving deltas:  90% (1628/1808)
Resolving deltas:  90% (1642/1808)
Resolving deltas:  91% (1646/1808)
Resolving deltas:  92% (1664/1808)
Resolving deltas:  93% (1682/1808)
Resolving deltas:  94% (1700/1808)
Resolving deltas:  95% (1718/1808)
Resolving deltas:  96% (1736/1808)
Resolving deltas:  97% (1754/1808)
Resolving deltas:  98% (1772/1808)
Resolving deltas:  99% (1790/1808)
Resolving deltas: 100% (1808/1808)
Resolving deltas: 100% (1808/1808), completed with 479 local objects.
From https://github.com/python/cpython
 * branch                  3.9        -> FETCH_HEAD
 * [new tag]               v3.11.0b4  -> v3.11.0b4
Note: switching to 'cd0a59f1fa32fc1e4730c52c761f4d0190833587'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at cd0a59f1fa gh-94821: Fix autobind of empty unix domain address (GH-94826) (GH-94875)
Switched to and reset branch '3.9'

Python/ast_unparse.c: In function ‘append_ast_boolop’:
Python/ast_unparse.c:136:1: internal compiler error: Segmentation fault
  136 | }
      | ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.
make: *** [Makefile:1802: Python/ast_unparse.o] Error 1

find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
make: [Makefile:1875: clean-retain-profile] Error 1 (ignored)

@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 FreeBSD Shared 3.9 has failed when building commit cd0a59f.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/151/builds/587) and take a look at the build logs.
  4. Check if the failure is related to this commit (cd0a59f) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/151/builds/587

Failed tests:

  • test_multiprocessing_fork
  • test_ssl

Failed subtests:

  • test_session_stats - test.test_ssl.ContextTests
  • test_constructor - test.test_ssl.ContextTests
  • test_notify - test.test_multiprocessing_fork.WithThreadsTestCondition
  • test_protocol - test.test_ssl.ContextTests
  • test__create_stdlib_context - test.test_ssl.ContextTests
  • test_min_max_version - test.test_ssl.ContextTests

Summary of the results of the build (if available):

== Tests result: FAILURE then FAILURE ==

406 tests OK.

10 slowest tests:

  • test_multiprocessing_spawn: 7 min 39 sec
  • test_tokenize: 7 min 29 sec
  • test_unparse: 6 min 50 sec
  • test_lib2to3: 4 min 58 sec
  • test_concurrent_futures: 4 min 47 sec
  • test_multiprocessing_forkserver: 4 min 21 sec
  • test_gdb: 4 min 2 sec
  • test_unicodedata: 3 min 35 sec
  • test_asyncio: 3 min 17 sec
  • test_capi: 2 min 54 sec

1 test failed:
test_ssl

18 tests skipped:
test_dbm_gnu test_devpoll test_epoll test_idle test_ioctl
test_msilib test_spwd test_startfile test_tcl test_tix test_tk
test_ttk_guionly test_ttk_textonly test_turtle test_winconsoleio
test_winreg test_winsound test_zipfile64

2 re-run tests:
test_multiprocessing_fork test_ssl

Total duration: 30 min 45 sec

Click to see traceback logs
Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 1282, in test_min_max_version
    self.assertIn(
AssertionError: <TLSVersion.TLSv1_1: 770> not found in {<TLSVersion.SSLv3: 768>, <TLSVersion.TLSv1: 769>}


Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 1695, in test__create_stdlib_context
    ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/ssl.py", line 776, in _create_unverified_context
    context = SSLContext(protocol)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/ssl.py", line 484, in __new__
    self = _SSLContext.__new__(cls, protocol)
ValueError: invalid or unsupported protocol version


Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 253, in wrapper
    return func(*args, **kw)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 3414, in test_protocol_tlsv1_2
    try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 2809, in try_protocol_combo
    client_context = ssl.SSLContext(client_protocol)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/ssl.py", line 484, in __new__
    self = _SSLContext.__new__(cls, protocol)
ValueError: invalid or unsupported protocol version


Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/_test_multiprocessing.py", line 1383, in test_notify
    self.assertReturnsIfImplemented(2, get_value, woken)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/_test_multiprocessing.py", line 199, in assertReturnsIfImplemented
    return self.assertEqual(value, res)
AssertionError: 2 != 1


Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 1511, in test_session_stats
    ctx = ssl.SSLContext(proto)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/ssl.py", line 484, in __new__
    self = _SSLContext.__new__(cls, protocol)
ValueError: invalid or unsupported protocol version


Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 1140, in test_protocol
    ctx = ssl.SSLContext(proto)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/ssl.py", line 484, in __new__
    self = _SSLContext.__new__(cls, protocol)
ValueError: invalid or unsupported protocol version


Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/test/test_ssl.py", line 1132, in test_constructor
    ssl.SSLContext(protocol)
  File "/usr/home/buildbot/python/3.9.koobs-freebsd-564d/build/Lib/ssl.py", line 484, in __new__
    self = _SSLContext.__new__(cls, protocol)
ValueError: invalid or unsupported protocol version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants