Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with Qt 5.14 #5013

Closed
The-Compiler opened this issue Sep 12, 2019 · 38 comments
Closed

Issues with Qt 5.14 #5013

The-Compiler opened this issue Sep 12, 2019 · 38 comments

Comments

@The-Compiler
Copy link
Member

@The-Compiler The-Compiler commented Sep 12, 2019

Qt 5.14 feature freeze is over, so it's time to test what breaks this time.

Note that the current 5.14 branch is still based on Chromium 75, might wait for the 76/77 updates before doing more testing.

Related: Interesting changes in Qt 5.14 · Issue #4616 · qutebrowser/qutebrowser

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 12, 2019

✔️ Deprecations

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 12, 2019

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 12, 2019

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 12, 2019

Wrong path for user_prefs.json

With --temp-basedir:

[236791:236806:0912/224129.193339:WARNING:important_file_writer.cc(97)] temp file failure: /home/florian/.local/share/qutebrowser/qutebrowser/QtWebEngine/Default/user_prefs.json : could not create temporary file: No such file or directory (2)

Looks like it's not using the path set in the profile.

Debugging this:

PYTHONPATH=. gdb -ex 'break ProfileQt::setupPrefService()' -ex r --args ~/code/qt/venvs/5.14/bin/python3 -m qutebrowser --temp-basedir

First call

From qutebrowser/browser/webengine/webenginesettings.py (303): _init_profiles:

#0  QtWebEngineCore::ProfileQt::setupPrefService (this=0x55555629a7d0) at ../profile_qt.cpp:303
#1  0x00007fffe1939ac9 in QtWebEngineCore::ProfileQt::ProfileQt (this=0x55555629a7d0, profileAdapter=0x5555561e2470) at ../profile_qt.cpp:97
#2  0x00007fffe1931fe6 in QtWebEngineCore::ProfileAdapter::ProfileAdapter (this=0x5555561e2470, storageName="Default") at ../profile_adapter.cpp:98
#3  0x00007fffe19c0a75 in QtWebEngineCore::WebEngineContext::createDefaultProfileAdapter (this=0x555555dfa8f0) at ../web_engine_context.cpp:317
#4  0x00007fffe1932993 in QtWebEngineCore::ProfileAdapter::createDefaultProfileAdapter () at ../profile_adapter.cpp:239
#5  0x00007fffeeef3a24 in QWebEngineProfile::defaultProfile () at api/qwebengineprofile.cpp:694
#6  0x00007ffff0ffe49d in meth_QWebEngineProfile_defaultProfile () from /home/florian/code/qt/venvs/5.14/lib/python3.7/site-packages/PyQt5/QtWebEngineWidgets.so

Second call

From qutebrowser/browser/webengine/webenginesettings.py (309): _init_profiles:

#0  QtWebEngineCore::ProfileQt::setupPrefService (this=0x55555629a7d0) at ../profile_qt.cpp:303
#1  0x00007fffe1932b13 in QtWebEngineCore::ProfileAdapter::setDataPath (this=0x5555561e2470, path="/tmp/qutebrowser-basedir-1gbzmbrp/data/webengine") at ../profile_adapter.cpp:270
#2  0x00007fffeeef3346 in QWebEngineProfile::setPersistentStoragePath (this=0x555556371a20, path="/tmp/qutebrowser-basedir-1gbzmbrp/data/webengine") at api/qwebengineprofile.cpp:390
#3  0x00007ffff0ffc85f in meth_QWebEngineProfile_setPersistentStoragePath () from /home/florian/code/qt/venvs/5.14/lib/python3.7/site-packages/PyQt5/QtWebEngineWidgets.so

Third call

From qutebrowser/browser/webengine/webenginesettings.py (314): _init_profiles:

#0  QtWebEngineCore::ProfileQt::setupPrefService (this=0x55555623a8b0) at ../profile_qt.cpp:303
#1  0x00007fffe1939ac9 in QtWebEngineCore::ProfileQt::ProfileQt (this=0x55555623a8b0, profileAdapter=0x555556465a90) at ../profile_qt.cpp:97
#2  0x00007fffe1931fe6 in QtWebEngineCore::ProfileAdapter::ProfileAdapter (this=0x555556465a90, storageName="") at ../profile_adapter.cpp:98
#3  0x00007fffeeef3001 in QWebEngineProfile::QWebEngineProfile (this=0x555556382e30, parent=0x0) at api/qwebengineprofile.cpp:300
#4  0x00007ffff0ffe5e9 in sipQWebEngineProfile::sipQWebEngineProfile(QObject*) () from /home/florian/code/qt/venvs/5.14/lib/python3.7/site-packages/PyQt5/QtWebEngineWidgets.so
#5  0x00007ffff0ffe7ea in init_type_QWebEngineProfile () from /home/florian/code/qt/venvs/5.14/lib/python3.7/site-packages/PyQt5/QtWebEngineWidgets.so

Reported to Qt: [QTBUG-78319] [REG 5.14] user_prefs.json gets written before profile is ready - Qt Bug Tracker

Looks like this won't/can't be fixed before [QTBUG-66068] Redesign profile creation - Qt Bug Tracker so let's ignore it...

TODO: Haven't seen this anymore, I think? Did it go away in Beta4 somehow, or is it just visible on debug builds?

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 12, 2019

Falling back to software compositing

During tests, not sure why:

22:26:56.447 DEBUG    init       app:init:194 Init done!
22:26:56.455 DEBUG    misc       mainwindow:_update_overlay_geometry:318 new geometry for <qutebrowser.mainwindow.messageview.MessageView object at 0x7f52140d2370>: PyQt5.QtCore.QRect(0, 584, 801, 1)
INVALID: [236529:236529:0912/222656.580028:ERROR:viz_process_transport_factory.cc(316)] Switching to software compositing.

TODO: Haven't seen this anymore, I think? Did it go away in Beta4 somehow, or is it just visible on debug builds?

@DarkDefender

This comment was marked as resolved.

Copy link

@DarkDefender DarkDefender commented Sep 13, 2019

I don't have a nice way to reproduce this, but I have noticed that sometimes tabs that are not used for a while will simply render a blank screen with 5.14. The only way to make that tab render something again is to restart qutebrowser.

It seems like this starts from index 1 and goes upwards. So for example if I have 10 tabs open and is using tab 9 and 10 for a while. When I switch back to the lower number tabs again. I notice that a range of tabs 1-3 doesn't render anything anymore.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 13, 2019

@DarkDefender Can you check whether you get any output when this happens when you launch qutebrowser in a terminal?

@DarkDefender

This comment was marked as resolved.

Copy link

@DarkDefender DarkDefender commented Sep 13, 2019

I'll see if I can catch any messages. I'll let you know if I manage to reproduce it consistently as well.

@DarkDefender

This comment was marked as resolved.

Copy link

@DarkDefender DarkDefender commented Sep 17, 2019

I managed to have it happen while I had piped the terminal output to a file. Sadly nothing is printed to terminal when this happens.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 24, 2019

@DarkDefender Did you only have stdout piped to that file, or stderr as well? Chromium logging messages seem to be printed to stderr.

@DarkDefender

This comment was marked as resolved.

Copy link

@DarkDefender DarkDefender commented Sep 25, 2019

Reproduced this again without piping the output to a file. Sadly the only thing that is printed in the terminal is adblock messages. Nothing else... :c

If you don't run into this, I guess this might be just because of some weird lib combination I have on my system. So this might sort it self out as we get closer to the 5.14 release.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Sep 25, 2019

I don't actually use Qt 5.14 for day to day usage yet - I only have a developer build which is quite slow. I'll probably use it as soon as it updated to Chromium 77 and a prebuilt beta with that is out.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 7, 2019

@DarkDefender Could any of those issues be what you're seeing?

Also, are you sure you redirected stderr to a logfile as well, not just stdout?

@DarkDefender

This comment was marked as resolved.

Copy link

@DarkDefender DarkDefender commented Oct 7, 2019

79021 sounds like a good match for the behavior I'm seeing.

I have ran into this issue when I started qutebrowser from the terminal and no error messages were printed there either.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 15, 2019

@DarkDefender I mentioned those bugs in the Qt 5.14 release team meeting today - let's hope that helps with them getting fixed before the release. I'll hide our conversation now so that I see what issues are still open from qutebrowser's side.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 15, 2019

@DarkDefender

This comment was marked as resolved.

Copy link

@DarkDefender DarkDefender commented Oct 15, 2019

I'll try it out tomorrow. It will take a while to test though as I can't reliably reproduce this.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 16, 2019

Old/orphaned temporary references to SurfaceId

In various tests we get log messages like [542424:542449:1016/115948.887991:ERROR:surface_manager.cc(438)] Old/orphaned temporary reference to SurfaceId(FrameSinkId[](3, 2), LocalSurfaceId(15, 1, 2BC1...))

TODO: Haven't seen this anymore, I think? Did it go away in Beta4 somehow, or is it just visible on debug builds?

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 16, 2019

✔️ No renderer process killed message

FAILED tests/end2end/features/test_misc_bdd.py::test_renderer_crash_59 - end2end.fixtures.testprocess.WaitForTimeout: Timed out after 5000ms waiting for {'message': 'Renderer process crashed'}.
FAILED tests/end2end/features/test_misc_bdd.py::test_renderer_kill_59 - end2end.fixtures.testprocess.WaitForTimeout: Timed out after 5000ms waiting for {'message': 'Renderer process was killed'}.
FAILED tests/end2end/features/test_misc_bdd.py::test_navigating_to_url_after_renderer_process_is_gone - end2end.fixtures.testprocess.WaitForTimeout: Timed out after 5000ms waiting for {'message': 'Renderer process was killed'}.

Reported as [QTBUG-80085] [REG 5.14] Missing renderProcessTerminated signal - Qt Bug Tracker

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 16, 2019

✔️ mhtml changes

FAILED tests/end2end/test_mhtml_e2e.py::test_mhtml[simple] - assert 'From: <Saved...--=_qute-UUID' == 'From: <Saved...--=_qute-UUID'
>       assert actual_data == expected_data
E       assert 'From: <Saved...--=_qute-UUID' == 'From: <Saved...--=_qute-UUID'
E         Skipping 526 identical leading characters in diff, use -v to show
E         + =3DUTF-8">
E         - =3DUTF-8"><link rel=3D"stylesheet" type=3D"text/css" href=3D=
E         - "cid:css-49fcb60a-f3d7-4910-9c4e-4b76d18f0ac9@mhtml.blink" />
E                  =20
E                   <title>Simple MHTML test</title>
E               </head>...
E         
E         ...Full output truncated (20 lines hidden), use '-vv' to show
@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 16, 2019

✔️ Crash related to searching on page

FAILED tests/end2end/features/test_search_bdd.py::test_jumping_to_next_match_with_count - end2end.fixtures.testprocess.WaitForTimeout: Timed out after 5000ms waiting for {'message': 'next_result found baz'}.
FAILED tests/end2end/features/test_search_bdd.py::test_jumping_to_previous_match_with_count - end2end.fixtures.testprocess.WaitForTimeout: Timed out after 5000ms waiting for {'message': 'prev_result found baz with flags FindBackward'}.
ERROR tests/end2end/features/test_search_bdd.py::test_jumping_to_next_match_with_count - end2end.fixtures.testprocess.InvalidLine: 
ERROR tests/end2end/features/test_search_bdd.py::test_jumping_to_previous_match_with_count - end2end.fixtures.testprocess.InvalidLine: 
[...]
14:06:11.033 DEBUG    commands   command:run:556 Calling qutebrowser.browser.commands.CommandDispatcher.search_next(<qutebrowser.browser.commands.CommandDispatcher>, 2)
----> found it

----> Waiting for 'next_result found baz' in the log
14:06:11.033 DEBUG    webview    webenginetab:wrapped_callback:186 Ignoring cancelled search callback with 1 pending searches
14:06:11.057 CRITICAL qt         find_text_helper:none:147 ASSERT: "m_currentFindRequestId == requestId" in file ../find_text_helper.cpp, line 147
INVALID: Received signal 6
[...]
INVALID: #7 0x7f5f81674190 qt_message_fatal()
INVALID: #8 0x7f5f816707ce QMessageLogger::fatal()
INVALID: #9 0x7f5f81666fec qt_assert()
INVALID: #10 0x7f5f6d698579 QtWebEngineCore::FindTextHelper::handleFindReply()
INVALID: #11 0x7f5f6d771108 QtWebEngineCore::WebContentsDelegateQt::FindReply()
INVALID: #12 0x7f5f731fa859 content::WebContentsImpl::NotifyFindReply()
INVALID: #13 0x7f5f7264178c content::FindRequestManager::NotifyFindReply()
INVALID: #14 0x7f5f72641f76 content::FindRequestManager::FinalUpdateReceived()
INVALID: #15 0x7f5f72640780 content::FindRequestManager::HandleFinalUpdateForFrame()
INVALID: #16 0x7f5f7263e590 content::FindInPageClient::HandleUpdateType()
INVALID: #17 0x7f5f7263e489 content::FindInPageClient::SetNumberOfMatches()
INVALID: #18 0x7f5f6f367538 blink::mojom::FindInPageClientStubDispatch::Accept()
INVALID: #19 0x7f5f7263f48d blink::mojom::FindInPageClientStub<>::Accept()
INVALID: #20 0x7f5f74ebe411 mojo::InterfaceEndpointClient::HandleValidatedMessage()
[...]

Looks like a Qt bug! Reproduced by doing /e and 2n on example.org.

This is only a debug assertion though - works fine with the Beta2 binary.

Reported as [QTBUG-80086] [REG 5.14] debug assert "m_currentFindRequestId == requestId" when calling findText multiple times - Qt Bug Tracker

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 16, 2019

QBackingStore::endPaint() error

ERROR tests/end2end/features/test_tabs_bdd.py::test_take_a_tab_from_the_same_window - Failed: Logged unexpected errors:

12:25:04.660 WARNING qt qbackingstore:"void QBackingStore::endPaint()":194 QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?

TODO: Haven't seen this anymore, I think? Did it go away in Beta4 somehow, or is it just visible on debug builds?

@DarkDefender

This comment was marked as outdated.

Copy link

@DarkDefender DarkDefender commented Oct 16, 2019

@The-Compiler that patch seems to do the trick for me. Now when I switch to tabs sometimes they start blank but after just a second or so they recover and renders fine.

Before they would never recover unless you resized the browser so it had to recalculate the drawing area.

@The-Compiler

This comment was marked as outdated.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 16, 2019

@DarkDefender That's much better then! Not sure what's up with the delay - maybe Qt 5.14 automatically does some lifecycle management (suspending unused tabs) already.

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Oct 24, 2019

Failed to send GpuChannelMsg_CreateCommandBuffer

With the Beta 2 binary in various tests:

[1:7:1024/153221.078110:ERROR:command_buffer_proxy_impl.cc(124)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
@The-Compiler

This comment was marked as outdated.

Copy link
Member Author

@The-Compiler The-Compiler commented Nov 15, 2019

I just upgraded to Qt 5.14 locally, here's what I see currently:

First run:

FAILED tests/end2end/features/test_javascript_bdd.py::test_perurl_localstorage_setting
FAILED tests/end2end/features/test_javascript_bdd.py::test_perurl_javascript_setting
FAILED tests/end2end/features/test_misc_bdd.py::test_renderer_crash_59 - end2end....
FAILED tests/end2end/features/test_misc_bdd.py::test_renderer_kill_59 - end2end.f...
FAILED tests/end2end/features/test_misc_bdd.py::test_navigating_to_url_after_renderer_process_is_gone
FAILED tests/end2end/test_mhtml_e2e.py::test_mhtml[simple] - assert 'From: <Saved...
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_simple[None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_scrolled[None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_iframe[None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_zoomed[True-None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_zoomed[False-None]
FAILED tests/unit/utils/test_standarddir.py::TestStandardDir::test_linux_explicit[runtime-XDG_RUNTIME_DIR]
FAILED tests/unit/utils/test_standarddir.py::TestStandardDir::test_linux_invalid_runtimedir
ERROR tests/end2end/features/test_editor_bdd.py::test_editing_a_url_with_t - end2...
ERROR tests/end2end/features/test_editor_bdd.py::test_spawning_an_editor_in_normal_mode
ERROR tests/end2end/features/test_editor_bdd.py::test_spawning_an_editor_and_closing_the_tab
ERROR tests/end2end/features/test_prompts_bdd.py::test_notifications_with_ask__false
ERROR tests/end2end/features/test_tabs_bdd.py::test_using_tabprev_after_closing_last_tab_1448

Second run:

FAILED tests/end2end/features/test_javascript_bdd.py::test_perurl_javascript_setting
FAILED tests/end2end/features/test_misc_bdd.py::test_renderer_crash_59 - end2end....
FAILED tests/end2end/features/test_misc_bdd.py::test_renderer_kill_59 - end2end.f...
FAILED tests/end2end/features/test_misc_bdd.py::test_navigating_to_url_after_renderer_process_is_gone
FAILED tests/end2end/test_mhtml_e2e.py::test_mhtml[simple] - assert 'From: <Saved...
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_simple[None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_scrolled[None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_iframe[None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_zoomed[True-None]
FAILED tests/unit/browser/webkit/test_webkitelem.py::TestRectOnView::test_zoomed[False-None]
FAILED tests/unit/utils/test_standarddir.py::TestStandardDir::test_linux_explicit[runtime-XDG_RUNTIME_DIR]
FAILED tests/unit/utils/test_standarddir.py::TestStandardDir::test_linux_invalid_runtimedir
ERROR tests/end2end/features/test_editor_bdd.py::test_spawning_an_editor_in_normal_mode
@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Nov 19, 2019

✔️ test_spawning_an_editor_in_normal_mode failure

ERROR tests/end2end/features/test_editor_bdd.py::test_spawning_an_editor_in_normal_mode

Looks like this is actually one of the error logging issues above (GpuChannelMsg_CreateCommandBuffer).

The-Compiler added a commit that referenced this issue Nov 19, 2019
The actual mhtml files are produced by QtWebEngine, so we don't actually care
about how they look in detail. The output changes with almost every Qt/Chromium
update, so let's only sanity-check the resulting file with QtWebEngine instead
of playing catch-up all the time.

See #5013
@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Nov 19, 2019

✔️ QWebEngineDownloadItem::setPath deprecation

See Qt codereview.

Suggested fix:

diff --git qutebrowser/browser/webengine/webenginedownloads.py qutebrowser/browser/webengine/webenginedownloads.py
index 38478f10f..059e5fd07 100644
--- qutebrowser/browser/webengine/webenginedownloads.py
+++ qutebrowser/browser/webengine/webenginedownloads.py
@@ -166,7 +166,13 @@ class DownloadItem(downloads.AbstractDownloadItem):
         message.global_bridge.ask(question, blocking=True)
 
     def _after_set_filename(self):
-        self._qt_item.setPath(self._filename)
+        dirname, basename = os.path.split(self._filename)
+        try:
+            # Qt 5.14
+            self._qt_item.setDownloadDirectory(dirname)
+            self._qt_item.setDownloadFileName(basename)
+        except AttributeError:
+            self._qt_item.setPath(self._filename)
         self._qt_item.accept()

Not pushing it yet because I can't test it before PyQt 5.14 is out.

The-Compiler added a commit that referenced this issue Nov 19, 2019
See #5013

This should allow us to start running Qt 5.14 tests on Travis.
The-Compiler added a commit that referenced this issue Nov 19, 2019
See #5013
The-Compiler added a commit that referenced this issue Nov 21, 2019
The-Compiler added a commit that referenced this issue Dec 8, 2019
QTBUG-80085 has been fixed.
This mostly reverts d874523.
See #5013
@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Dec 20, 2019

✔️ Windows font warning: Family name '...' is too long.

https://ci.appveyor.com/project/qutebrowser/qutebrowser/builds/29666834?fullLog=true

QWindowsFontDatabase::fontDefToLOGFONT: Family name 'Monospace, DejaVu Sans Mono, Monaco, Bitstream Vera Sans Mono, Andale Mono, Courier New, Courier, Liberation Mono, monospace, Fixed, Consolas, Terminal' is too long.


This might actually be an issue from Qt 5.13 (since we still use 5.12 on AppVeyor in the master branch). Here are potentially related Qt changes:

Handle fonts that have commas/quotes in the family name (Iee9f715e) · Gerrit Code Review
Windows: Use the first entry in the requested families if available (Iccc9cde7) · Gerrit Code Review

So maybe that'll go away if we use QFont.setFamilies instead of setFamily with configtypes.QtFont on Qt >= 5.13?


Fixed in 777cfbf

@The-Compiler

This comment was marked as outdated.

Copy link
Member Author

@The-Compiler The-Compiler commented Dec 20, 2019

macOS font warning: Replace uses of missing font family "Monospace"

https://travis-ci.org/qutebrowser/qutebrowser/jobs/627466720
https://travis-ci.org/qutebrowser/qutebrowser/jobs/627466721

Populating font family aliases took 1162 ms. Replace uses of missing font family "Monospace" with one that exists to avoid this cost.


Change: https://codereview.qt-project.org/c/qt/qtbase/+/276151

Fix idea: Make fonts.monospace empty by default; use QFont to get the default monospace font.

Moved to #5184

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Dec 20, 2019

✔️ macOS: Immediate renderer process crashes

https://travis-ci.org/qutebrowser/qutebrowser/jobs/627466720
https://travis-ci.org/qutebrowser/qutebrowser/jobs/627466721

Causes missed load_finished signals:

    @pytest.fixture
    def caret(web_tab, qtbot, mode_manager):
        with qtbot.wait_signal(web_tab.load_finished):
>           web_tab.load_url(QUrl('qute://testdata/data/caret.html'))
E           pytestqt.exceptions.TimeoutError: Signal load_finished(bool) not emitted after 1000 ms

And missed runJavaScript invocations:

        with qtbot.wait_callback() as callback:
>           page.runJavaScript('1 + 1', world, callback)
E           pytestqt.exceptions.TimeoutError: Callback wasn't called after 1000ms.

(Note that end2end tests are currently disabled on macOS)

Looks like the renderer process is just crashing outright, even with my Mac Mini...?!?


Trying to fix the wheel:

macmini-highsierra:git florian$ cd .tox/py37-pyqt514/lib/python3.7/site-packages/PyQt5/Qt/lib/QtWebEngineCore.framework/
macmini-highsierra:QtWebEngineCore.framework florian$ ls
Helpers         Libraries       Resources       Versions
macmini-highsierra:QtWebEngineCore.framework florian$ cd Versions/
macmini-highsierra:Versions florian$ ls
5
macmini-highsierra:Versions florian$ ln -s 5 Current
macmini-highsierra:Versions florian$ cd ..
macmini-highsierra:QtWebEngineCore.framework florian$ mv Resources/ Helpers/ Versions/5/     
macmini-highsierra:QtWebEngineCore.framework florian$ ln -s Versions/5/Resources .
macmini-highsierra:QtWebEngineCore.framework florian$ ln -s Versions/5/Helpers .
dyld: Library not loaded: @rpath/QtGui.framework/Versions/5/QtGui
  Referenced from: /Users/florian/proj/qutebrowser/git/.tox/py37-pyqt514/lib/python3.7/site-packages/PyQt5/Qt/lib/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess
  Reason: image not found

Workaround in bf9ae73

-> Reverted workaround again and switch to PyQt5 5.14.1

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Dec 20, 2019

✔️ Missing resource types

    def test_requestinfo_dict_valid(self):
        """Test that the RESOURCE_TYPES dict is not missing any values."""
        qb_keys = interceptor.RequestInterceptor.RESOURCE_TYPES.keys()
        qt_keys = {i for i in vars(QWebEngineUrlRequestInfo).values()
                   if isinstance(i, QWebEngineUrlRequestInfo.ResourceType)}
>       assert qt_keys == qb_keys
E       assert {0, 1, 2, 3, 4, 5, ...} == dict_keys([0,... 16, 17, 255])
E         Use -v to get the full diff

Fixed in 6ecae98

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Dec 20, 2019

✔️ Inconsistency detected by ld.so

Seeing this a lot more than before, it seems... Causes test process to abort:

https://travis-ci.org/qutebrowser/qutebrowser/jobs/627466719

E               11:08:04.953 DEBUG    init       app:_init_modules:480 Initializing websettings...
E               IGNORED: Inconsistency detected by ld.so: dl-tls.c: 493: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!

Workaround in f3d4ed0

The-Compiler added a commit that referenced this issue Dec 31, 2019
This uses QtFont.setFamilies, similar to what QCssParser does in the commit
where it was introduced: https://codereview.qt-project.org/c/qt/qtbase/+/240070

It also fixes a "font family too long" warning on Windows - see #5013
@The-Compiler The-Compiler added this to the v1.9.0 milestone Dec 31, 2019
The-Compiler added a commit that referenced this issue Jan 4, 2020
The-Compiler added a commit that referenced this issue Jan 5, 2020
The-Compiler added a commit that referenced this issue Jan 5, 2020
Needed a workaround for a missing PyQt file, see #5013
@The-Compiler

This comment was marked as outdated.

Copy link
Member Author

@The-Compiler The-Compiler commented Jan 5, 2020

PyInstaller on macOS: Missing QtQmlModels

20:11:21 ERROR: Renderer process crashed
dyld: Library not loaded: @rpath/QtQmlModels.framework/Versions/5/QtQmlModels
  Referenced from: /Volumes/qutebrowser/qutebrowser.app/Contents/MacOS/PyQt5/Qt/lib/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess
  Reason: image not found

Moved to #4918

@The-Compiler

This comment was marked as resolved.

Copy link
Member Author

@The-Compiler The-Compiler commented Jan 6, 2020

✔️ PyQt5 5.14.1 uses manylinux2014 wheel

It looks like PyQt5 5.14.1 is now packaged as manylinux2014 (rather than manylinux1) wheel, which is too new for the pip bundled with ensurepip/venv...

  • Mail sent to the mailinglist, maybe they'll upload it as manylinux1 again and all will be well.
  • If not, we'll need to add tox-pip-version to requirements.txt and pip_version = pip to the environments in tox.ini so they get an updated pip (seems to be ignored when the plugin isn't installed)
  • If not, we'll also need to adjust the install instructions to get people to install a newer pip. Not sure how exactly, yet...

Fixed in 34d2a28

@The-Compiler The-Compiler modified the milestones: v1.9.0, v1.10.0 Jan 8, 2020
The-Compiler added a commit that referenced this issue Jan 9, 2020
The-Compiler added a commit that referenced this issue Jan 9, 2020
This was mainly needed because PyQt 5.14.1 is a manylinux2014 wheel and needs
an updated pip, see #5013
The-Compiler added a commit that referenced this issue Jan 9, 2020
The-Compiler added a commit that referenced this issue Jan 9, 2020
This was mainly needed because PyQt 5.14.1 is a manylinux2014 wheel and needs
an updated pip, see #5013
The-Compiler added a commit that referenced this issue Jan 10, 2020
This was mainly needed because PyQt 5.14.1 is a manylinux2014 wheel and needs
an updated pip, see #5013
The-Compiler added a commit that referenced this issue Jan 11, 2020
See #5013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.