RecvmsgIntoSCMRightsStreamTest and RecvmsgSCMRightsStreamTest fails on NetBSD
未关闭
还没有人认领这个 Issue。
3.13
3.14
3.15
OS-netbsd
tests
type-bug
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
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
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 Lib/test/test_socket.py 开始,重点查看 RecvmsgIntoSCMRightsStreamTest 和 RecvmsgSCMRightsStreamTest 类中的 testFDPassSeparate 和 testFDPassSeparateMinSpace。在 NetBSD 上重现经过筛选的测试命令,并检查失败的描述符数量断言;完成的标准是四个测试全部通过,同时不改变其他平台上的预期行为。多个已链接的 PR 表明相关工作已经在进行中。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- networking, operating-systems, testing-qa
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100