FS#66805 - [qt5ct] Segmentation fault in all apps after update to Qt 5.15

Attached to Project: Arch Linux
Opened by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 00:42 GMT
Last edited by Antonio Rojas (arojas) - Thursday, 28 May 2020, 11:01 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Antonio Rojas (arojas)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

After the update to Qt5.15 today, all Qt apps crash with a segmentation fault in __tzfile_compute(), apparently by overflowing the call stack (detailed crash analysis below)

Package versions:

- Qt5 package suite: 5.15.0-1, does not crash with 5.14.2
- qt5ct: 0.41-3, 0.41-2, trunk (r563), apparently any version

Steps to reproduce:

- Install Qt 5.15
- Install qt5ct (any version)
- export QT_QPA_PLATFORM=qt5ct
- Start any Qt app (konsole, qt5ct, matplotlib with Qt5 backend, etc...)

Crash Analysis:

- looking at the backtrace, it can be clearly seen that the problem is an unbounded recursion loop:

(full 10MB file here, it was too large for the bug tracker: https://gist.github.com/Ferdi265/32c8d820a0856ae1aca183ce1e3c8fae)

#19 0x00007fe48c308805 in QStyleFactory::create(QString const&) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007fe48c329cb6 in ?? () from /usr/lib/libQt5Widgets.so.5
#21 0x00007fe48c32a985 in QProxyStyle::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#22 0x00007fe48c2976f2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
... snip ...
#49859 0x00007fe48b7c969a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#49860 0x00007fe48b7fe499 in QObjectPrivate::setParent_helper(QObject*) () from /usr/lib/libQt5Core.so.5
#49861 0x00007fe48c32a985 in QProxyStyle::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49862 0x00007fe48c2976f2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49863 0x00007fe48b7c969a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#49864 0x00007fe48b7fe499 in QObjectPrivate::setParent_helper(QObject*) () from /usr/lib/libQt5Core.so.5
#49865 0x00007fe48c32a985 in QProxyStyle::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49866 0x00007fe48c2976f2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49867 0x00007fe48b7c969a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#49868 0x00007fe48b7fe499 in QObjectPrivate::setParent_helper(QObject*) () from /usr/lib/libQt5Core.so.5
#49869 0x00007fe48c32a985 in QProxyStyle::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49870 0x00007fe48c2976f2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49871 0x00007fe48b7c969a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#49872 0x00007fe48b7fe499 in QObjectPrivate::setParent_helper(QObject*) () from /usr/lib/libQt5Core.so.5
#49873 0x00007fe48c32a985 in QProxyStyle::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49874 0x00007fe48c2976f2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
... snip ...
#99712 0x00007fe48b7fe499 in QObjectPrivate::setParent_helper(QObject*) () from /usr/lib/libQt5Core.so.5
#99713 0x00007fe48c32a985 in QProxyStyle::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#99714 0x00007fe48c2976f2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#99715 0x00007fe48b7c969a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#99716 0x00007fe48b7fe499 in QObjectPrivate::setParent_helper(QObject*) () from /usr/lib/libQt5Core.so.5
#99717 0x00007fe48c32a895 in QProxyStyle::polish(QApplication*) () from /usr/lib/libQt5Widgets.so.5
#99718 0x00007fe48c29bcdd in QApplication::style() () from /usr/lib/libQt5Widgets.so.5
#99719 0x00007fe48c29bece in QApplicationPrivate::initialize() () from /usr/lib/libQt5Widgets.so.5
#99720 0x00007fe48c29c6df in QApplicationPrivate::init() () from /usr/lib/libQt5Widgets.so.5
#99721 0x0000555a1c5a33c8 in main (argc=<optimized out>, argv=<optimized out>) at main.cpp:40
#99722 0x00007fe48b180002 in __libc_start_main () from /usr/lib/libc.so.6
#99723 0x0000555a1c5a395e in _start () at /usr/include/qt/QtCore/qdebug.h:129

I can also provide a core dump and binary + debug info package, but those are too large for the bug tracker.
This task depends upon

Closed by  Antonio Rojas (arojas)
Thursday, 28 May 2020, 11:01 GMT
Reason for closing:  Not a bug
Additional comments about closing:  qt5-styleplugins has been dropped to AUR
Comment by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 00:49 GMT
I always seem to forget setting the category options: fixed bug report here https://bugs.archlinux.org/task/66806

requesting to close this one
Comment by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 00:54 GMT
Ah, thanks for fixing the bug report category :)
Comment by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 00:56 GMT
This bug also seems awfully similar to  FS#60981 

- also qt5ct
- also a ridiculously long backtrace (over 23000 stack frames)
Comment by Antonio Rojas (arojas) - Thursday, 28 May 2020, 06:15 GMT
which Qt widget style are you using?
Comment by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 09:45 GMT
I am using the gtk2 widget style, since I want to use my GTK theme in both Qt5 and GTK.

After further testing, the crash only happens with gtk2
Comment by Antonio Rojas (arojas) - Thursday, 28 May 2020, 09:57 GMT
When you say "the gtk2 widget style", do you mean the one from qt5-styleplugins?
Comment by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 10:24 GMT
Oh yes, I'm using QT_QPA_PLATFORMTHEME=qt5ct and the gtk2 style from qt5-styleplugins.

Ohhh, I just noticed that this is an AUR package. I'll try recompiling it for Qt 5.15
Comment by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 10:42 GMT
The source from the AUR package doesn't compile for Qt 5.15, but I found a patch by the OpenSUSE team that fixes it.
Comment by Ferdinand Bachmann (Ferdi265) - Thursday, 28 May 2020, 10:43 GMT
The crashes are no longer observable with a recompiled version of qt5-styleplugins. Thank you :)

Loading...