Skip to content

GUI renders but is completely unresponsive on Asahi Linux (aarch64 16K page kernel) — JavaScriptCore JIT crash #44

Description

@CR0CKER

Environment

  • OS: Fedora / Asahi Linux (Apple Silicon)
  • Kernel: 6.18.15-400.asahi.fc43.aarch64+16k (16K page size)
  • Display: GNOME 49, Wayland
  • Installation: Flatpak (Flathub) ink.whis.Whis v0.7.2
  • Architecture: aarch64

Symptom

The app launches and the UI renders correctly (all buttons and layout visible), but is completely unresponsive — clicks and keyboard input have no effect. The app also cannot be quit via the window close button or tray menu (since the quit mechanism delegates to the frozen WebView via window-close-requested).

Steps to Reproduce

  1. Install Whis via Flatpak on Asahi Linux (Apple Silicon Mac running Asahi/Fedora)
  2. Launch the app
  3. Observe: UI appears fully rendered but no interaction is possible

Root Cause

The WebKitWebProcess crashes with SIGSEGV immediately after rendering the initial UI, confirmed via coredumpctl:

$ coredumpctl list WebKitWebProces
SIGSEGV  /usr/libexec/webkit2gtk-4.1/WebKitWebProcess

Backtrace shows the crash occurs inside JIT-compiled code in anonymous mmap regions, within libjavascriptcoregtk-4.1.so:

#0  libjavascriptcoregtk-4.1.so.0 + 0xb52efc
#1  libjavascriptcoregtk-4.1.so.0 + 0xb52ebc
#2  n/a + 0x0   ← JIT-compiled anonymous memory
#3  n/a + 0x0
#4  n/a + 0x0

The GNOME Platform 49 Flatpak runtime bundles a libjavascriptcoregtk that was compiled for systems with a 4K page size. Asahi Linux uses a 16K page kernel (getconf PAGESIZE16384). JavaScriptCore's JIT compiler uses mmap for executable code regions with alignment and size assumptions tied to 4K pages — on 16K systems these are invalid, causing SIGSEGV on first JIT code execution.

The sequence is:

  1. App starts, WebKit renders the initial Vue/HTML (no JIT needed yet)
  2. JS event system initialises → JIT kicks in → WebKitWebProcess crashes
  3. UI is visible (last rendered frame) but all event handlers are dead

Workaround

See follow-up comment.

Related

Note that the investigation of this issue and the workaround were done with Claude Code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions