Bug 1840780

Summary: Calibre won't run: fails with python traceback.
Product: [Fedora] Fedora Reporter: Todd Warner <t0dd>
Component: calibreAssignee: Kevin Fenzi <kevin>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: chkr, emmanuel, emowery, enpontus, fatkasuvayu, helio, kevin, netllama, nikperrakis, nushio, oystein.hiaasen, paul.destefano-redhat2, tswsl1989, william.garber, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: calibre-4.17.0-1.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-06-01 01:24:52 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:

Description Todd Warner 2020-05-27 15:46:01 UTC
Description of problem:
Calibre won't run. Fails with python traceback.

Version-Release number of selected component (if applicable):
4.13 (FYI, newest version via the calibre website is 4.17 if you guys end up refreshing this to fix the problem.)

How reproducible:
Always.


Steps to Reproduce:
1. sudo dnf install calibre -y
2. calibre
3. FAIL

Actual results:
[todd@localhost ~]$ calibre
Traceback (most recent call last):
  File "/usr/bin/calibre", line 20, in <module>
    sys.exit(calibre())
  File "/usr/lib64/calibre/calibre/gui_launch.py", line 72, in calibre
    main(args)
  File "/usr/lib64/calibre/calibre/gui2/main.py", line 542, in main
    listener = create_listener()
  File "/usr/lib64/calibre/calibre/gui2/main.py", line 513, in create_listener
    return Listener(address=gui_socket_address())
  File "/usr/lib64/calibre/calibre/utils/ipc/server.py", line 109, in __init__
    self._listener._unlink.cancel()
AttributeError: 'NoneType' object has no attribute 'cancel'

Comment 1 Kevin Fenzi 2020-05-27 21:03:29 UTC
I have no time currently to look into this, but perhaps one of my co-maintainers will do so.

Comment 2 Øystein Hiåsen 2020-05-28 22:34:17 UTC
The bug appears after upgrading to python 3.8.3.
I have confirmed that calibre 4.13 runs with python 3.8.2 by downgrading using "dnf downgrade python3".


I think I have found the source of the bug and it looks to be fixed in calibre 4.15
(https://github.com/kovidgoyal/calibre/commit/7b6416ac6522fc40f24f6baf3ca552b17a8b91d6)


The reason it happens after upgrading to python 3.8.3 is that python 3.8.3 added support for
abstract socket namespace in the multiprocessing library.
(https://bugs.python.org/issue39850)
And the line which raises the AttributeError is a workaround for the previous lack of support for abstract sockets.


So this bug should be fixable by packaging the newest calibre version (4.17).

Comment 3 Kevin Fenzi 2020-05-29 22:45:42 UTC
*** Bug 1841572 has been marked as a duplicate of this bug. ***

Comment 4 Kevin Fenzi 2020-05-29 22:45:51 UTC
*** Bug 1840432 has been marked as a duplicate of this bug. ***

Comment 5 Kevin Fenzi 2020-05-29 22:45:59 UTC
*** Bug 1840290 has been marked as a duplicate of this bug. ***

Comment 6 Kevin Fenzi 2020-05-29 22:59:07 UTC
Could someone try this scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=45155009 and confirm it fixes it for you?

I'll look at doing an offical build in a bit here...

Comment 7 Suvayu 2020-05-29 23:10:40 UTC
Hi Kevin, it fixes the problem for me.  Thanks for the quick fix!

Comment 8 Emmanuel Seyman 2020-05-29 23:33:01 UTC
(In reply to Suvayu from comment #7)
>
> Hi Kevin, it fixes the problem for me.

Same here. Thanks, Kevin!

Comment 9 Kevin Fenzi 2020-05-29 23:46:34 UTC
Great. Official build coming up...

Comment 10 william.garber 2020-05-30 00:47:03 UTC
thank you !!

Comment 11 Fedora Update System 2020-05-30 00:52:14 UTC
FEDORA-2020-37c359a64e has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-37c359a64e

Comment 12 william.garber 2020-05-30 15:07:37 UTC
how do I test it please?

Comment 13 Fedora Update System 2020-05-31 04:51:36 UTC
FEDORA-2020-37c359a64e has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-37c359a64e`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-37c359a64e

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Suvayu 2020-05-31 08:38:05 UTC
(In reply to william.garber from comment #12)
> how do I test it please?

If you follow the bodhi link, you will see a command line that's on top of the page.  That will install the update for you, then you can check if that resolves the bug and if it's generally functional.  You can leave feedback on the bodhi page.  When an update is published, it takes about a day to be available in the repositories (see the timestamps on the bodhi page).

Hope this helps.

Comment 15 william.garber 2020-05-31 14:48:26 UTC
it works so far.

Comment 16 Fedora Update System 2020-06-01 01:24:52 UTC
FEDORA-2020-37c359a64e has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 17 Eddie 2020-11-21 18:24:41 UTC
Similar problem has been detected:

Just installed Calibre using Discover software center and am not able to open it.

reporter:       libreport-2.13.1
cmdline:        /usr/bin/python3 /usr/bin/calibre --detach
crash_function: __init__
exception_type: AttributeError
executable:     /usr/bin/calibre
interpreter:    python3-3.8.6-1.fc32.x86_64
kernel:         5.8.16-200.fc32.x86_64
package:        calibre-4.13.0-1.fc32
reason:         server.py:109:__init__:AttributeError: 'NoneType' object has no attribute 'cancel'
runlevel:       N 5
type:           Python3
uid:            1000