qutebrowser / qutebrowser

A keyboard-driven, vim-like browser based on Python and Qt.
https://www.qutebrowser.org/
GNU General Public License v3.0
9.75k stars 1.01k forks source link

Renderer crashes with QtWebEngine 5.15 and newer glibc versions #7353

Open optik-aper opened 2 years ago

optik-aper commented 2 years ago

Version info:

version info

Does the bug happen if you start with --temp-basedir?: Yeah

Description I'm getting a rederer crashed error immediately after starting qutebrowser from the virtual envrionment on Ubuntu 22.04. DuckDuckGo won't load, no new page will load, including :version. They all show red status in the tab color bar. The debug message is:

12:45:56 ERROR    webview    tabbedbrowser:show_error_page:945 Renderer process crashed

I tried building the virtual environment with different QT versions (5.13, 5.14 and 5.15). I didn't have any success with any of these; 5.14 segfaulted even before spawing the window.

Eventually I was able to get it to work, I think, by passing the --single-process flag to QT via .venv/bin/python3 qutebrowser.py -l debug --qt-flag single-process. I'm not sure if this is an ideal situation though so thought I'd report my issue.

How to reproduce

The-Compiler commented 2 years ago

Does using -s qt.chromium.sandboxing disable-seccomp-bpf instead help?

optik-aper commented 2 years ago

It doesn't appear so. Upon opening:

michael  ~/repos/qutebrowser (:f11cdd0bf|✔)
 Φ .venv/bin/python3 qutebrowser.py -s qt.chromium.sandboxing disable-seccomp-bpf                                                13:40
13:41:13 ERROR: set: NoOptionError - No option 'qt.chromium.sandboxing'
13:41:14 ERROR: Renderer process crashed
13:41:14 ERROR: Renderer process crashed
13:41:14 ERROR: Renderer process crashed
13:41:15 ERROR: Renderer process crashed

It also cannot load the :version page with that option

toofar commented 2 years ago

set: NoOptionError - No option 'qt.chromium.sandboxing'

Your version output says you are running on f11cdd0bf on HEAD (2021-02-04 10:19:33 +0100), that option was only added this year. Any reason you are running from git with such an old version? If so you can probably pass disable-seccomp-filter-sandbox in the qt.args argument. But if not try it with a recent checkout? Either the v2.5.2 tag or just current master should do it.

Without stack traces all we can do is ask about your environment and search the issues for other ones mentioning single process mode.

optik-aper commented 2 years ago

Ah, shoot, yeah. I was trying different tags to get a sense of if it was an older version. When I checkout v2.5.2 that option is available and works!

michael  ~/repos/qutebrowser (:951a14a66|✔)
 Φ .venv/bin/python3 qutebrowser.py -s qt.chromium.sandboxing disable-seccomp-bpf                                                22:44
22:44:10 INFO: Removing service workers at /home/michael/.local/share/qutebrowser/webengine/Service Worker (reason: QtWebEngine version changed)
22:44:11 INFO: Showing changelog after upgrade to qutebrowser v2.5.2.

version info

The-Compiler commented 2 years ago

This is a known issue with QtWebEngine 5.15.2 (which is the newest Qt 5 available as binary build) and newer glibc versions - it's been known for some time on Archlinux, guess Ubuntu 22.04 comes with a newer glibc too.

Guess we should make this cleaner in the docs though, and maybe also make mkvenv.py or qutebrowser itself warn about it.

Is there a particular reason you're not using Ubuntu's QtWebEngine instead? If you want to run from the git repo, you can use mkvenv.py with --pyqt-type link.

optik-aper commented 2 years ago

I didn't know about that flag. I started with the version in the Ubuntu repo but it wasn't compiled with adblock so I decided to run it all from the git repo. I'll try using ubuntu's version. Thanks for the help!

lidgnulinux commented 2 years ago

Hello, I'm facing same issue. Using -s qt.chromium.sandboxing disable-seccomp-bpf seems fix the issue, but it's a bit weird.

The-Compiler commented 2 years ago

@lidgnulinux This is not something qutebrowser can do anything about (other than show a warning or so). You will need to use either that option (reducing security), or a newer Qt 5.15 (usually from your Linux distribution) or try the Qt 6 branch (#7202).

dfaure-kdab commented 2 months ago

BTW this is https://bugreports.qt.io/browse/QTBUG-96214 which got fixed in Qt 5.15.8