Bug 1787746 - python-decorator fails to build with Python 3.9: uses removed threading.Thread.isAlive()
Summary: python-decorator fails to build with Python 3.9: uses removed threading.Threa...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-decorator
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Fedora Infrastructure SIG
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON39
TreeView+ depends on / blocked
 
Reported: 2020-01-04 22:51 UTC by Miro Hrončok
Modified: 2020-03-05 09:45 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-03-05 09:45:48 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github micheles decorator issues 75 0 None closed Python 3.9: AttributeError: 'Thread' object has no attribute 'isAlive' 2020-11-05 11:30:53 UTC

Description Miro Hrončok 2020-01-04 22:51:39 UTC
python-decorator fails to build with Python 3.9.0a2.

+ /usr/bin/python3 setup.py test
running test
WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.
running egg_info
writing src/decorator.egg-info/PKG-INFO
writing dependency_links to src/decorator.egg-info/dependency_links.txt
writing top-level names to src/decorator.egg-info/top_level.txt
reading manifest file 'src/decorator.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'README.rst'
warning: no files found matching 'documentation.pdf'
writing manifest file 'src/decorator.egg-info/SOURCES.txt'
running build_ext
test_before_after (tests.test.CoroutineTestCase) ... ok
test_coro_to_func (tests.test.CoroutineTestCase) ... ok
test (tests.test.DocumentationTestCase) ... **********************************************************************
File "/builddir/build/BUILD/decorator-4.4.0/src/tests/documentation.py", line 531, in tests.documentation
Failed example:
    print(read_data())  # data is not available yet
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib64/python3.9/doctest.py", line 1329, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest tests.documentation[33]>", line 1, in <module>
        print(read_data())  # data is not available yet
      File "</builddir/build/BUILD/decorator-4.4.0/src/decorator.py:decorator-gen-26>", line 2, in read_data
      File "/builddir/build/BUILD/decorator-4.4.0/src/tests/documentation.py", line 1532, in blocking
        elif f.thread.isAlive():
    AttributeError: 'Thread' object has no attribute 'isAlive'
**********************************************************************
File "/builddir/build/BUILD/decorator-4.4.0/src/tests/documentation.py", line 535, in tests.documentation
Failed example:
    print(read_data())  # data is not available yet
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib64/python3.9/doctest.py", line 1329, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest tests.documentation[35]>", line 1, in <module>
        print(read_data())  # data is not available yet
      File "</builddir/build/BUILD/decorator-4.4.0/src/decorator.py:decorator-gen-26>", line 2, in read_data
      File "/builddir/build/BUILD/decorator-4.4.0/src/tests/documentation.py", line 1532, in blocking
        elif f.thread.isAlive():
    AttributeError: 'Thread' object has no attribute 'isAlive'
**********************************************************************
File "/builddir/build/BUILD/decorator-4.4.0/src/tests/documentation.py", line 539, in tests.documentation
Failed example:
    print(read_data())
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib64/python3.9/doctest.py", line 1329, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest tests.documentation[37]>", line 1, in <module>
        print(read_data())
      File "</builddir/build/BUILD/decorator-4.4.0/src/decorator.py:decorator-gen-26>", line 2, in read_data
      File "/builddir/build/BUILD/decorator-4.4.0/src/tests/documentation.py", line 1532, in blocking
        elif f.thread.isAlive():
    AttributeError: 'Thread' object has no attribute 'isAlive'
**********************************************************************
1 items had failures:
   3 of  88 in tests.documentation
***Test Failed*** 3 failures.
FAIL
test_singledispatch1 (tests.test.DocumentationTestCase) ... ok
test_singledispatch2 (tests.test.DocumentationTestCase) ... ok
test_add1 (tests.test.ExtraTestCase) ... ok
test_decorator_factory (tests.test.ExtraTestCase) ... ok
test_no_first_arg (tests.test.ExtraTestCase) ... ok
test_qualname (tests.test.ExtraTestCase) ... ok
test_signature (tests.test.ExtraTestCase) ... ok
test_unique_filenames (tests.test.ExtraTestCase) ... ok
test_gen123 (tests.test.GeneratorCallerTestCase) ... ok
test_c_classes (tests.test.TestSingleDispatch) ... ok
test_mro (tests.test.TestSingleDispatch) ... ok
test_mro_conflicts (tests.test.TestSingleDispatch) ... ok
test_register_abc (tests.test.TestSingleDispatch) ... ok
test_register_decorator (tests.test.TestSingleDispatch) ... ok
test_register_error (tests.test.TestSingleDispatch) ... ok
test_simple_overloads (tests.test.TestSingleDispatch) ... ok
test_wrapping_attributes (tests.test.TestSingleDispatch) ... ok

======================================================================
FAIL: test (tests.test.DocumentationTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/decorator-4.4.0/src/tests/test.py", line 81, in test
    self.assertEqual(err, 0)
AssertionError: 3 != 0

----------------------------------------------------------------------
Ran 20 tests in 5.660s

FAILED (failures=1)
Test failed: <unittest.runner.TextTestResult run=20 errors=0 failures=1>
error: Test failed: <unittest.runner.TextTestResult run=20 errors=0 failures=1>
error: Bad exit status from /var/tmp/rpm-tmp.7lvrnx (%check)


Indeed, isAlive() is deprecated, use is_alive() instead:

$ python3.8 -c 'import threading; t = threading.Thread(); t.isAlive()'
<string>:1: DeprecationWarning: isAlive() is deprecated, use is_alive() instead

$ python3.9 -c 'import threading; t = threading.Thread(); t.isAlive()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: 'Thread' object has no attribute 'isAlive'


For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.9/fedora-rawhide-x86_64/01138324-python-decorator/

For all our attempts to build python-decorator with Python 3.9, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/python-decorator/

Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.9:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/

Let us know here if you have any questions.

Python 3.9 will be included in Fedora 33, but the initial bootstrapping has already started.
A build failure this early in the bootstrap sequence blocks us very much.

Comment 2 Ben Cotton 2020-02-11 17:38:08 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 3 Miro Hrončok 2020-03-05 09:45:48 UTC
That PR was merged 2 months ago.


Note You need to log in before you can comment on or make changes to this bug.