FS#68123 - [gtk3] Krita crashes when opening a file navigation dialog with Xfce4

Attached to Project: Arch Linux
Opened by Roland Metivier (chlorophytus) - Tuesday, 06 October 2020, 18:54 GMT
Last edited by Jan Alexander Steffens (heftig) - Tuesday, 06 October 2020, 22:06 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
When saving or loading files in a fresh install of Arch Linux with Xfce 4, Krita crashes.

Additional info:
krita 4.3.0-2
xfwm4 4.14.5-1
gtk3 1:3.24.23-3
qt5-base 5.15.1-3

Steps to reproduce:
Somehow open the file finder in Krita.

   trace.log (16.4 KiB)
This task depends upon

Closed by  Jan Alexander Steffens (heftig)
Tuesday, 06 October 2020, 22:06 GMT
Reason for closing:  Fixed
Additional comments about closing:  gtk3 3.24.23-4
Comment by Roland Metivier (chlorophytus) - Tuesday, 06 October 2020, 19:33 GMT
File navigation works when you go into "General > Miscellaneous > Enable native file dialogs" and enable that setting. Quick and dirty fix.
Comment by Antonio Rojas (arojas) - Tuesday, 06 October 2020, 20:14 GMT
This is  FS#57984  again
Comment by Jan Alexander Steffens (heftig) - Tuesday, 06 October 2020, 20:24 GMT
Did we determine why this crashes, exactly?
Comment by Jan Alexander Steffens (heftig) - Tuesday, 06 October 2020, 21:16 GMT
#0 g_logv (log_domain=0x7fffe586e085 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/glib/gmessages.c:1377
#1 0x00007ffff207ad98 in g_log (log_domain=log_domain@entry=0x7fffe586e085 "Gtk", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff20e205c "%s: assertion '%s' failed") at ../glib/glib/gmessages.c:1415
#2 0x00007ffff207c2aa in g_return_if_fail_warning (log_domain=log_domain@entry=0x7fffe586e085 "Gtk", pretty_function=pretty_function@entry=0x7fffe58b0f00 <__func__.36> "gtk_list_box_get_selected_row", expression=expression@entry=0x7fffe58b05fe "GTK_IS_LIST_BOX (box)") at ../glib/glib/gmessages.c:2771
#3 0x00007fffe55ff81b in gtk_list_box_get_selected_row (box=<optimized out>) at ../gtk/gtk/gtklistbox.c:723
#4 gtk_list_box_get_selected_row (box=<optimized out>) at ../gtk/gtk/gtklistbox.c:721
#5 0x00007fffe565c89b in update_places (sidebar=0x5555620aa610) at ../gtk/gtk/gtkplacessidebar.c:1043
#6 0x00007fffe7f6b9fd in ffi_call_unix64 () at ../src/x86/unix64.S:101
#7 0x00007fffe7f6a70a in ffi_call_int (cif=0x7fffffffc8e0, fn=0x7fffe565c870 <update_places>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:669
#8 0x00007fffeecca8cd in g_cclosure_marshal_generic (closure=<optimized out>, return_gvalue=<optimized out>, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>) at ../glib/gobject/gclosure.c:1500
#9 0x00007fffeecc4fed in g_closure_invoke (closure=0x5555620e1ae0, return_value=0x0, n_param_values=1, param_values=0x7fffffffcb00, invocation_hint=0x7fffffffca80) at ../glib/gobject/gclosure.c:810
#10 0x00007fffeecf5f3f in signal_emit_unlocked_R.isra.0 (node=node@entry=0x5555620dc470, detail=detail@entry=0, instance=instance@entry=0x5555620dda80, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcb00) at ../glib/gobject/gsignal.c:3738
#11 0x00007fffeece8b05 in g_signal_emit_valist (instance=instance@entry=0x5555620dda80, signal_id=signal_id@entry=365, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffcd70) at ../glib/gobject/gsignal.c:3494
#12 0x00007fffeece9a50 in g_signal_emit_by_name (instance=0x5555620dda80, detailed_signal=detailed_signal@entry=0x7fffee78e097 "providers-changed") at ../glib/gobject/gsignal.c:3590
#13 0x00007fffee78d192 in update_cloud_providers (self=self@entry=0x5555620dda80) at ../libcloudproviders/src/cloudproviderscollector.c:299
#14 0x00007fffee78d4e5 in on_bus_acquired (source_object=<optimized out>, res=<optimized out>, user_data=<optimized out>) at ../libcloudproviders/src/cloudproviderscollector.c:88
#15 0x00007fffeeb89a01 in g_task_return_now (task=0x555557038c80) at ../glib/gio/gtask.c:1215
#16 g_task_return (task=0x555557038c80, type=<optimized out>) at ../glib/gio/gtask.c:1285
#17 0x00007fffeebeb6c3 in bus_get_async_initable_cb (source_object=0x555557080030, res=<optimized out>, user_data=0x555557038c80) at ../glib/gio/gdbusconnection.c:7364
#18 0x00007fffeeb83ee4 in g_task_return_now (task=0x555557038bc0) at ../glib/gio/gtask.c:1215
#19 complete_in_idle_cb (task=0x555557038bc0) at ../glib/gio/gtask.c:1229
#20 0x00007ffff207c861 in g_main_dispatch (context=0x7fffe8005000) at ../glib/glib/gmain.c:3325
#21 g_main_context_dispatch (context=0x7fffe8005000) at ../glib/glib/gmain.c:4016
#22 0x00007ffff20d8249 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fffe8005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4092
#23 0x00007ffff2077ce1 in g_main_context_iteration (context=0x7fffe8005000, may_block=1) at ../glib/glib/gmain.c:4157
#24 0x00007ffff4c35941 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#25 0x00007ffff4bdb65c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#26 0x00007ffff58a5f6a in QDialog::exec() () at /usr/lib/libQt5Widgets.so.5
#27 0x00007ffff5d0a5f8 in KoFileDialog::filenames() () at /usr/lib/libkritawidgetutils.so.19
#28 0x00007ffff70fd181 in KisMainWindow::showOpenFileDialog(bool) () at /usr/lib/libkritaui.so.19
#29 0x00007ffff70fd25e in KisMainWindow::slotFileOpen(bool) () at /usr/lib/libkritaui.so.19
#30 0x00007ffff4c14070 in () at /usr/lib/libQt5Core.so.5
#31 0x00007ffff569bf63 in QAction::triggered(bool) () at /usr/lib/libQt5Widgets.so.5
#32 0x00007ffff569e845 in QAction::activate(QAction::ActionEvent) () at /usr/lib/libQt5Widgets.so.5
#33 0x00007ffff569f488 in QAction::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#34 0x00007ffff56a2752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#35 0x00007ffff70cabba in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.19
#36 0x00007ffff4bdccda in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#37 0x00007ffff4fe5c3d in QShortcutMap::dispatchEvent(QKeyEvent*) () at /usr/lib/libQt5Gui.so.5
#38 0x00007ffff4fe6643 in QShortcutMap::tryShortcut(QKeyEvent*) () at /usr/lib/libQt5Gui.so.5
#39 0x00007ffff4f8e2b4 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () at /usr/lib/libQt5Gui.so.5
#40 0x00007ffff4fb139c in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /usr/lib/libQt5Gui.so.5
#41 0x00007ffff4f8abac in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#42 0x00007fffef095f9c in () at /usr/lib/libQt5XcbQpa.so.5
#43 0x00007ffff207c861 in g_main_dispatch (context=0x7fffe8005000) at ../glib/glib/gmain.c:3325
#44 g_main_context_dispatch (context=0x7fffe8005000) at ../glib/glib/gmain.c:4016
#45 0x00007ffff20d8249 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fffe8005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4092
#46 0x00007ffff2077ce1 in g_main_context_iteration (context=0x7fffe8005000, may_block=1) at ../glib/glib/gmain.c:4157
#47 0x00007ffff4c35941 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#48 0x00007ffff4bdb65c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#49 0x00007ffff4be3af4 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#50 0x0000555555e27e57 in main ()
Comment by Jan Alexander Steffens (heftig) - Tuesday, 06 October 2020, 21:49 GMT
When Krita is told to open a file, it spawns a GTK file dialog, then immediately destroys it again and proceeds to show its own dialog. Then the GTK dialog's still-alive cloud manager fires a signal for its updated provider list, and the handler tries to access the freed sidebar component.
Comment by Jan Alexander Steffens (heftig) - Tuesday, 06 October 2020, 21:55 GMT

Loading...