Bug 482921

Summary: Spectacle crashes immediately at launch
Product: [Applications] Spectacle Reporter: Louis D. <louis>
Component: GeneralAssignee: Noah Davis <noahadvs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: kde, nicolas.fella
Priority: NOR Keywords: qt6
Version: 24.02.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Valgrind trace

Description Louis D. 2024-03-08 20:51:48 UTC
Created attachment 166737 [details]
Valgrind trace

SUMMARY
When starting spectacle (no matter how, using the CLI, the app launcher or the impr screen shortcut), it immediately crashes.

Attached are another Valgrind trace
Here is a link to a coredump (~750MB) : https://gitlab.gottagofast.fr/LouisDupraz/storage/-/blob/5cee5e00627396ba525fbf06f342c787c0d2fe6d/trace.txt.core.706428

STEPS TO REPRODUCE
1. Launch Spectacle

OBSERVED RESULT
Spectacle does not start (GUI does not appear) and a crash message appears

EXPECTED RESULT
Spectacle starts

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Garuda Linux (6.7.9-zen1-1-zen (64-bit))
(available in About System)
KDE Plasma Version: 6.0.1
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Graphics Platform: Wayland

Processor: 20 × 12th Gen Intel® Core™ i7-12700H
Memory: 15,3 GiB of RAM
Graphics Processor: Mesa Intel® Graphics

ADDITIONAL INFORMATION
Here is a valgrind backtrace with as much debug symbols as possible

==707023== Memcheck, a memory error detector
==707023== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==707023== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==707023== Command: spectacle
==707023==
==707023== realloc() with size 0
==707023==    at 0x484ABC0: realloc (vg_replace_malloc.c:1690)
==707023==    by 0x2173BD66: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2174292B: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2175555E: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x217559BC: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2174EE6E: NvGlEglApiInit (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x20A35AA4: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A35B8A: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20AAEE25: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A33AA7: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A48EDC: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x1EE1BD38: UnknownInlinedFun (wayland-eglhandle.c:65)
==707023==    by 0x1EE1BD38: loadEGLExternalPlatform (wayland-external-exports.c:109)
==707023==  Address 0x1f59ace0 is 0 bytes after a block of size 0 alloc'd
==707023==    at 0x4843788: malloc (vg_replace_malloc.c:442)
==707023==    by 0x2173BD53: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2174292B: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2175555E: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x217559BC: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2174EE6E: NvGlEglApiInit (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x20A35AA4: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A35B8A: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20AAEE25: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A33AA7: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A48EDC: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x1EE1BD38: UnknownInlinedFun (wayland-eglhandle.c:65)
==707023==    by 0x1EE1BD38: loadEGLExternalPlatform (wayland-external-exports.c:109)
==707023==
==707023== posix_memalign() invalid size value: 0
==707023==    at 0x484B328: posix_memalign (vg_replace_malloc.c:2099)
==707023==    by 0x2173BD97: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2174292B: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2175555E: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x217559BC: ??? (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x2174EE6E: NvGlEglApiInit (in /usr/lib/libnvidia-eglcore.so.550.54.14)
==707023==    by 0x20A35AA4: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A35B8A: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20AAEE25: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A33AA7: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x20A48EDC: ??? (in /usr/lib/libEGL_nvidia.so.550.54.14)
==707023==    by 0x1EE1BD38: UnknownInlinedFun (wayland-eglhandle.c:65)
==707023==    by 0x1EE1BD38: loadEGLExternalPlatform (wayland-external-exports.c:109)
==707023==
Remember requesting the interface on your desktop file: X-KDE-Wayland-Interfaces=zkde_screencast_unstable_v1
==707023== Invalid read of size 8
==707023==    at 0xAD09AB4: XDisplayString (Macros.c:119)
==707023==    by 0x3459EA1C: __vaDriverInit_1_13 (in /usr/lib/dri/vdpau_drv_video.so)
==707023==    by 0xABBE27B: UnknownInlinedFun (va.c:478)
==707023==    by 0xABBE27B: UnknownInlinedFun (va.c:714)
==707023==    by 0xABBE27B: UnknownInlinedFun (va.c:743)
==707023==    by 0xABBE27B: vaInitialize (va.c:727)
==707023==    by 0x4B3DDF9: VaapiUtils::openDevice(int*, QByteArray const&) [clone .constprop.0] (vaapiutils.cpp:165)
==707023==    by 0x4B3A944: UnknownInlinedFun (vaapiutils.cpp:86)
==707023==    by 0x4B3A944: VaapiUtils::VaapiUtils() (vaapiutils.cpp:37)
==707023==    by 0x4B3ACE1: PipeWireBaseEncodedStream::suggestedEncoders() const (pipewirebaseencodedstream.cpp:180)
==707023==    by 0x4B3B30D: PipeWireBaseEncodedStream::PipeWireBaseEncodedStream(QObject*) (pipewirebaseencodedstream.cpp:50)
==707023==    by 0x4B3B4CD: PipeWireRecord::PipeWireRecord(QObject*) (pipewirerecord.cpp:59)
==707023==    by 0x1C74F7: VideoPlatformWayland::VideoPlatformWayland(QObject*) [clone .constprop.0] (VideoPlatformWayland.cpp:78)
==707023==    by 0x1C7A66: UnknownInlinedFun (unique_ptr.h:1070)
==707023==    by 0x1C7A66: UnknownInlinedFun (PlatformLoader.cpp:93)
==707023==    by 0x1C7A66: SpectacleCore::SpectacleCore(QObject*) [clone .constprop.0] (SpectacleCore.cpp:120)
==707023==    by 0x1351E5: main (Main.cpp:103)
==707023==  Address 0xd8 is not stack'd, malloc'd or (recently) free'd
==707023==
==707023==
==707023== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==707023==  Access not within mapped region at address 0xD8
==707023==    at 0xAD09AB4: XDisplayString (Macros.c:119)
==707023==    by 0x3459EA1C: __vaDriverInit_1_13 (in /usr/lib/dri/vdpau_drv_video.so)
==707023==    by 0xABBE27B: UnknownInlinedFun (va.c:478)
==707023==    by 0xABBE27B: UnknownInlinedFun (va.c:714)
==707023==    by 0xABBE27B: UnknownInlinedFun (va.c:743)
==707023==    by 0xABBE27B: vaInitialize (va.c:727)
==707023==    by 0x4B3DDF9: VaapiUtils::openDevice(int*, QByteArray const&) [clone .constprop.0] (vaapiutils.cpp:165)
==707023==    by 0x4B3A944: UnknownInlinedFun (vaapiutils.cpp:86)
==707023==    by 0x4B3A944: VaapiUtils::VaapiUtils() (vaapiutils.cpp:37)
==707023==    by 0x4B3ACE1: PipeWireBaseEncodedStream::suggestedEncoders() const (pipewirebaseencodedstream.cpp:180)
==707023==    by 0x4B3B30D: PipeWireBaseEncodedStream::PipeWireBaseEncodedStream(QObject*) (pipewirebaseencodedstream.cpp:50)
==707023==    by 0x4B3B4CD: PipeWireRecord::PipeWireRecord(QObject*) (pipewirerecord.cpp:59)
==707023==    by 0x1C74F7: VideoPlatformWayland::VideoPlatformWayland(QObject*) [clone .constprop.0] (VideoPlatformWayland.cpp:78)
==707023==    by 0x1C7A66: UnknownInlinedFun (unique_ptr.h:1070)
==707023==    by 0x1C7A66: UnknownInlinedFun (PlatformLoader.cpp:93)
==707023==    by 0x1C7A66: SpectacleCore::SpectacleCore(QObject*) [clone .constprop.0] (SpectacleCore.cpp:120)
==707023==    by 0x1351E5: main (Main.cpp:103)
==707023==  If you believe this happened as a result of a stack
==707023==  overflow in your program's main thread (unlikely but
==707023==  possible), you can try to increase the size of the
==707023==  main thread stack using the --main-stacksize= flag.
==707023==  The main thread stack size used in this run was 8388608.
==707023==
==707023== HEAP SUMMARY:
==707023==     in use at exit: 5,100,182 bytes in 32,347 blocks
==707023==   total heap usage: 93,914 allocs, 61,567 frees, 20,583,074 bytes allocated
==707023==
==707023== LEAK SUMMARY:
==707023==    definitely lost: 0 bytes in 0 blocks
==707023==    indirectly lost: 0 bytes in 0 blocks
==707023==      possibly lost: 550,190 bytes in 1,229 blocks
==707023==    still reachable: 4,547,976 bytes in 31,097 blocks
==707023==                       of which reachable via heuristic:
==707023==                         newarray           : 13,352 bytes in 37 blocks
==707023==         suppressed: 0 bytes in 0 blocks
==707023== Rerun with --leak-check=full to see details of leaked memory
==707023==
==707023== For lists of detected and suppressed errors, rerun with: -s
==707023== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
fish: Job 1, 'valgrind --keep-debuginfo=yes -…' terminated by signal SIGSEGV (Address boundary error)
Comment 1 Nicolas Fella 2024-03-08 22:21:41 UTC

*** This bug has been marked as a duplicate of bug 481977 ***