https://bugs.kde.org/show_bug.cgi?id=524811
Urs Fleisch <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REPORTED |RESOLVED Resolution|--- |UPSTREAM --- Comment #2 from Urs Fleisch <[email protected]> --- Thanks for the report. I tried to reproduce it on Arch Linux, but it did not crash. So I went to my usual Debian system, installed mangohud and tried to reproduce it there. Still no "luck". Looking at the stack trace, it does not look as if this is a problem of Kid3. There are calls to QtMultimedia, FFmpeg, Vulkan, etc. before the crash happens. So I asked Gemini. Here is the answer: No, this is almost certainly not a bug in Kid3. Setting MANGOHUD=1 is a global dynamic library preload/injection mechanism intended primarily for Vulkan and OpenGL applications (specifically games). When set globally via export MANGOHUD=1 or in environment files, MangoHud injects its hook library (libMangoHud.so) into every process that initializes graphics/multimedia drivers. The crash happens deep inside libMangoHud.so during library initialization/hooking before Kid3's application logic is even executed. Specifically: 1. Unsafe Library Hooking / Preloading: MangoHud hooks OpenGL/Vulkan/EGL symbols and windowing/audio subsystems. When an application initializes Qt or audio/video backends (such as QtMultimedia), MangoHud attempts to intercept graphics context creation or monitor system APIs. 2. Context Mismatch: If an application doesn't create a traditional hardware-accelerated 3D Vulkan/OpenGL rendering target (or initializes media pipelines via GStreamer/FFmpeg without standard 3D contexts), libMangoHud.so hits a NULL pointer or unexpected state during its hook setup, resulting in a Segmentation Fault inside libMangoHud.so. Since libMangoHud.so is in the backtrace frame where the crash occurs, Kid3 is merely an innocent bystander. Why couldn't you reproduce it? There are a few reasons why setting MANGOHUD=1 might not crash Kid3 on your setup: 1. Build Configuration of Kid3: - Kid3 can be compiled with different audio backends (or without QtMultimedia support enabled/linked). - If Kid3 was built with Phonon or without media playback components loaded at startup, it won't invoke the driver routines that trigger MangoHud's hook failure. 2. Graphics Drivers & Window System: - MangoHud behaves differently depending on whether you are running under Wayland vs. X11, and whether you are using Mesa (Intel/AMD) vs. proprietary NVIDIA drivers. 3. MangoHud Version Differences: - MangoHud releases frequently fix edge cases in global injection (MANGOHUD=1) where non-game software crashes on startup. Do other applications experience this? Yes. Global enablement (MANGOHUD=1) is notoriously problematic for non-gaming applications, desktop utilities, and UI frameworks (especially Qt and Electron apps): - Gamescope: Running MANGOHUD=1 gamescope frequently segfaults on startup due to conflicting Vulkan layer injections (requiring mangoapp instead). - Qt & MPV / Hydrus Network: Qt apps that use QtMultimedia or launch mpv sub-processes crash or freeze when MANGOHUD=1 forces MangoHud into non-3D video rendering pipelines. - Electron / Chromium Apps: Preloading MangoHud into Chromium-based apps often leads to immediate SIGSEGV crashes when GPU acceleration sandboxing initializes. - OBS Studio & Screen Recorders: Applications attempting to set up EGL/OpenGL contexts purely for offscreen rendering or video capture crash when MangoHud attempts to attach an overlay UI to non-existent display windows. How should this be handled? - For Users: Avoid setting MANGOHUD=1 globally in ~/.bashrc or /etc/environment. Instead, enable MangoHud only for target games/apps (e.g., mangohud %command% in Steam or mangohud app-name in terminal). - In Bugzilla: The KDE bug report should likely be closed as UPSTREAM or NOTOURBUG, referring the reporter to report the segfault to the MangoHud GitHub repository https://github.com/flightlessmango/MangoHud. -- You are receiving this mail because: You are watching all bug changes.
