flathub / flathub/org.eclipse.Java

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

Đang mở
#138 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Không có dữ liệu ngôn ngữ
Star
6
Fork
10
Merge trung bình
7 giờ 27 phút
Pull request đã merge (30 ngày)
2

Mô tả

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/" "flatpak-spawn" "--sandbox"
"--watch-bus" "--directory=/" "--forward-fd=" "prlimit" "--as=17012097024"
"/usr/libexec/glycin-loaders/2+/glycin-svg" "--dbus-fd" ""
(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:): 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.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Start at GTK's gtkiconhelper.c entry point ensure_surface_for_gicon() and reproduce the Eclipse Flatpak crash while inspecting the glycin SVG loader's exit-101 startup failure. Compare the Flatpak and native installations, then confirm that the loader issue is understood and a missing fallback icon no longer aborts Eclipse.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java, linux, rust
Lĩnh vực
desktop-dev, operating-systems
Loại issue
Lỗi
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.