Monday, March 06, 2023

Re: qutebrowser seg fault

On 2023/03/06 13:57, Todd T. Fries wrote:
> I have an observation to add.
>
> Chasing a bug in 'pkg_add -Ur' when /usr/local fills up, and it prompts to
> delete the existing files, then runs out of space installing the package after
> deleting the older one .. I accidentally landed in a state where Qt5WebKit
> was all there, but Qt5WebEngine was missing some libraries, in my case it was
>
> /usr/local/lib/qt5/libQt5WebEngineWidgets.so.1.0
>
> but *shrug* not sure it matters. It failed to use the Qt5WebEngine libs and
> was able to function with a stern warning about no bugs or security issues
> fixed since 2017. So I didn't load a web page with it, but it at least loaded.
>
> Guess this points to a potential glitch with Qt5WebEngine loading?
>
> Probably going into the weeds to suggest maybe trying to let python and qutebrowser
> prod in a pseudo elf reading way which libs are avail and what versions exist and
> loading libs and unloading them into the namespace might not leave the most clean
> environment when it finally decides to load Qt5WebEngine ..
>
> If I had time I might consider finding the code and short-circuiting it to Qt5WebEngine
> just in case knowing that we reliably build things in the ports tree and don't have
> to have a web browser go fishing to figure out what libs exist to load at runtime..
> might make things work beyond SEGV it currently does.
>
> Just my $.02

You can short-circuit it by setting the backend in .config/qutebrowser/autoconfig.yml

config_version: 2
settings:
backend:
global: (webengine or webkit)

If it's set to webengine, it segfaults for me. (And if it's set to
webkit, it uses outdated qtwebkit).

(gdb) bt
#0 thrkill () at /tmp/-:3
#1 0xf9258b71bd9ce4a6 in ?? ()
#2 <signal handler called>
#3 glXGetCurrentDisplay () at /usr/xenocara/lib/mesa/mk/libGL/../../src/glx/glxcmds.c:1402
#4 0x00000b430f6b2350 in QGLXContext::queryDummyContext() ()
from /usr/local/lib/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
#5 0x00000b430f6b2bf7 in QGLXContext::supportsThreading() ()
from /usr/local/lib/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
#6 0x00000b430f6adc8b in QXcbGlxIntegration::supportsThreadedOpenGL() const ()
from /usr/local/lib/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
#7 0x00000b42c542cea5 in QXcbIntegration::hasCapability(QPlatformIntegration::Capability) const ()
from /usr/local/lib/qt5/libQt5XcbQpa.so.0.1
#8 0x00000b42f6ce5260 in QOpenGLContext::supportsThreadedOpenGL() () from /usr/local/lib/qt5/libQt5Gui.so.3.0
#9 0x00000b4340a4a645 in QtWebEngineCore::WebEngineContext::isGpuServiceOnUIThread() ()
from /usr/local/lib/qt5/libQt5WebEngineCore.so.1.0
#10 0x00000b42d28d5b08 in ?? ()
#11 0xe2cac5a07d7d3773 in ?? ()
#12 0x00007f7ffffd72c0 in ?? ()
#13 0x00000b4340a4d691 in QtWebEngineCore::WebEngineContext::registerMainThreadFactories() ()
from /usr/local/lib/qt5/libQt5WebEngineCore.so.1.0
Backtrace stopped: frame did not save the PC

*shrug*

No comments:

Post a Comment