mpv/GL handoff crash freezes UI — coredumps land inside NVIDIA glcore/eglcore

Open
#77 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
linux, rust
Domain
desktop

Research direction

Start in stremio_linux_shell::app::ipc by tracing the invalid mpv-set-gpu-video-processing request, then follow the native display/render-control handoff to mpv described in #62 and #68. Use the supplied coredumps and application logs to reproduce the freeze; done means the IPC handoff succeeds and playback no longer triggers the NVIDIA GL/EGL crash.

Written by the indexing model from the issue text.

Description

Installation type

Flatpak (.flatpak)

Version

1.0.3

Platform

Linux Mint 22.3

Desktop Environment

Cinnamon

Windowing System

X11

GPU

NVIDIA GeForce GTX 1080 Ti (driver 580.159.03)

Describe the bug

App intermittently freezes during/around video playback. Whatever was last on screen stays frozen; if video was playing, audio keeps going. Power-cycling the monitor causes the driver to visibly re-init (screen blinks) but the freeze persists — only alt-tabbing away and back unsticks it.

coredumpctl shows repeated SIGSEGV crashes with the top stack frame landing directly inside the NVIDIA driver's own GL/EGL libraries, not app code:

Process (stremio) dumped core. SIGSEGV.
Stack trace of thread 30:
#0 libnvidia-glcore.so.580.159.03 + 0xddd9bd

Process (WebKitWebProcess, child of Stremio) dumped core. SIGSEGV.
Stack trace of thread 15:
#0 libnvidia-eglcore.so.580.159.03 + 0x75fe19

These crashes recur across multiple separate days/sessions, always tied to Stremio (one directly, one via its WebKitGTK process), never any other app on this system. No NVRM Xid errors logged at the kernel level, so this isn't a hardware/GPU fault — looks like the app is handing the driver an invalid GL/EGL context or surface state (wrong thread, stale context, bad handoff to mpv), which the driver then segfaults on rather than rejecting gracefully.

This may be the same root cause as #62 ("Fix mpv native display handling") and #59 — PR #62's description specifically calls out hardware decode paths (VAAPI/dmabuf/direct rendering) as currently mishandled in the native display handoff to mpv's render API, which would explain the crash signature.

Logs

coredump-stremio-22972.txt
coredump-webkit-742238.txt
nvidia-bug-report.log.gz

After deeper analysis, found two things that narrow this down further:

Kernel-confirmed NULL pointer dereference (stronger than the bare coredump offset above):

kernel: core[3654124]: segfault at 0 ip 00007c65d99dd9bd sp 00007c67721f45f8 error 4 in libnvidia-glcore.so.580.159.03[7c65d9000000+c00000]

segfault at 0 = NULL pointer deref, confirmed by the kernel itself, not just a coredump backtrace guess.

Likely trigger, found in the app's own log 9 seconds before one of the crashes:

ERROR stremio_linux_shell::app::ipc: Failed to convert IpcEvent to IpcMessageRequest: Invalid method: mpv-set-gpu-video-processing

Same error string reported in #68. The IPC bridge between the shell and mpv fails on this method, and shortly after, the GPU code segfaults on a NULL pointer. Points at #62 ("Fix mpv native display handling") as the relevant fix — the native display/render-control handoff to mpv looks incomplete, and this mpv-set-gpu-video-processing IPC call is part of that broken handoff.

Also ruled out Cinnamon/Muffin as a cause: checked 30 days of logs, zero compositor crashes or restarts, and zero compositor activity logged anywhere near any of the crash timestamps. This isn't a desktop-environment bug.

Dominant language
Rust
Stars
145
Forks
45
Avg merge
7h 8m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Stremio/stremio-linux-shell

All issues in Stremio/stremio-linux-shell

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.