#1121411 spacefm: segfaults after switching to gtk3 version

Package:
spacefm
Source:
spacefm
Description:
Multi-panel tabbed file manager - GTK2 version
Submitter:
Thomas Groman
Date:
2025-12-12 09:25:02 UTC
Severity:
normal
Tags:
#1121411#5
Date:
2025-11-26 04:02:35 UTC
From:
To:
Dear Maintainer,

	After upgrading from Devuan Daedalus to Excalibur I noticed
that the spacefm package is built with gtk3 instead of gtk2 which
is what it was built with before. There used to be a separate
package 'spacefm-gtk3' for those that wanted the experimental gtk3
version. Upstream however recommends building with gtk2.

	I attempted to use this gtk3 version after seeing that
there was no longer an option in the Debian packages for the gtk2
version. This however proved itself problematic.

	The biggest issue is that the gtk3 version of spacefm will
segfault seemingly randomly, however there are some cases that
increase the likelihood of a segfault. The first case, just launching
spacefm will result in this:
```
spacefm[9343]: segfault at 0 ip 00007f4a974f468c sp 00007fff58f47180 error 4 in libgdk-3.so.0.2417.32[5968c,7f4a974c9000+87000] likely on CPU 0 (core 0, socket 0)
```

	Other cases involve drag-n-dropping a file into Gajim and
pressing the 'alt' button on my keyboard while spacefm is the
focused window shortly after.

	Unfortunately drag-n-drop does not work anymore in the gtk3
version  of spacefm either. Drag-n-drop used to work fine in the
gtk2 version of spacefm and in fact was prefferred due to gtk3's
lack-luster filepicker portal, spacefm previously could have been
used to compensate for it.

	When upgrading I did not expect the previously seperate package
'spacefm' and spacefm-gtk3' to me merged and result in the spacefm
package being replaced with the spacefm-gtk3 package. I also
expected to be able to use spacefm without segmentation faults and
drag-n-drop functionality to continue to work as normal.

#1121411#10
Date:
2025-12-12 09:24:03 UTC
From:
To:
I ran into this bug with spacefm after upgrading to Debian 13, and I found
an easy way to reproduce. Before the upgrade the `spacefm-gtk3` did not
crash this way.

Steps to reproduce:

- Press `Ctrl` 7 times while spacefm window has focus


This produces the following output in the terminal:

```
(spacefm:233252): Gtk-CRITICAL **: 09:10:52.819: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:52.819: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(spacefm:233252): Gtk-CRITICAL **: 09:10:53.177: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:53.177: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(spacefm:233252): Gtk-CRITICAL **: 09:10:53.540: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:53.540: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(spacefm:233252): Gtk-CRITICAL **: 09:10:53.914: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:53.914: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(spacefm:233252): Gtk-CRITICAL **: 09:10:54.255: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:54.255: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(spacefm:233252): Gtk-CRITICAL **: 09:10:54.630: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:54.631: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(spacefm:233252): Gtk-CRITICAL **: 09:10:55.001: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:55.001: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(spacefm:233252): Gdk-WARNING **: 09:10:55.011: losing last reference to undestroyed window

(spacefm:233252): GLib-GObject-CRITICAL **: 09:10:55.011: g_object_unref: assertion '!object_already_finalized' failed
Segmentation fault
```