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.
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:
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