F37 kernel 6.0.16/6.0.18 breaking Python tests: Allows to bind a socket twice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

On Monday I observed that the Fedora 37 and 36 Python CI tests on the Testing farm fail.

https://lists.fedoraproject.org/archives/list/ci@xxxxxxxxxxxxxxxxxxxxxxx/thread/YOXVRWJNJMNSTUG6O43KE4K6Q57GV7DR/

The same tests work on Rawhide and worked on Fedora 37/36 previously -- unfortunately this could have been a while ago, maybe even couple weeks, due to the holidays.

See https://src.fedoraproject.org/rpms/python3.11/pull-request/99

The test failures look like this:

======================================================================
FAIL: test_bind (test.test_asyncore.TestAPI_UseIPv4Poll.test_bind)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib64/python3.11/test/test_asyncore.py", line 752, in test_bind
    self.assertRaises(OSError, s2.bind, (self.addr[0], port))
AssertionError: OSError not raised by bind

======================================================================
FAIL: test_bind (test.test_asyncore.TestAPI_UseIPv6Select.test_bind)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib64/python3.11/test/test_asyncore.py", line 752, in test_bind
    self.assertRaises(OSError, s2.bind, (self.addr[0], port))
AssertionError: OSError not raised by bind


All the failed tests are related to either multiprocessing or asyncio.
All of them are either:

  AssertionError: OSError not raised by bind

Or:

  AssertionError: OSError not raised by Listener


The same tests pass during the Koji build when the package builds.

The kernel in F37 Koji is 6.0.10.
The kernel on the F37 Testing Farm is 6.0.16.


I've checked and all the failing tests basically do:

 - bind a socket
 - bind it again (and assert failure, which fails)

Petr Viktorin found out that SO_REUSEPORT socket option exists which when enabled might cause the assertions to fail.

But that should not be possible to set from outside of the process.

https://lwn.net/Articles/542629/

I've installed kernel 6.0.16-300.fc37.x86_64 and I can reproduce this with e.g.:

$ sudo dnf install python3-test
$ python3 -m test -v test_asyncore

Same with 6.0.18-300.fc37.x86_64.

I cannot reproduce this with Rawhide's 6.2.0-0.rc2.20230105git41c03ba9beea.20.fc38.x86_64.


Is this a bug that needs to be fixed or do the tests need to be changed not to assert this?

The fact that 6.2.0 makes this go away makes me think this is a kernel bug but I am not sure.

--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux