Skip to content

Eclipse (Flatpak) crashes with SIGABRT: GTK icon fallback aborts when the glycin SVG loader fails #138

Description

@qriszdhina

The Flatpak build of Eclipse aborts (SIGABRT, core dumped) at random intervals
during normal UI interaction. The abort originates in GTK, not in the JVM:
GTK fails to load an icon, falls back to the Adwaita image-missing.svg
placeholder, and loading that fails too because the glycin SVG loader
subprocess exits immediately. ensure_surface_for_gicon() treats a failed
fallback as unrecoverable and calls g_assert(), which aborts the process.

Result: the whole IDE dies without warning, losing unsaved state, and any
server process launched from Eclipse is orphaned (keeps holding its ports).

Because virtually every Eclipse/SWT icon is an SVG, any application run
that hits a missing icon is a coin flip on survival.

Environment

  • Eclipse IDE for Java Developers 2026-06 (4.40)
    build: org.eclipse.epp.package.common_4.40.0.20260604-0652
  • Installed as Flatpak: org.eclipse.Java
  • Equinox launcher: org.eclipse.equinox.launcher_1.7.100.v20251111-0406
  • SWT native: libswt-pi3-gtk-4973r12.so (GTK3 / -ws gtk)
  • JRE: JustJ OpenJDK HotSpot 21.0.11 (v20260515-1531), bundled
  • GTK: libgtk-3.so.0.2420.32
  • GLib: libglib-2.0.so.0.8800.3
  • glycin: libglycin-2.so.0, loader /usr/libexec/glycin-loaders/2+/glycin-svg
  • WebKit2GTK: libwebkit2gtk-4.1.so.0.21.9
    JavaScriptCore: libjavascriptcoregtk-4.1.so.0.10.13
  • Arch: x86_64

Frequency

At least three crashes over roughly one week of normal use, with no
reproducible trigger identified. No correlation with a specific action,
view or dialog was observed.

Actual output (stderr, immediately before the abort)

(Eclipse:3): Gtk-WARNING **: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:../gtk/gtkiconhelper.c:495:ensure_surface_for_gicon: assertion failed
(error == NULL): Failed to load
/usr/share/icons/Adwaita/scalable/status/image-missing.svg:
Loader process exited early with status '101'
Command: env -i XDG_RUNTIME_DIR="/run/user/<uid>" "flatpak-spawn" "--sandbox"
"--watch-bus" "--directory=/" "--forward-fd=<n>" "prlimit" "--as=17012097024"
"/usr/libexec/glycin-loaders/2+/glycin-svg" "--dbus-fd" "<n>"
(gdk-pixbuf-error-quark, 0)
Bail out! Gtk:ERROR:../gtk/gtkiconhelper.c:495:ensure_surface_for_gicon: [...]

Note: exit status 101 is the default exit code of a Rust panic, and the glycin
loaders are written in Rust — the loader appears to panic on startup rather
than to fail gracefully.

Also seen earlier in the same session, likely related (broken icon/pixbuf
infrastructure inside the sandbox):

Gdk-Message: Unable to load left_ptr_watch from the cursor theme
** (process:<pid>): WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

Core dump

Signal 6 (ABRT). Crashing thread, abbreviated — offsets were identical across
all three crashes:

#0  libc.so.6              + 0x9c51c     (pthread_kill)
#1  libc.so.6              + 0x422be     (raise)
#2  libc.so.6              + 0x298ed     (abort)
#3  libglib-2.0.so.0       + 0x250b8     (GLib fatal log handler)
#4  libglib-2.0.so.0       + 0x976d2
#5  libgtk-3.so.0          + 0x1eacc9    (icon helper / gtkiconhelper.c)
#6  libgtk-3.so.0          + 0x1eb208
#7  libgtk-3.so.0          + 0x1eb4ca
#8  libgtk-3.so.0          + 0x20043f
...  (recursive GTK widget draw/size-allocate)
#35 libswt-pi3-gtk-4973r12.so + 0x541a9  (SWT GTK callback)
#36 libgtk-3.so.0          + 0x393788
#37 libswt-pi3-gtk-4973r12.so + 0x541bf
...  (GTK <-> SWT signal callbacks, several levels)

The remaining threads are ordinary JVM threads parked in futex waits; nothing
Java-side is involved in the abort.

Symbolication is hampered by missing build-ids in the runtime:

Module libwebkit2gtk-4.1.so.0.21.9         without build-id
Module libjavascriptcoregtk-4.1.so.0.10.13 without build-id
Module libglycin-2.so.0                    without build-id

Things tried, without effect

  • flatpak update — runtime already current
  • flatpak repair --user and sudo flatpak repair — no corruption found
  • flatpak override --user --talk-name=org.freedesktop.Flatpak org.eclipse.Java
    (in case the sandboxed flatpak-spawn of the loader lacked portal access)

Workaround / resolution

Uninstalling the Flatpak and installing the plain Eclipse tarball
(eclipse-*-linux-gtk-x86_64.tar.gz, same 2026-06 / 4.40 release) resolves the
problem completely — no crashes since. The native install uses the host's GTK
and image loaders instead of the runtime's glycin stack.

Side effect of the native install: the SWT Browser widget reports
"No more handles because there is no underlying browser available. Please
ensure that WebKit with its GTK 3.x/4.x bindings is installed." until
WebKitGTK 4.1 is installed on the host. This is a separate, non-fatal issue.

Suggested angle

Two separable problems:

  1. The glycin SVG loader in the Flatpak runtime cannot start on this system
    (exit 101 / panic). Root cause unknown.
  2. GTK's ensure_surface_for_gicon() asserts instead of degrading when even
    the fallback icon cannot be loaded, turning a cosmetic icon problem into a
    hard abort of the host application. Arguably the more serious of the two —
    a missing icon should never kill an IDE.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions