FS#57984 - [qt5-base][gtk3] qt5 applications crash when opening file chooser in gtk desktops

Attached to Project: Community Packages
Opened by Clemmitt Sigler (cmsigler) - Tuesday, 27 March 2018, 03:26 GMT
Last edited by Antonio Rojas (arojas) - Sunday, 01 April 2018, 08:30 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Jan de Groot (JGC)
Jan Alexander Steffens (heftig)
Antonio Rojas (arojas)
Felix Yan (felixonmars)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 5
Private No

Details

Description: musescore ver. 2.1.0-1 crashes with SIGSEGV when trying to open a file. The frame for the file dialog window appears but that's all.

This seems to be caused by the recent update of gtk3 from 3.22.28-1 to 3.22.29+4+gb485cf91b5-1. Downgrading solves the problem.

Additional info:
musescore 2.1.0-1
gtk3 3.22.29+4+gb485cf91b5-1

gdb backtrace -->
Thread 1 "mscore" received signal SIGSEGV, Segmentation fault.
0x00007fffddb3ff07 in gtk_list_box_get_selected_row ()
from /usr/lib/libgtk-3.so.0
(gdb) where
#0 0x00007fffddb3ff07 in gtk_list_box_get_selected_row ()
at /usr/lib/libgtk-3.so.0
#1 0x00007fffddb9605b in () at /usr/lib/libgtk-3.so.0
#2 0x00007fffe59fd1c8 in ffi_call_unix64 () at /usr/lib/libffi.so.6
#3 0x00007fffe59fcc2a in ffi_call () at /usr/lib/libffi.so.6
#4 0x00007fffea616453 in g_cclosure_marshal_generic ()
at /usr/lib/libgobject-2.0.so.0
#5 0x00007fffea615c2d in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#6 0x00007fffea629bb0 in () at /usr/lib/libgobject-2.0.so.0
#7 0x00007fffea632746 in g_signal_emit_valist ()
at /usr/lib/libgobject-2.0.so.0
#8 0x00007fffea63365c in g_signal_emit_by_name ()
at /usr/lib/libgobject-2.0.so.0
#9 0x00007fffdd1d2240 in () at /usr/lib/libcloudproviders.so.0
#10 0x00007fffdd1d2ca2 in () at /usr/lib/libcloudproviders.so.0
#11 0x00007fffebc3718c in () at /usr/lib/libgio-2.0.so.0
#12 0x00007fffebc37e57 in () at /usr/lib/libgio-2.0.so.0
#13 0x00007fffebc69913 in () at /usr/lib/libgio-2.0.so.0
#14 0x00007fffebc3718c in () at /usr/lib/libgio-2.0.so.0
#15 0x00007fffebc371c9 in () at /usr/lib/libgio-2.0.so.0
#16 0x00007fffea33a2c6 in g_main_context_dispatch ()
at /usr/lib/libglib-2.0.so.0
#17 0x00007fffea33a6a1 in () at /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#18 0x00007fffea33a72e in g_main_context_iteration ()
at /usr/lib/libglib-2.0.so.0
#19 0x00007ffff04ad241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#20 0x00007fffe2577482 in () at /usr/lib/libQt5XcbQpa.so.5
#21 0x00007ffff044f32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#22 0x00007ffff13c669b in QDialog::exec() () at /usr/lib/libQt5Widgets.so.5
#23 0x0000555555b60a2a in Ms::MuseScore::getOpenScoreNames(QString const&, QString const&) ()
#24 0x0000555555b61447 in Ms::MuseScore::loadFiles() ()
#25 0x00005555559dfed1 in Ms::MuseScore::cmd(QAction*, QString const&) ()
#26 0x00005555559e1386 in Ms::MuseScore::cmd(QAction*) ()
#27 0x0000555555cdc4f0 in ()
#28 0x00007ffff0481616 in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/libQt5Core.so.5
#29 0x00007ffff11cc0c0 in QActionGroup::triggered(QAction*) ()
at /usr/lib/libQt5Widgets.so.5
#30 0x00007ffff11ccbc9 in () at /usr/lib/libQt5Widgets.so.5
#31 0x00007ffff0481616 in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/libQt5Core.so.5
#32 0x00007ffff11c8533 in QAction::triggered(bool) ()
at /usr/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#33 0x00007ffff11cadb6 in QAction::activate(QAction::ActionEvent) ()
at /usr/lib/libQt5Widgets.so.5
#34 0x0000555555cdb978 in ()
#35 0x00007ffff0481616 in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/libQt5Core.so.5
#36 0x00007ffff12c4b03 in QAbstractButton::clicked(bool) ()
at /usr/lib/libQt5Widgets.so.5
#37 0x00007ffff12c4d1c in () at /usr/lib/libQt5Widgets.so.5
#38 0x00007ffff12c615c in () at /usr/lib/libQt5Widgets.so.5
#39 0x00007ffff12c635e in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
at /usr/lib/libQt5Widgets.so.5
#40 0x00007ffff120f188 in QWidget::event(QEvent*) ()
at /usr/lib/libQt5Widgets.so.5
#41 0x00007ffff11cefec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#42 0x00007ffff11d6f41 in QApplication::notify(QObject*, QEvent*) ()
at /usr/lib/libQt5Widgets.so.5
#43 0x00007ffff0450cf0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#44 0x00007ffff11d5eca in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
at /usr/lib/libQt5Widgets.so.5
#45 0x00007ffff122a949 in () at /usr/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#46 0x00007ffff122d060 in () at /usr/lib/libQt5Widgets.so.5
#47 0x00007ffff11cefec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#48 0x00007ffff11d69c6 in QApplication::notify(QObject*, QEvent*) ()
at /usr/lib/libQt5Widgets.so.5
#49 0x00007ffff0450cf0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#50 0x00007ffff09c4434 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#51 0x00007ffff09c5f86 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5
#52 0x00007ffff099d29c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#53 0x00007fffe257748d in () at /usr/lib/libQt5XcbQpa.so.5
#54 0x00007ffff044f32b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#55 0x00007ffff0458728 in QCoreApplication::exec() ()
at /usr/lib/libQt5Core.so.5
#56 0x000055555588f465 in main ()

Steps to reproduce:
1.) Run musescore.
2.) In StartCenter, click on "Open a score..."; or click on "Close" then click on the "Load Score from file" icon button.
3.) musescore crashes and dumps core with SIGSEGV

Additional notes:
I rebuilt musescore 2.1.0-1 locally via abs but that didn't fix the problem. I have a feeling this is more than a musescore bug...? Are other binaries linked against libgtk-3.so.0 crashing?

Please let me know if this bug report isn't sufficient to reproduce or debug. TIA.

Clemmitt Sigler
This task depends upon

Closed by  Antonio Rojas (arojas)
Sunday, 01 April 2018, 08:30 GMT
Reason for closing:  Fixed
Additional comments about closing:  gtk3 3.22.29+60+ge42d8598ca-1
Comment by Maxime Gauduin (Alucryd) - Tuesday, 27 March 2018, 15:45 GMT
I'll try to reproduce as soon as possible. If it's not too much trouble, does rebuilding qt5-base fix the issue? I'll try that as well when I have the time.
Comment by Clemmitt Sigler (cmsigler) - Tuesday, 27 March 2018, 17:03 GMT
Working on rebuilding qt5-base. I'll report back when I can, and thank you :)

Clemmitt
Comment by Clemmitt Sigler (cmsigler) - Tuesday, 27 March 2018, 19:56 GMT
OK, I rebuilt qt5-base. Installed this locally built package, as well as re-upgraded to gtk3 3.22.29+4+gb485cf91b5-1 and gtk-update-icon-cache 3.22.29+4+gb485cf91b5-1 from official repositories. /usr/bin/mscore still SIGSEGV's in exactly the same way.

Just for the "halibut," I rebuilt gtk3, gtk-update-icon-cache (split package), too. Installed these locally built packages. Still SIGSEGV's the exact same way.

Downgraded again to gtk3 3.22.28-1 and gtk-update-icon-cache 3.22.28-1. Ran /usr/bin/mscore. No problem, no crash, exits normally in gdb.

Thank you for your willingness to look into this. I hope it's not some stupid problem peculiar to my laptop.

Clemmitt
Comment by Dennis Ranke (exoticorn) - Wednesday, 28 March 2018, 07:21 GMT
Just to confirm that it's not just a problem on your machine: I have the same crash on two machines using Krita when opening a file chooser dialog. I'm guessing that this affects all Qt programs right now.
Comment by Maxime Gauduin (Alucryd) - Wednesday, 28 March 2018, 08:01 GMT
I fear so too, I can reproduce here as well, and I believe this is not the first time a GTK update has broken Qt apps. Including Antonio in case he has some insights.
Comment by Victor Eduardo Bazterra (baites) - Thursday, 29 March 2018, 11:40 GMT
I also reproduced the crash after updating qt5-base and rebuilding using musescore-dev and musecore-git. I have fully updated distribution and the only thing I needed to fix this issue was to down grade gtk3 from 3.22.29+4+gb485cf91b5-1 => 3.22.28-1. At the moment I am asking pacman to ignored this package every time I run a system update:

:: Starting full system upgrade...
warning: gtk3: ignoring package upgrade (3.22.28-1 => 3.22.29+4+gb485cf91b5-1)
resolving dependencies...
looking for conflicting packages...

It seems the crash is due to an exception in here

https://github.com/GNOME/gtk/blob/master/gtk/gtklistbox.c#L641

Is this because gtk API change but just a guess?
Comment by Maxime Gauduin (Alucryd) - Friday, 30 March 2018, 17:27 GMT
Yes it's an issue with the recent gtk update, Qt needs to be updated accordingly. FYI, I pushed musescore 2.2 in [community] but it does not contain a fix for this partiularly issue.
Comment by Joël Schaerer (lardon) - Saturday, 31 March 2018, 09:01 GMT
FYI I have a similar crash with Krita. I think more Qt/KDE applications are likely to be affected:

Core was generated by `krita'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f9db692deff in gtk_list_box_get_selected_row () from /usr/lib/libgtk-3.so.0
[Current thread is 1 (Thread 0x7f9dce399800 (LWP 1478))]
(gdb) bt
#0 0x00007f9db692deff in gtk_list_box_get_selected_row () at /usr/lib/libgtk-3.so.0
#1 0x00007f9db698405b in () at /usr/lib/libgtk-3.so.0
#2 0x00007f9daefb81c8 in ffi_call_unix64 () at /usr/lib/libffi.so.6
#3 0x00007f9daefb7c2a in ffi_call () at /usr/lib/libffi.so.6
#4 0x00007f9db5f88453 in g_cclosure_marshal_generic () at /usr/lib/libgobject-2.0.so.0
#5 0x00007f9db5f87c2d in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#6 0x00007f9db5f9bbb0 in () at /usr/lib/libgobject-2.0.so.0
#7 0x00007f9db5fa4746 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#8 0x00007f9db5fa565c in g_signal_emit_by_name () at /usr/lib/libgobject-2.0.so.0
#9 0x00007f9db5d6b240 in () at /usr/lib/libcloudproviders.so.0
#10 0x00007f9db5d6bca2 in () at /usr/lib/libcloudproviders.so.0
#11 0x00007f9db458d18c in () at /usr/lib/libgio-2.0.so.0
#12 0x00007f9db458de57 in () at /usr/lib/libgio-2.0.so.0
#13 0x00007f9db45bf913 in () at /usr/lib/libgio-2.0.so.0
#14 0x00007f9db458d18c in () at /usr/lib/libgio-2.0.so.0
#15 0x00007f9db458d1c9 in () at /usr/lib/libgio-2.0.so.0
#16 0x00007f9dc2d342c6 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#17 0x00007f9dc2d346a1 in () at /usr/lib/libglib-2.0.so.0
#18 0x00007f9dc2d3472e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#19 0x00007f9dcb7ee241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#20 0x00007f9dbac9c482 in () at /usr/lib/libQt5XcbQpa.so.5
#21 0x00007f9dcb79032b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#22 0x00007f9dcc70769b in QDialog::exec() () at /usr/lib/libQt5Widgets.so.5
#23 0x00007f9dcd0ffde9 in KoFileDialog::filename() () at /usr/lib/libkritawidgetutils.so.16
#24 0x00007f9dcdc51fc8 in KisMainWindow::saveDocument(KisDocument*, bool, bool) () at /usr/lib/libkritaui.so.16
#25 0x00007f9dcdc53580 in KisMainWindow::slotFileSave() () at /usr/lib/libkritaui.so.16
#26 0x00007f9dcdc58031 in () at /usr/lib/libkritaui.so.16
#27 0x00007f9dcb7c2616 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#28 0x00007f9dcc509533 in QAction::triggered(bool) () at /usr/lib/libQt5Widgets.so.5
#29 0x00007f9dcc50bdb6 in QAction::activate(QAction::ActionEvent) () at /usr/lib/libQt5Widgets.so.5
#30 0x00007f9dcc692515 in () at /usr/lib/libQt5Widgets.so.5
#31 0x00007f9dcc699bdc in () at /usr/lib/libQt5Widgets.so.5
#32 0x00007f9dcc69aa44 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/libQt5Widgets.so.5
#33 0x00007f9dcc550188 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#34 0x00007f9dcc69cd7c in QMenu::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#35 0x00007f9dcc50ffec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#36 0x00007f9dcc517f41 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#37 0x00007f9dcdc15a68 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.16
#38 0x00007f9dcb791cf0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#39 0x00007f9dcc516eca in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/libQt5Widgets.so.5
#40 0x00007f9dcc56b677 in () at /usr/lib/libQt5Widgets.so.5
#41 0x00007f9dcc56e060 in () at /usr/lib/libQt5Widgets.so.5
#42 0x00007f9dcc50ffec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#43 0x00007f9dcc5179c6 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#44 0x00007f9dcdc15a68 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.16
#45 0x00007f9dcb791cf0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#46 0x00007f9dcbd05434 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#47 0x00007f9dcbd06f86 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5
#48 0x00007f9dcbcde29c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#49 0x00007f9dbac9c48d in () at /usr/lib/libQt5XcbQpa.so.5
#50 0x00007f9dcb79032b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#51 0x00007f9dcb799728 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#52 0x0000559a9f714486 in main ()
Comment by Antonio Rojas (arojas) - Sunday, 01 April 2018, 00:17 GMT
This is triggered by the changes in https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/gtk3&id=4ac05111e37186cebac1c4fa22610abddb1c2d52. Rebuilding gtk3 without libcloudproviders fixes the problem.

Loading...