Skip to content

test_socket generates several warnings #110012

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

Open
sobolevn opened this issue Sep 28, 2023 · 2 comments
Open

test_socket generates several warnings #110012

sobolevn opened this issue Sep 28, 2023 · 2 comments
Assignees
Labels
tests Tests in the Lib/test dir type-bug An unexpected behavior, bug, or error

Comments

@sobolevn
Copy link
Member

sobolevn commented Sep 28, 2023

Bug report

Repro: ./python.exe -We -m test test_socket -v

======================================================================
ERROR: testSecondCmsgTruncInData (test.test_socket.RecvmsgIntoRFC3542AncillaryUDP6Test.testSecondCmsgTruncInData)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 4324, in testSecondCmsgTruncInData
    msg, ancdata, flags, addr = self.doRecvmsg(
                                ^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2940, in doRecvmsg
    result = sock.recvmsg_into([buf], *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testSingleCmsgTruncInData (test.test_socket.RecvmsgIntoRFC3542AncillaryUDP6Test.testSingleCmsgTruncInData)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 4220, in testSingleCmsgTruncInData
    msg, ancdata, flags, addr = self.doRecvmsg(
                                ^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2940, in doRecvmsg
    result = sock.recvmsg_into([buf], *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen0 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3897, in testCmsgTruncLen0
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0), maxdata=0)
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2940, in doRecvmsg
    result = sock.recvmsg_into([buf], *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen0Plus1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0Plus1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3903, in testCmsgTruncLen0Plus1
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0) + 1, maxdata=1)
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2940, in doRecvmsg
    result = sock.recvmsg_into([buf], *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3909, in testCmsgTruncLen1
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(SIZEOF_INT),
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2940, in doRecvmsg
    result = sock.recvmsg_into([buf], *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen2Minus1 (test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen2Minus1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3916, in testCmsgTruncLen2Minus1
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(2 * SIZEOF_INT) - 1,
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2940, in doRecvmsg
    result = sock.recvmsg_into([buf], *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testSecondCmsgTruncInData (test.test_socket.RecvmsgRFC3542AncillaryUDP6Test.testSecondCmsgTruncInData)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 4324, in testSecondCmsgTruncInData
    msg, ancdata, flags, addr = self.doRecvmsg(
                                ^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2849, in doRecvmsg
    result = sock.recvmsg(bufsize, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testSingleCmsgTruncInData (test.test_socket.RecvmsgRFC3542AncillaryUDP6Test.testSingleCmsgTruncInData)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 4220, in testSingleCmsgTruncInData
    msg, ancdata, flags, addr = self.doRecvmsg(
                                ^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2849, in doRecvmsg
    result = sock.recvmsg(bufsize, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen0 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3897, in testCmsgTruncLen0
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0), maxdata=0)
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2849, in doRecvmsg
    result = sock.recvmsg(bufsize, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen0Plus1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0Plus1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3903, in testCmsgTruncLen0Plus1
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0) + 1, maxdata=1)
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2849, in doRecvmsg
    result = sock.recvmsg(bufsize, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3909, in testCmsgTruncLen1
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(SIZEOF_INT),
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2849, in doRecvmsg
    result = sock.recvmsg(bufsize, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

======================================================================
ERROR: testCmsgTruncLen2Minus1 (test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen2Minus1)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3916, in testCmsgTruncLen2Minus1
    self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(2 * SIZEOF_INT) - 1,
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 3877, in checkTruncatedArray
    msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/cpython/Lib/test/test_socket.py", line 2849, in doRecvmsg
    result = sock.recvmsg(bufsize, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeWarning: received malformed or improperly-truncated ancillary data

----------------------------------------------------------------------
Ran 483 tests in 27.924s

FAILED (errors=12, skipped=245)
test test_socket failed
test_socket failed (12 errors)

== Tests result: FAILURE ==

1 test failed:
    test_socket

Total duration: 28.0 sec
Total tests: run=483 skipped=245
Total test files: run=1/1 failed=1
Result: FAILURE

I have a fix ready.

Linked PRs

@sobolevn sobolevn added type-bug An unexpected behavior, bug, or error tests Tests in the Lib/test dir labels Sep 28, 2023
@sobolevn sobolevn self-assigned this Sep 28, 2023
sobolevn added a commit to sobolevn/cpython that referenced this issue Sep 28, 2023
@serhiy-storchaka
Copy link
Member

These three methods that potentially emit a warning generate 18 tests in total.

$ ./python -m test test_socket --list-cases -m testSingleCmsgTruncInData -m testSecondCmsgTruncInData -m 'testCmsgTruncLen*'
test.test_socket.RecvmsgIntoRFC3542AncillaryUDP6Test.testSecondCmsgTruncInData
test.test_socket.RecvmsgIntoRFC3542AncillaryUDP6Test.testSingleCmsgTruncInData
test.test_socket.RecvmsgIntoRFC3542AncillaryUDPLITE6Test.testSecondCmsgTruncInData
test.test_socket.RecvmsgIntoRFC3542AncillaryUDPLITE6Test.testSingleCmsgTruncInData
test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0
test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0Minus1
test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen0Plus1
test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen1
test.test_socket.RecvmsgIntoSCMRightsStreamTest.testCmsgTruncLen2Minus1
test.test_socket.RecvmsgRFC3542AncillaryUDP6Test.testSecondCmsgTruncInData
test.test_socket.RecvmsgRFC3542AncillaryUDP6Test.testSingleCmsgTruncInData
test.test_socket.RecvmsgRFC3542AncillaryUDPLITE6Test.testSecondCmsgTruncInData
test.test_socket.RecvmsgRFC3542AncillaryUDPLITE6Test.testSingleCmsgTruncInData
test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0
test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0Minus1
test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen0Plus1
test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen1
test.test_socket.RecvmsgSCMRightsStreamTest.testCmsgTruncLen2Minus1

But only 12 of them are failed above. Are they always the same tests? What is the difference between tests that passed and tests that failed? Or was they skipped? Try to run only these test (-m testSingleCmsgTruncInData -m testSecondCmsgTruncInData -m 'testCmsgTruncLen*').

@sobolevn
Copy link
Member Author

Only two warnings are left:

» ./python.exe -m test test_socket
Using random seed: 2077083042
0:00:00 load avg: 1.67 Run 1 test sequentially in a single process
0:00:00 load avg: 1.67 [1/1] test_socket
/Users/sobolev/Desktop/cpython2/Lib/test/test_socket.py:2999: RuntimeWarning: received malformed or improperly-truncated ancillary data
  result = sock.recvmsg_into([buf], *args)
/Users/sobolev/Desktop/cpython2/Lib/test/test_socket.py:2908: RuntimeWarning: received malformed or improperly-truncated ancillary data
  result = sock.recvmsg(bufsize, *args)

== Tests result: SUCCESS ==

1 test OK.

Total duration: 27.2 sec
Total tests: run=733 skipped=246
Total test files: run=1/1
Result: SUCCESS

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

No branches or pull requests

2 participants