Skip to content

Quickshell crashes (SIGSEGV) within seconds when toggling PanelWindow + ScreencopyView (niri) #876

Description

@Pulsar33550336

What caused the crash

It originally occurred in the Noctalia plugin https://github.com/noctalia-dev/legacy-v4-plugins/tree/main/screen-shot-and-record. As long as the screenshot overlay is triggered rapidly several times within a few seconds in Niri WM, a crash is almost certain to occur.

It can be reliably reproduced using Quickshell 0.3.0 (revision tag-v0.3.0, distributed by Nixpkgs).

Report file

report.txt

Configuration

I created a minimal reproducible code snippet:

import QtQuick
import Quickshell
import Quickshell.Wayland

Item {
    property bool show: false
    Timer {
        interval: 20
        repeat: true
        running: true
        onTriggered: show = !show
    }

    Instantiator {
        active: show
        delegate: PanelWindow {
            ScreencopyView {
                captureSource: screen
            }
        }
    }
}

Running on Niri can cause a stable crash (SIGSEGV)

Actually, quickly is not one of the triggering conditions, because even if I set interval: 10000 (10s), it still crashes.

Backtrace

Details
(gdb) bt -full
#0  0x000071ae16e9fdcc in __pthread_kill_implementation () from /nix/store/57iz36553175g3178pvxjij8z5rcsd4n-glibc-2.42-61/lib/libc.so.6
No symbol table info available.
#1  0x000071ae16e4265e in raise () from /nix/store/57iz36553175g3178pvxjij8z5rcsd4n-glibc-2.42-61/lib/libc.so.6
No symbol table info available.
#2  0x0000651b3bf922a7 in qs::crash::(anonymous namespace)::signalHandler(int, siginfo_t*, void*) ()
No symbol table info available.
#3  <signal handler called>
No symbol table info available.
#4  0x000071ae1b00e0a6 in QtWaylandClient::QWaylandSurface::surface_enter(wl_output*) [clone .cold] ()
   from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6WaylandClient.so.6
No symbol table info available.
#5  0x000071ae1a83b052 in ffi_call_unix64 () from /nix/store/2zs4bbi72plfm8j6zxf1js4f3yc4yzwy-libffi-3.5.2/lib/libffi.so.8
No symbol table info available.
#6  0x000071ae1a83975c in ffi_call_int () from /nix/store/2zs4bbi72plfm8j6zxf1js4f3yc4yzwy-libffi-3.5.2/lib/libffi.so.8
No symbol table info available.
#7  0x000071ae1a83a2ae in ffi_call () from /nix/store/2zs4bbi72plfm8j6zxf1js4f3yc4yzwy-libffi-3.5.2/lib/libffi.so.8
No symbol table info available.
#8  0x000071ae1b0c9b4c in wl_closure_invoke () from /nix/store/b89rbd2k8k3a8va6xkmh4nizgrpwv0y4-wayland-1.25.0/lib/libwayland-client.so.0
No symbol table info available.
#9  0x000071ae1b0c510c in dispatch_event () from /nix/store/b89rbd2k8k3a8va6xkmh4nizgrpwv0y4-wayland-1.25.0/lib/libwayland-client.so.0
No symbol table info available.
#10 0x000071ae1b0c64bb in wl_display_dispatch_queue_pending () from /nix/store/b89rbd2k8k3a8va6xkmh4nizgrpwv0y4-wayland-1.25.0/lib/libwayland-client.so.0
No symbol table info available.
#11 0x000071ae1b023cd2 in QtWaylandClient::EventThread::readAndDispatchEvents() ()
   from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6WaylandClient.so.6
No symbol table info available.
#12 0x000071ae1781f3f4 in QObject::event(QEvent*) () from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6Core.so.6
No symbol table info available.
#13 0x000071ae177bb828 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6Core.so.6
No symbol table info available.
#14 0x000071ae177bf6e9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6Core.so.6
No symbol table info available.
#15 0x000071ae17b1384f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6Core.so.6
No symbol table info available.
#16 0x000071ae1ac9ec4b in g_main_context_dispatch_unlocked () from /nix/store/jlyahda14aya375lv7k9fsin2zk90nxz-glib-2.88.1/lib/libglib-2.0.so.0
No symbol table info available.
#17 0x000071ae1aca2218 in g_main_context_iterate_unlocked.isra () from /nix/store/jlyahda14aya375lv7k9fsin2zk90nxz-glib-2.88.1/lib/libglib-2.0.so.0
No symbol table info available.
#18 0x000071ae1aca2adf in g_main_context_iteration () from /nix/store/jlyahda14aya375lv7k9fsin2zk90nxz-glib-2.88.1/lib/libglib-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
No symbol table info available.
#19 0x000071ae17b12d0d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6Core.so.6
No symbol table info available.
#20 0x000071ae177c99ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6Core.so.6
No symbol table info available.
#21 0x000071ae177c4d79 in QCoreApplication::exec() () from /nix/store/wzvm2pvf98a71v0scgfhmi01lqcxahfr-qtbase-6.11.0/lib/libQt6Core.so.6
No symbol table info available.
#22 0x0000651b3bf3fb43 in qs::launch::launch(qs::launch::LaunchArgs const&, char**, QCoreApplication*) ()
No symbol table info available.
#23 0x0000651b3bf39fc4 in qs::launch::runCommand(int, char**, QCoreApplication*) ()
No symbol table info available.
#24 0x0000651b3bf2a5b0 in qs::launch::main(int, char**) ()
No symbol table info available.
#25 0x000071ae16e2b285 in __libc_start_call_main () from /nix/store/57iz36553175g3178pvxjij8z5rcsd4n-glibc-2.42-61/lib/libc.so.6
No symbol table info available.
#26 0x000071ae16e2b338 in __libc_start_main_impl () from /nix/store/57iz36553175g3178pvxjij8z5rcsd4n-glibc-2.42-61/lib/libc.so.6
No symbol table info available.
#27 0x0000651b3bf2c2a5 in _start ()
No symbol table info available.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcrash

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions