Bug 1662305 - keepassxc fails to start due to segmentation fault
Summary: keepassxc fails to start due to segmentation fault
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: keepassxc
Version: 29
Hardware: i686
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Germano Massullo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-12-27 14:28 UTC by Olavi Ourson
Modified: 2019-04-27 21:25 UTC (History)
2 users (show)

Fixed In Version: keepassxc-2.4.1-1.fc29 keepassxc-2.4.1-1.fc30
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-04-21 05:04:30 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Olavi Ourson 2018-12-27 14:28:13 UTC
Description of problem: can't run keepassxc

Version-Release number of selected component (if applicable): keepassxc-2.3.4-1.fc29.i686


How reproducible: Install 32-bit Fedora 29 (or use Live image), then install keepassxc and try to launch it from terminal (otherwise you don't see the error message, the application just doesn't start)


Steps to Reproduce:
1. See above
2.
3.

Actual results: 

$ keepassxc
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Segmentation fault

Expected results:

keepassxc should start

Additional info:

Abrt doesn't seem to catch this and I wasn't able to get a backtrace from the packaged binary. I checked out the matching release from Github and built the binaries with debugging enabled. The segmentation fault can be reproduced and I have pasted the backtrace below.

This looks like the actual root cause might be in qgnomeplatform, but for now I've only seen this problem with keepassxc.

Thread 1 "keepassxc" received signal SIGSEGV, Segmentation fault.
0xb6601655 in memcpy () from /lib/libc.so.6

(gdb) bt
#0  0xb6601655 in memcpy () from /lib/libc.so.6
#1  0xb6ab4ae5 in ?? () from /lib/libQt5Core.so.5
#2  0xb6abcca0 in QString::arg(QStringView, int, QChar) const () from /lib/libQt5Core.so.5
#3  0xb6abcdca in QString::arg(QString const&, int, QChar) const () from /lib/libQt5Core.so.5
#4  0xb27a9149 in GnomeHintsSettings::kvantumThemeForGtkTheme() const () from /usr/lib/qt5/plugins/platformthemes/libqgnomeplatform.so
#5  0xb27ad943 in GnomeHintsSettings::loadTheme() () from /usr/lib/qt5/plugins/platformthemes/libqgnomeplatform.so
#6  0xb27ae045 in GnomeHintsSettings::GnomeHintsSettings() () from /usr/lib/qt5/plugins/platformthemes/libqgnomeplatform.so
#7  0xb27a84ab in QGnomePlatformTheme::loadSettings() () from /usr/lib/qt5/plugins/platformthemes/libqgnomeplatform.so
#8  0xb27a8506 in QGnomePlatformTheme::QGnomePlatformTheme() () from /usr/lib/qt5/plugins/platformthemes/libqgnomeplatform.so
#9  0xb27a81d6 in QGnomePlatformThemePlugin::create(QString const&, QStringList const&) () from /usr/lib/qt5/plugins/platformthemes/libqgnomeplatform.so
#10 0xb715c486 in QPlatformThemeFactory::create(QString const&, QString const&) () from /lib/libQt5Gui.so.5
#11 0xb7165b9e in QGuiApplicationPrivate::createPlatformIntegration() () from /lib/libQt5Gui.so.5
#12 0xb71671cc in QGuiApplicationPrivate::createEventDispatcher() () from /lib/libQt5Gui.so.5
#13 0xb772c19c in QApplicationPrivate::createEventDispatcher() () from /lib/libQt5Widgets.so.5
#14 0xb6bf2d44 in QCoreApplicationPrivate::init() () from /lib/libQt5Core.so.5
#15 0xb71691e9 in QGuiApplicationPrivate::init() () from /lib/libQt5Gui.so.5
#16 0xb772e09e in QApplicationPrivate::init() () from /lib/libQt5Widgets.so.5
#17 0xb772e155 in QApplication::QApplication(int&, char**, int) () from /lib/libQt5Widgets.so.5
#18 0x00441d9d in Application::Application (this=0xbfffe7b8, argc=@0xbfffe860: 1, argv=0xbfffe8f4) at /home/user/keepassxc-src/src/gui/Application.cpp:92
#19 0x00434352 in main (argc=1, argv=0xbfffe8f4) at /home/user/keepassxc-src/src/main.cpp:72

Comment 1 Germano Massullo 2018-12-28 22:45:03 UTC
# dnf debuginfo-install keepassxc
gdb keepassxc
(gdb) run
(gdb) set height 0
and when the crash occurs, enter
(gdb) set print elements 0
(gdb) set print frame-arguments all
(gdb) thread apply all backtrace

and paste the output
Thank you

Comment 2 Olavi Ourson 2019-01-01 10:09:13 UTC
Unfortunately I can't get sensible output from the procedure suggested. I have installed the debuginfos for keepassxc (+ all the rest that gdb suggests later), here's what happens:



GNU gdb (GDB) Fedora 8.2-5.fc29
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from keepassxc...Reading symbols from /usr/lib/debug/usr/bin/keepassxc-2.3.4-1.fc29.i386.debug...done.
done.
(gdb) run
Starting program: /usr/bin/keepassxc 
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.ABI-tag" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments

[1]+  Stopped                 gdb keepassxc
[user@localhost ~]$ fg
gdb keepassxc
Cannot find user-level thread for LWP 1999: generic error



I then tried putting a breakpoint into main to see where the execution stops. It seems that this particular version of keepassxc calls Tools::disableCoreDumps() as the first thing it does. Stepping into the function and then the code within it looks like execution stops after the prctl(PR_SET_DUMPABLE, 0) call.

Breakpoint 1, main (argc=1, argv=0xbfffea74) at /usr/src/debug/keepassxc-2.3.4-1.fc29.i386/src/main.cpp:64
64	{
(gdb) list
59	    // - https://bugreports.qt.io/browse/QTBUG-46015
60	    qputenv("QT_BEARER_POLL_TIMEOUT", QByteArray::number(-1));
61	}
62	
63	int main(int argc, char** argv)
64	{
65	#ifdef QT_NO_DEBUG
66	    Tools::disableCoreDumps();
67	#endif
68	    Tools::setupSearchPaths();
(gdb) n
66	    Tools::disableCoreDumps();
(gdb) s
Tools::disableCoreDumps () at /usr/src/debug/keepassxc-2.3.4-1.fc29.i386/src/core/Tools.cpp:211
211	{
(gdb) n
218	    limit.rlim_cur = 0;
(gdb) n
219	    limit.rlim_max = 0;
(gdb) n
220	    success = success && (setrlimit(RLIMIT_CORE, &limit) == 0);
(gdb) n
224	    success = success && (prctl(PR_SET_DUMPABLE, 0) == 0);
(gdb) n

[1]+  Stopped                 gdb keepassxc


Unsure if this is helpful though. Do you have further suggestions what to try?

Comment 3 Olavi Ourson 2019-01-04 22:23:03 UTC
For what it's worth, keepassxc installed from Flathub works fine on 32-bit Fedora 29.

Comment 4 Germano Massullo 2019-01-27 12:09:17 UTC
Please open a ticket here
https://github.com/keepassxreboot/keepassxc/issues
I have never seen GDB stopping in that way

Comment 5 Fedora Update System 2019-04-16 08:50:06 UTC
keepassxc-2.4.1-1.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-2f1c978d25

Comment 6 Fedora Update System 2019-04-16 08:50:14 UTC
keepassxc-2.4.1-1.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-ae335ee0c3

Comment 7 Fedora Update System 2019-04-17 01:02:47 UTC
keepassxc-2.4.1-1.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-ae335ee0c3

Comment 8 Fedora Update System 2019-04-18 22:12:50 UTC
keepassxc-2.4.1-1.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-2f1c978d25

Comment 9 Fedora Update System 2019-04-21 05:04:30 UTC
keepassxc-2.4.1-1.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Comment 10 Fedora Update System 2019-04-27 21:25:30 UTC
keepassxc-2.4.1-1.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.