9
66
Fork
You've already forked Bolt
11

rs2client segfaults (si_addr=0x8 - Null Pointer Dereference) on NVIDIA + Wayland during graphics init #70

Open
opened 2026年07月09日 09:01:12 +02:00 by Maguos · 0 comments

Environment
GPU: NVIDIA RTX 3090
Driver: 595.84 (both proprietary and nvidia-open tested)
Desktop: Wayland only — GNOME 50 and COSMIC (neither ships X11 sessions; XWayland is available for X11 apps but SDL_VIDEODRIVER=x11 did not resolve the crash)
Bolt version: 0.23.2 (tested via AUR, Flatpak, and Nix package)
Tested on:

PikaOS (Debian Sid, glibc 2.42) — AUR, Flatpak, Nix
Nobara (Fedora) — Flatpak
Symptom
rs2client consistently segfaults at si_addr=0x8 during "Loading application resources". Address 0x8 indicates null pointer dereference (0x0 + 0x8 offset). Client crashes before entering any playable state.

Observed Data Points

  1. Software rendering prevents the segfault but does not make the game playable
    LIBGL_ALWAYS_SOFTWARE=1 ./rs2client # No segfault, but client exits silently without launching
    ./rs2client # Segfault
    Conclusion: The crash is directly tied to GPU driver initialization. If the binary itself were corrupt or the issue were unrelated to graphics, software rendering would not prevent the segfault. However, software rendering is not a viable workaround as the client still fails to launch.

  2. EGL_LOG_LEVEL=debug produces zero output
    EGL_LOG_LEVEL=debug ./rs2client 2>&1 # No EGL logs at all, just immediate segfault
    Conclusion: The crash occurs extremely early in the initialization phase — before EGL logging mechanisms are bootstrapped or before a valid EGL context is successfully created.

  3. All dependencies are satisfied
    ldd ~/.local/share/Jagex/launcher/rs2client # Shows 0 missing libraries
    No libEGL.so.1, libOpenGL.so.0, libSDL2-2.0.so.0 issues. All present.

  4. System GLX works correctly
    System GLX works correctly (verified via glxinfo, reports "NVIDIA GeForce RTX 3090"), confirming the issue is isolated to the EGL/Wayland initialization path.

  5. Works inconsistently on Bazzite
    Same hardware, fresh install of Bazzite (Fedora Atomic): First launch crashed with identical segfault. Second launch worked without any changes from user side.

Proposed Root Cause / Logical Reconstruction
Without access to source code or debug symbols, the following is a logical reconstruction based on external behavior:

rs2client likely calls SDL_CreateWindow with OpenGL flags
SDL2 attempts to set up an OpenGL/EGL backend during window creation
On the NVIDIA + Wayland configurations tested (PikaOS, Nobara), this initialization fails and returns NULL
Jagex's code appears to lack NULL-pointer checking after this call, immediately dereferencing the result (+8 bytes offset = accessing a struct member)
Kernel delivers SIGSEGV at address 0x8
LIBGL_ALWAYS_SOFTWARE=1 forces Mesa llvmpipe/swrast instead of NVIDIA's EGL driver, which prevents the segfault but does not result in a successful launch
Workaround (Alternative Client)
Running RuneScape through Steam + Proton avoids the native rs2client and rs3linux binaries altogether. I have verified this as a working alternative — the Windows client via Proton does not exhibit the same EGL/Wayland initialization crash.

Additional Context
Similar reports: #16
GDB backtrace was unsymbolized (no debug symbols available), so exact crash function could not be identified
strace was run but without strace installed in the container initially; when installed, confirmed SIGSEGV signal but no useful function names due to stripped binary
Environment variables tested (none resolved the crash): SDL_VIDEODRIVER=x11, GDK_BACKEND=x11, GBM_BACKEND=nvidia-drm, __GLX_VENDOR_LIBRARY_NAME=nvidia, EGL_PLATFORM=wayland, EGL_PLATFORM=x11
Note: GNOME 50 and COSMIC are both Wayland-only — no X11 session fallback is available, so switching to an Xorg session is not a viable workaround on these desktop environments

Environment GPU: NVIDIA RTX 3090 Driver: 595.84 (both proprietary and nvidia-open tested) Desktop: Wayland only — GNOME 50 and COSMIC (neither ships X11 sessions; XWayland is available for X11 apps but SDL_VIDEODRIVER=x11 did not resolve the crash) Bolt version: 0.23.2 (tested via AUR, Flatpak, and Nix package) Tested on: PikaOS (Debian Sid, glibc 2.42) — AUR, Flatpak, Nix Nobara (Fedora) — Flatpak Symptom rs2client consistently segfaults at si_addr=0x8 during "Loading application resources". Address 0x8 indicates null pointer dereference (0x0 + 0x8 offset). Client crashes before entering any playable state. Observed Data Points 1. Software rendering prevents the segfault but does not make the game playable LIBGL_ALWAYS_SOFTWARE=1 ./rs2client # ✅ No segfault, but client exits silently without launching ./rs2client # ❌ Segfault Conclusion: The crash is directly tied to GPU driver initialization. If the binary itself were corrupt or the issue were unrelated to graphics, software rendering would not prevent the segfault. However, software rendering is not a viable workaround as the client still fails to launch. 2. EGL_LOG_LEVEL=debug produces zero output EGL_LOG_LEVEL=debug ./rs2client 2>&1 # No EGL logs at all, just immediate segfault Conclusion: The crash occurs extremely early in the initialization phase — before EGL logging mechanisms are bootstrapped or before a valid EGL context is successfully created. 3. All dependencies are satisfied ldd ~/.local/share/Jagex/launcher/rs2client # Shows 0 missing libraries No libEGL.so.1, libOpenGL.so.0, libSDL2-2.0.so.0 issues. All present. 4. System GLX works correctly System GLX works correctly (verified via glxinfo, reports "NVIDIA GeForce RTX 3090"), confirming the issue is isolated to the EGL/Wayland initialization path. 5. Works inconsistently on Bazzite Same hardware, fresh install of Bazzite (Fedora Atomic): First launch crashed with identical segfault. Second launch worked without any changes from user side. Proposed Root Cause / Logical Reconstruction Without access to source code or debug symbols, the following is a logical reconstruction based on external behavior: rs2client likely calls SDL_CreateWindow with OpenGL flags SDL2 attempts to set up an OpenGL/EGL backend during window creation On the NVIDIA + Wayland configurations tested (PikaOS, Nobara), this initialization fails and returns NULL Jagex's code appears to lack NULL-pointer checking after this call, immediately dereferencing the result (+8 bytes offset = accessing a struct member) Kernel delivers SIGSEGV at address 0x8 LIBGL_ALWAYS_SOFTWARE=1 forces Mesa llvmpipe/swrast instead of NVIDIA's EGL driver, which prevents the segfault but does not result in a successful launch Workaround (Alternative Client) Running RuneScape through Steam + Proton avoids the native rs2client and rs3linux binaries altogether. I have verified this as a working alternative — the Windows client via Proton does not exhibit the same EGL/Wayland initialization crash. Additional Context Similar reports: https://codeberg.org/Adamcake/Bolt/issues/16 GDB backtrace was unsymbolized (no debug symbols available), so exact crash function could not be identified strace was run but without strace installed in the container initially; when installed, confirmed SIGSEGV signal but no useful function names due to stripped binary Environment variables tested (none resolved the crash): SDL_VIDEODRIVER=x11, GDK_BACKEND=x11, GBM_BACKEND=nvidia-drm, __GLX_VENDOR_LIBRARY_NAME=nvidia, EGL_PLATFORM=wayland, EGL_PLATFORM=x11 Note: GNOME 50 and COSMIC are both Wayland-only — no X11 session fallback is available, so switching to an Xorg session is not a viable workaround on these desktop environments
Sign in to join this conversation.
No Branch/Tag specified
master
zigify
0.23.2
0.23.1
0.23.0
0.22.0
0.21.1
0.21.0
0.20.6
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.1
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.2
0.11.1
0.11.0
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Adamcake/Bolt#70
Reference in a new issue
Adamcake/Bolt
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?