Skip to content

[Bug] WebKitGTK dmabuf renderer core dump #2338

Description

@wschwab

Describe the bug

After applying the libsystemd fix (#2335) and the GStreamer plugin path fix (PR #2176), the Buzz Desktop AppImage still crashes with a core dump on launch on systems using Intel Mesa graphics with rootless XWayland (e.g. KDE Plasma on Wayland with Intel iGPU). The process starts, prints its log lines, then dumps core.

Setting WEBKIT_DISABLE_DMABUF_RENDERER=1 prevents the crash and the app launches and renders correctly.

To Reproduce

  1. On a system with Intel Mesa graphics + rootless XWayland (e.g. Garuda Linux / Arch with KDE Plasma Wayland, Intel RPL-S iGPU, Mesa 26.1.5)
  2. Extract the AppImage and apply the libsystemd + GStreamer fixes (per [Bug] fix-appimage.sh doesn't remove bundled libsystemd.so.0 — AppImage crashes on distros with newer systemd (Arch, Fedora 41+, etc.) #2335 and fix(desktop): make Linux AppImage GStreamer work on non-Debian distros #2176)
  3. Run the extracted AppRun: ./AppRun
  4. Buzz starts, prints log lines, then crashes with a core dump (no window appears)

Expected behavior

Buzz Desktop should launch and render its window without crashing.

Supporting Material

Without WEBKIT_DISABLE_DMABUF_RENDERER=1:

buzz-desktop: persisted identity pubkey 47a52a04ae052e0cb5663d6523cc1324d22f9ed962e1f428fb83668611563882
buzz-desktop: media proxy listening on 127.0.0.1:39387
buzz-desktop: repos dir resolved at boot — no configured override, REPOS is the default real dir
timeout: the monitored command dumped core

With WEBKIT_DISABLE_DMABUF_RENDERER=1:

buzz-desktop: persisted identity pubkey 47a52a04ae052e0cb5663d6523cc1324d22f9ed962e1f428fb83668611563882
buzz-desktop: media proxy listening on 127.0.0.1:40347
buzz-desktop: repos dir resolved at boot — no configured override, REPOS is the default real dir

App runs correctly — WebKitWebProcess starts, window renders at full size (2560x1048, maximized), no crash.

The GDK_BACKEND=x11 hardcoded in the AppRun hook (linuxdeploy-plugin-gtk.sh) forces XWayland. The dmabuf renderer crash does not occur with GDK_BACKEND=wayland, but Wayland fails with eglMakeCurrent failed (which is why the AppRun hook hardcodes x11 — see tauri#8541).

Environment

  • OS: Garuda Linux (Arch-based), KDE Plasma on Wayland
  • GPU: Intel RPL-S (integrated), Mesa 26.1.5
  • Display server: Wayland with rootless XWayland (Xwayland :1-rootless)
  • WebKitGTK: 2.52.5 (both bundled and system)
  • Buzz version: 0.4.22 (AppImage, amd64)

Additional context

This crash happens after the libsystemd (#2335) and GStreamer (PR #2176) fixes are applied. Without those fixes the app crashes even earlier, so the dmabuf issue is masked until the other two are resolved.

The WEBKIT_DISABLE_DMABUF_RENDERER=1 env var is a well-known workaround for WebKitGTK dmabuf renderer crashes on certain GPU/driver/compositor combinations. It forces WebKitGTK to use the older shared-memory rendering path instead of dmabuf buffers.

Suggested fix: add export WEBKIT_DISABLE_DMABUF_RENDERER=1 to the apprun-hooks/linuxdeploy-plugin-gtk.sh hook in the AppImage (or to fix-appimage.sh as a post-build patch), since the GDK_BACKEND=x11 XWayland path already limits rendering to X11 — the dmabuf renderer provides no benefit on this codepath and only risks crashes on Mesa-based GPU setups.

Alternatively, the fix-appimage.sh script could detect Mesa/Intel and set the env var conditionally, but since the dmabuf renderer offers no advantage on the XWayland path (it exists for Wayland zero-copy page flips, which aren't used when GDK_BACKEND=x11), setting it unconditionally is safe.

Related: #2335 (libsystemd), #2176 (GStreamer plugin path), #2315 (LD_LIBRARY_PATH leak).

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