Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1818600 - calibre fails to build with Python 3.9: Hangs in test_jobs_manager
Summary: calibre fails to build with Python 3.9: Hangs in test_jobs_manager
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: calibre
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1807186
Blocks: PYTHON39
TreeView+ depends on / blocked
 
Reported: 2020-03-29 14:44 UTC by Miro Hrončok
Modified: 2020-08-02 16:30 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-05-15 17:10:18 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2020-03-29 14:44:53 UTC
calibre fails to build with Python 3.9.0a5, it hangs in %check:

test_jobs_manager (calibre.srv.tests.loop.LoopTest)
Test the jobs manager ... Exception in thread JobsMonitor0:
Traceback (most recent call last):
  File "/usr/lib64/python3.9/threading.py", line 944, in _bootstrap_inner
    self.run()
  File "/builddir/build/BUILD/calibre-4.12.0/src/calibre/srv/jobs.py", line 43, in run
    result = func()
  File "/builddir/build/BUILD/calibre-4.12.0/src/calibre/utils/ipc/simple_worker.py", line 258, in fork_job
    return two_part_fork_job(env, priority, cwd)(
  File "/builddir/build/BUILD/calibre-4.12.0/src/calibre/utils/ipc/simple_worker.py", line 174, in two_part_fork_job
    listener, w = create_worker(env, priority, cwd)
  File "/builddir/build/BUILD/calibre-4.12.0/src/calibre/utils/ipc/simple_worker.py", line 129, in create_worker
    address, listener = create_listener(auth_key)
  File "/builddir/build/BUILD/calibre-4.12.0/src/calibre/utils/ipc/server.py", line 142, in create_listener
    l = LinuxListener(address=address, authkey=authkey, backlog=backlog)
  File "/builddir/build/BUILD/calibre-4.12.0/src/calibre/utils/ipc/server.py", line 109, in __init__
    self._listener._unlink.cancel()
AttributeError: 'NoneType' object has no attribute 'cancel'
 !! Copr timeout => sending INT

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

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

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. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.9.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Adam Williamson 2020-05-14 22:54:51 UTC
Can you please try again with 4.15.0 I just built in Rawhide? It fails in mock, but the error is different and may be mock-specific:

test_qt (calibre.test_build.BuildTest) ... [5749:5749:0514/135010.702617:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

Comment 2 Miro Hrončok 2020-05-14 23:07:41 UTC
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/calibre/ picked up your commit.

It failed. The error was:

ERROR: test_feedparser (calibre.test_build.BuildTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/calibre-4.15.0/src/calibre/test_build.py", line 322, in test_feedparser
    from calibre.web.feeds.feedparser import parse
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 982, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 925, in _find_spec
  File "/builddir/build/BUILD/calibre-4.15.0/src/calibre/startup.py", line 53, in find_spec
    m = import_module('feedparser')
  File "/usr/lib64/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/usr/lib/python3.9/site-packages/feedparser.py", line 93, in <module>
    _base64decode = getattr(base64, 'decodebytes', base64.decodestring)
AttributeError: module 'base64' has no attribute 'decodestring'


See https://docs.python.org/3.9/whatsnew/3.9.html#removed

"base64.encodestring() and base64.decodestring(), aliases deprecated since Python 3.1, have been removed: use base64.encodebytes() and base64.decodebytes() instead."

bz1807186

Comment 3 Adam Williamson 2020-05-15 16:01:08 UTC
so, progress!

Comment 4 Miro Hrončok 2020-05-15 16:13:38 UTC
Indeed, but bz1807186 remains unanswered.

Comment 5 Adam Williamson 2020-05-15 16:30:45 UTC
Not any more! I have less patience than you. :P


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