Dear Qt maintainers,
I've cloned this bug reported against anki to libqt5webengine5, as it
seems that this is the source of the bug. I don't know enough about
Qt's internals to be able to track it down. It seems as though this
is a known problem: https://bugreports.qt.io/browse/QTBUG-68547
It's possible that the bug is in PyQt5, but that would seem unlikely.
But either way, something somewhere is very broken, and I don't know
exactly where.
The original report for your ease of reference, followed by a more
detailed explanation:
-
Package: anki
Version: 2.1.0+dfsg~rc2-2
Severity: grave
Justification: renders package unusable
Anki presents a dialog with the following error message at startup and
then hangs after the dialog is dismissed:
Error during startup:
Traceback (most recent call last):
File "/usr/share/anki/aqt/main.py", line 50, in __init__
self.setupUI()
File "/usr/share/anki/aqt/main.py", line 75, in setupUI
self.setupMainWindow()
File "/usr/share/anki/aqt/main.py", line 585, in setupMainWindow
tweb =3D self.toolbarWeb =3D aqt.webview.AnkiWebView()
File "/usr/share/anki/aqt/webview.py", line 114, in __init__
self.focusProxy().installEventFilter(self)
AttributeError: 'NoneType' object has no attribute 'installEventFilter'
Sending ^c after waiting for a minute or so of waiting produces the
error:
Exception ignored in:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 1294, in _shutdown
t.join()
File "/usr/lib/python3.6/threading.py", line 1056, in join
self._wait_for_tstate_lock()
File "/usr/lib/python3.6/threading.py", line 1072, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt
-
My analysis:
Anki runs (/usr/share/anki/aqt/webview.py, line 18):
QWebEngineView.__init__(self, parent=parent)
which seems to run fine, but something seems wrong, as
self.focusProxy() is Null after this. A few lines later, it runs
(line 18):
QWebEnginePage.__init__(self)
which gives the error:
[0816/101823.790400:WARNING:stack_trace_posix.cc(699)] Failed to open file:
/tmp/.gloFZVqc (deleted)
Error: No such file or directory
And it's all downhill from there: a few lines later, it tries to call
self.focusProxy().installEventFilter(self), but as self.focusProxy()
is Null, it bombs out.
Julian