python / python/cpython

RecvmsgIntoSCMRightsStreamTest and RecvmsgSCMRightsStreamTest fails on NetBSD

Offen
#125,860 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

3.13 3.14 3.15 OS-netbsd tests type-bug
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug report

Bug description:
./python -m test -v test_socket -m RecvmsgIntoSCMRightsStreamTest -m RecvmsgSCMRightsStreamTest
== CPython 3.14.0a1+ (heads/main-dirty:37986e830ba, Oct 17 2024, 20:11:54) [GCC 10.5.0]
== NetBSD-10.0-amd64-x86_64-64bit-ELF little-endian
== Python build: debug
== cwd: /home/blue/cpython/build/test_python_worker_29434æ
== CPU count: 4
== encodings: locale=UTF-8 FS=utf-8
== resources: all test resources are disabled, use -u option to unskip tests

Using random seed: 2380016540
0:00:00 load avg: 0.18 Run 1 test sequentially in a single process
0:00:00 load avg: 0.18 [1/1] test_socket
testCmsgTrunc0 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTrunc0) ... ok
testCmsgTrunc1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTrunc1) ... ok
testCmsgTrunc2Int (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTrunc2Int) ... ok
testCmsgTruncLen0 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0) ... ok
testCmsgTruncLen0Minus1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0Minus1) ... ok
testCmsgTruncLen0Plus1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0Plus1) ... ok
testCmsgTruncLen1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen1) ... ok
testCmsgTruncLen2Minus1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen2Minus1) ... ok
testCmsgTruncNoBufSize (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncNoBufSize) ... ok
testFDPassCMSG_LEN (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassCMSG_LEN) ... ok
testFDPassCMSG_SPACE (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassCMSG_SPACE) ... ok
testFDPassEmpty (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassEmpty) ... ok
testFDPassPartialInt (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassPartialInt) ... ok
testFDPassPartialIntInMiddle (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassPartialIntInMiddle) ... ok
testFDPassSeparate (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassSeparate) ... FAIL
testFDPassSeparateMinSpace (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassSeparateMinSpace) ... FAIL
testFDPassSimple (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassSimple) ... ok
testMultipleFDPass (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testMultipleFDPass) ... ok
testCmsgTrunc0 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTrunc0) ... ok
testCmsgTrunc1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTrunc1) ... ok
testCmsgTrunc2Int (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTrunc2Int) ... ok
testCmsgTruncLen0 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0) ... ok
testCmsgTruncLen0Minus1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0Minus1) ... ok
testCmsgTruncLen0Plus1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0Plus1) ... ok
testCmsgTruncLen1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen1) ... ok
testCmsgTruncLen2Minus1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen2Minus1) ... ok
testCmsgTruncNoBufSize (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncNoBufSize) ... ok
testFDPassCMSG_LEN (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassCMSG_LEN) ... ok
testFDPassCMSG_SPACE (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassCMSG_SPACE) ... ok
testFDPassEmpty (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassEmpty) ... ok
testFDPassPartialInt (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassPartialInt) ... ok
testFDPassPartialIntInMiddle (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassPartialIntInMiddle) ... ok
testFDPassSeparate (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassSeparate) ... FAIL
testFDPassSeparateMinSpace (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassSeparateMinSpace) ... FAIL
testFDPassSimple (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassSimple) ... ok
testMultipleFDPass (test.test_socket.RecvmsgSCMRightsStreamTest.testMultipleFDPass) ... ok

======================================================================
FAIL: testFDPassSeparate (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassSeparate)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3747, in testFDPassSeparate
    self.checkRecvmsgFDs(2,
    ~~~~~~~~~~~~~~~~~~~~^^^
                         self.doRecvmsg(self.serv_sock, len(MSG), 10240),
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         maxcmsgs=2)
                         ^^^^^^^^^^^
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3692, in checkRecvmsgFDs
    self.assertEqual(len(fds), numfds)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 1 != 2

======================================================================
FAIL: testFDPassSeparateMinSpace (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testFDPassSeparateMinSpace)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3772, in testFDPassSeparateMinSpace
    self.checkRecvmsgFDs(num_fds,
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
                         self.doRecvmsg(self.serv_sock, len(MSG),
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                        socket.CMSG_SPACE(SIZEOF_INT) +
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                        socket.CMSG_LEN(SIZEOF_INT * num_fds)),
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3692, in checkRecvmsgFDs
    self.assertEqual(len(fds), numfds)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 1 != 2

======================================================================
FAIL: testFDPassSeparate (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassSeparate)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3747, in testFDPassSeparate
    self.checkRecvmsgFDs(2,
    ~~~~~~~~~~~~~~~~~~~~^^^
                         self.doRecvmsg(self.serv_sock, len(MSG), 10240),
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         maxcmsgs=2)
                         ^^^^^^^^^^^
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3692, in checkRecvmsgFDs
    self.assertEqual(len(fds), numfds)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 1 != 2

======================================================================
FAIL: testFDPassSeparateMinSpace (test.test_socket.RecvmsgSCMRightsStreamTest.testFDPassSeparateMinSpace)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3772, in testFDPassSeparateMinSpace
    self.checkRecvmsgFDs(num_fds,
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
                         self.doRecvmsg(self.serv_sock, len(MSG),
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                        socket.CMSG_SPACE(SIZEOF_INT) +
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                        socket.CMSG_LEN(SIZEOF_INT * num_fds)),
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/blue/cpython/Lib/test/test_socket.py", line 3692, in checkRecvmsgFDs
    self.assertEqual(len(fds), numfds)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 1 != 2

----------------------------------------------------------------------
Ran 36 tests in 2.169s

FAILED (failures=4)
test test_socket failed
test_socket failed (4 failures)

== Tests result: FAILURE ==

1 test failed:
    test_socket

Total duration: 2.4 sec
Total tests: run=36 (filtered) failures=4
Total test files: run=1/1 (filtered) failed=1
Result: FAILURE

OS: NetBSD 10.0 amd64

CPython versions tested on:

CPython main branch

Operating systems tested on:

Other

Linked PRs
  • gh-154239
  • gh-154245
  • gh-154246
  • gh-154247

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit Lib/test/test_socket.py, insbesondere mit testFDPassSeparate und testFDPassSeparateMinSpace in den Klassen RecvmsgIntoSCMRightsStreamTest und RecvmsgSCMRightsStreamTest. Reproduzieren Sie den gefilterten Testbefehl unter NetBSD und untersuchen Sie die fehlschlagenden Assertions zur Anzahl der Deskriptoren; abgeschlossen ist die Aufgabe, wenn alle vier Tests bestehen, ohne das erwartete Verhalten auf anderen Plattformen zu ändern. Mehrere verlinkte PRs deuten darauf hin, dass die Arbeit bereits im Gange ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
networking, operating-systems, testing-qa
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.