Bug 2254040

Summary: python-uvloop uses Cython 0.29 to build, please update to Cython 3
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-uvloopAssignee: Paul Wouters <paul.wouters>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: elijahward.dev, igor.raits, paul.wouters, rj.layco, rominf
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-uvloop-0.18.0-2.fc40 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-12-27 12:27:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2254029    

Description Miro Hrončok 2023-12-11 16:42:07 UTC
Description of problem:
As the maintainer of the deprecated python-cython0.29 package, I'd like to get rid of it. I'm opening this bugzilla to track the migration of python-uvloop to Cython 3.

Version-Release number of selected component:
python-uvloop-0:0.18.0-1.fc40

Comment 1 Miro Hrončok 2023-12-11 16:44:22 UTC
Upstream issue: https://github.com/MagicStack/uvloop/issues/586


Fedora package failures with Cython 3:


=================================== FAILURES ===================================
_________________________ TestBaseUV.test_check_thread _________________________
Traceback (most recent call last):
  File "/usr/lib64/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib64/python3.12/unittest/case.py", line 637, in run
    self._callTearDown()
  File "/usr/lib64/python3.12/unittest/case.py", line 594, in _callTearDown
    self.tearDown()
  File "/builddir/build/BUILDROOT/python-uvloop-0.18.0-2.fc40.x86_64/usr/lib64/python3.12/site-packages/uvloop/_testbase.py", line 106, in tearDown
    self.fail('unexpected calls to loop.call_exception_handler()')
  File "/usr/lib64/python3.12/unittest/case.py", line 715, in fail
    raise self.failureException(msg)
AssertionError: unexpected calls to loop.call_exception_handler()
------------------------------ Captured log call -------------------------------
ERROR    asyncio:_testbase.py:89 Exception in callback <bound method __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap of <uvloop.Loop running=True closed=False debug=True>>
handle: <Handle __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap created at /builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_base.py:254>
source_traceback: Object created at (most recent call last):
  File "/usr/lib64/python3.12/threading.py", line 1009, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib64/python3.12/threading.py", line 1052, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.12/threading.py", line 989, in run
    self._target(*self._args, **self._kwargs)
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_base.py", line 283, in check_in_thread
    check_thread(loop, debug)
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_base.py", line 254, in check_thread
    loop.set_debug(debug)
Traceback (most recent call last):
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "<stringsource>", line 67, in cfunc.to_py.__Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.wrap
TypeError: wrap() takes exactly 2 positional arguments (3 given)
ERROR    asyncio:_testbase.py:89 Exception in callback <bound method __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap of <uvloop.Loop running=True closed=False debug=False>>
handle: <Handle __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap>
Traceback (most recent call last):
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "<stringsource>", line 67, in cfunc.to_py.__Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.wrap
TypeError: wrap() takes exactly 2 positional arguments (3 given)
ERROR    asyncio:_testbase.py:89 Exception in callback <bound method __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap of <uvloop.Loop running=True closed=False debug=True>>
handle: <Handle __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap created at /builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_base.py:254>
source_traceback: Object created at (most recent call last):
  File "/usr/lib64/python3.12/threading.py", line 1009, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib64/python3.12/threading.py", line 1052, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.12/threading.py", line 989, in run
    self._target(*self._args, **self._kwargs)
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_base.py", line 278, in check_in_thread
    check_thread(loop, debug)
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_base.py", line 254, in check_thread
    loop.set_debug(debug)
Traceback (most recent call last):
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "<stringsource>", line 67, in cfunc.to_py.__Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.wrap
TypeError: wrap() takes exactly 2 positional arguments (3 given)
ERROR    asyncio:_testbase.py:89 Exception in callback <bound method __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap of <uvloop.Loop running=True closed=False debug=False>>
handle: <Handle __Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.<locals>.wrap>
Traceback (most recent call last):
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "<stringsource>", line 67, in cfunc.to_py.__Pyx_CFunc_object__lParenLoop__comma_bint__rParen_to_py_4self_7enabled.wrap
TypeError: wrap() takes exactly 2 positional arguments (3 given)
_____ Test_UV_Process_Delayed.test_process_delayed_stdio__paused__no_stdin _____
Traceback (most recent call last):
  File "/usr/lib64/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib64/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/usr/lib64/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_process.py", line 932, in test_process_delayed_stdio__paused__no_stdin
    transport, proto = self.loop.run_until_complete(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_process.py", line 907, in run_sub
    return await self.loop.subprocess_shell(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 2808, in subprocess_shell
  File "uvloop/loop.pyx", line 2734, in uvloop.loop.Loop._Loop__subprocess_run
TypeError: _Loop__subprocess_run() got an unexpected keyword argument '__uvloop_sleep_after_fork'
____ Test_UV_Process_Delayed.test_process_delayed_stdio__paused__stdin_pipe ____
Traceback (most recent call last):
  File "/usr/lib64/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib64/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/usr/lib64/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_process.py", line 913, in test_process_delayed_stdio__paused__stdin_pipe
    transport, proto = self.loop.run_until_complete(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
  File "/builddir/build/BUILD/uvloop-0.18.0/_empty/tests/test_process.py", line 907, in run_sub
    return await self.loop.subprocess_shell(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 2808, in subprocess_shell
  File "uvloop/loop.pyx", line 2734, in uvloop.loop.Loop._Loop__subprocess_run
TypeError: _Loop__subprocess_run() got an unexpected keyword argument '__uvloop_sleep_after_fork'

=========================== short test summary info ============================
FAILED tests/test_base.py::TestBaseUV::test_check_thread - AssertionError: un...
FAILED tests/test_process.py::Test_UV_Process_Delayed::test_process_delayed_stdio__paused__no_stdin
FAILED tests/test_process.py::Test_UV_Process_Delayed::test_process_delayed_stdio__paused__stdin_pipe
====== 3 failed, 471 passed, 32 skipped, 51 warnings in 82.87s (0:01:22) =======
error: Bad exit status from /var/tmp/rpm-tmp.n3X3GM (%check)
    Bad exit status from /var/tmp/rpm-tmp.n3X3GM (%check)

Comment 3 Fedora Update System 2023-12-27 12:26:12 UTC
FEDORA-2023-74f5bd76d2 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-74f5bd76d2

Comment 4 Fedora Update System 2023-12-27 12:27:10 UTC
FEDORA-2023-74f5bd76d2 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.