STEPS TO REPRODUCE 1. open Spectacle 2. click on 'Recording' tab 3. click on any button used to record the screen OBSERVED RESULT Spectacle crashes EXPECTED RESULT no crash SOFTWARE/OS VERSIONS Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.27.80 KDE Frameworks Version: 5.103.0 Qt Version: 5.15.8 Graphics Platform: Wayland Thread 14 (Thread 0x7f6eb0dff640 (LWP 14060)): #0 0x00007f6ebbf18d7f in __GI___poll (fds=0x7f6eac0053c0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f6eb9f70666 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f6eb9f193e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f6ebc915ad8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f6eac000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f6ebc8ba99b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f6eb0dfe110, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #5 0x00007f6ebc6cd4e2 in QThread::exec() (this=this@entry=0x7f6ebd3fed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f6ebd385f1b in QDBusConnectionManager::run() (this=0x7f6ebd3fed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ./src/dbus/qdbusconnection.cpp:179 #7 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x7f6ebd3fed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:330 #8 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #9 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 13 (Thread 0x7f6e72ffd640 (LWP 14074)): #0 __futex_abstimed_wait_common64 (private=544, cancel=true, abstime=0x7f6e72ffc0b0, op=137, expected=0, futex_word=0x7f6e80044544) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=544, abstime=0x7f6e72ffc0b0, clockid=0, expected=0, futex_word=0x7f6e80044544) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7f6e80044544, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7f6e72ffc0b0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93f1b in __pthread_cond_wait_common (abstime=0x7f6e72ffc0b0, clockid=1, mutex=0x7f6e800444f0, cond=0x7f6e80044518) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_timedwait64 (cond=0x7f6e80044518, mutex=0x7f6e800444f0, abstime=0x7f6e72ffc0b0) at ./nptl/pthread_cond_wait.c:652 #5 0x00007f6ebc6d46cc in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (deadline=..., this=0x7f6e800444f0) at thread/qwaitcondition_unix.cpp:136 #6 QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x7f6e800444f0) at thread/qwaitcondition_unix.cpp:144 #7 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7f6e8003a8a0, mutex=mutex@entry=0x55b55e04c668, deadline=...) at thread/qwaitcondition_unix.cpp:225 #8 0x00007f6ebc6d1b65 in QThreadPoolThread::run() (this=0x7f6e8003a890) at thread/qthreadpool.cpp:140 #9 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x7f6e8003a890) at thread/qthread_unix.cpp:330 #10 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #11 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 12 (Thread 0x7f6e7b7fe640 (LWP 14073)): #0 __futex_abstimed_wait_common64 (private=544, cancel=true, abstime=0x7f6e7b7fd0b0, op=137, expected=0, futex_word=0x7f6e80046824) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=544, abstime=0x7f6e7b7fd0b0, clockid=0, expected=0, futex_word=0x7f6e80046824) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7f6e80046824, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7f6e7b7fd0b0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93f1b in __pthread_cond_wait_common (abstime=0x7f6e7b7fd0b0, clockid=1, mutex=0x7f6e800467d0, cond=0x7f6e800467f8) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_timedwait64 (cond=0x7f6e800467f8, mutex=0x7f6e800467d0, abstime=0x7f6e7b7fd0b0) at ./nptl/pthread_cond_wait.c:652 #5 0x00007f6ebc6d46cc in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (deadline=..., this=0x7f6e800467d0) at thread/qwaitcondition_unix.cpp:136 #6 QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x7f6e800467d0) at thread/qwaitcondition_unix.cpp:144 #7 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7f6e80024e60, mutex=mutex@entry=0x55b55e04c668, deadline=...) at thread/qwaitcondition_unix.cpp:225 #8 0x00007f6ebc6d1b65 in QThreadPoolThread::run() (this=0x7f6e80024e50) at thread/qthreadpool.cpp:140 #9 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x7f6e80024e50) at thread/qthread_unix.cpp:330 #10 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #11 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 11 (Thread 0x7f6e94fff640 (LWP 14068)): #0 0x00007f6ebbf18d7f in __GI___poll (fds=0x7f6e880029e0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f6eb9f70666 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f6eb9f193e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f6ebc915ad8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f6e88000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f6ebc8ba99b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f6e94ffe120, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #5 0x00007f6ebc6cd4e2 in QThread::exec() (this=this@entry=0x55b55e0a1aa0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f6ebe132b09 in QQmlThreadPrivate::run() (this=0x55b55e0a1aa0) at qml/ftw/qqmlthread.cpp:155 #7 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x55b55e0a1aa0) at thread/qthread_unix.cpp:330 #8 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #9 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 10 (Thread 0x7f6e8d347640 (LWP 14070)): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55b55e629b50) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x55b55e629b50) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55b55e629b50, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93ac1 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55b55e629b00, cond=0x55b55e629b28) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55b55e629b28, mutex=0x55b55e629b00) at ./nptl/pthread_cond_wait.c:627 #5 0x00007f6ea970aced in cnd_wait (cond=<optimized out>, mtx=<optimized out>) at ../src/c11/impl/threads_posix.c:135 #6 0x00007f6ea96be35b in util_queue_thread_func (input=input@entry=0x55b55e330760) at ../src/util/u_queue.c:287 #7 0x00007f6ea970ac1b in impl_thrd_routine (p=<optimized out>) at ../src/c11/impl/threads_posix.c:67 #8 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #9 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 9 (Thread 0x7f6ea8cbd640 (LWP 14067)): #0 __futex_abstimed_wait_common64 (private=1417, cancel=true, abstime=0x7f6ea8cbc0b0, op=137, expected=0, futex_word=0x55b55e0a1f70) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=1417, abstime=0x7f6ea8cbc0b0, clockid=0, expected=0, futex_word=0x55b55e0a1f70) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55b55e0a1f70, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7f6ea8cbc0b0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93f1b in __pthread_cond_wait_common (abstime=0x7f6ea8cbc0b0, clockid=1, mutex=0x55b55e0a1f20, cond=0x55b55e0a1f48) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_timedwait64 (cond=0x55b55e0a1f48, mutex=0x55b55e0a1f20, abstime=0x7f6ea8cbc0b0) at ./nptl/pthread_cond_wait.c:652 #5 0x00007f6ebc6d46cc in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (deadline=..., this=0x55b55e0a1f20) at thread/qwaitcondition_unix.cpp:136 #6 QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x55b55e0a1f20) at thread/qwaitcondition_unix.cpp:144 #7 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x55b55e09d550, mutex=mutex@entry=0x55b55e04c668, deadline=...) at thread/qwaitcondition_unix.cpp:225 #8 0x00007f6ebc6d1b65 in QThreadPoolThread::run() (this=0x55b55e09d540) at thread/qthreadpool.cpp:140 #9 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x55b55e09d540) at thread/qthread_unix.cpp:330 #10 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #11 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 8 (Thread 0x7f6ea94be640 (LWP 14063)): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55b55df064c8) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x55b55df064c8) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55b55df064c8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93ac1 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55b55df06478, cond=0x55b55df064a0) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55b55df064a0, mutex=0x55b55df06478) at ./nptl/pthread_cond_wait.c:627 #5 0x00007f6ea970aced in cnd_wait (cond=<optimized out>, mtx=<optimized out>) at ../src/c11/impl/threads_posix.c:135 #6 0x00007f6ea96be35b in util_queue_thread_func (input=input@entry=0x55b55dea99c0) at ../src/util/u_queue.c:287 #7 0x00007f6ea970ac1b in impl_thrd_routine (p=<optimized out>) at ../src/c11/impl/threads_posix.c:67 #8 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #9 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 7 (Thread 0x7f6eabfff640 (LWP 14061)): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55b55def0574) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x55b55def0574) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55b55def0574, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93ac1 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55b55def0520, cond=0x55b55def0548) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55b55def0548, mutex=0x55b55def0520) at ./nptl/pthread_cond_wait.c:627 #5 0x00007f6ebc6d473b in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x55b55def0520) at thread/qwaitcondition_unix.cpp:146 #6 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x55b55def08f0, mutex=mutex@entry=0x55b55def08e8, deadline=...) at thread/qwaitcondition_unix.cpp:225 #7 0x00007f6ebeae5937 in QtWaylandClient::EventThread::waitForReading() (this=0x55b55def08b0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h:68 #8 QtWaylandClient::EventThread::run() (this=0x55b55def08b0) at ./src/client/qwaylanddisplay.cpp:206 #9 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x55b55def08b0) at thread/qthread_unix.cpp:330 #10 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #11 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 6 (Thread 0x7f6e7a7fb640 (LWP 14076)): #0 0x00007f6ebbf18e7e in __ppoll (fds=0x7f6e7a7f9f08, nfds=1, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 #1 0x00007f6ebc911a40 in ppoll (__ss=0x0, __timeout=0x0, __nfds=1, __fds=0x7f6e7a7f9f08) at /usr/include/x86_64-linux-gnu/bits/poll2.h:64 #2 qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f6e7a7f9f08) at kernel/qcore_unix.cpp:132 #3 qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=fds@entry=0x7f6e7a7f9f08, nfds=nfds@entry=1, timeout_ts=<optimized out>) at kernel/qcore_unix.cpp:155 #4 0x00007f6ebc150047 in qt_poll_msecs (nfds=1, timeout=<optimized out>, fds=0x7f6e7a7f9f08) at ../../include/QtCore/5.15.8/QtCore/private/../../../../../src/corelib/kernel/qcore_unix_p.h:381 #5 QNativeSocketEnginePrivate::nativeSelect(int, bool, bool, bool*, bool*) const (this=this@entry=0x7f6e68003f30, timeout=<optimized out>, checkRead=checkRead@entry=true, checkWrite=checkWrite@entry=false, selectForRead=selectForRead@entry=0x7f6e7a7f9fe6, selectForWrite=0x7f6e7a7f9fe7) at socket/qnativesocketengine_unix.cpp:1435 #6 0x00007f6ebc14dd55 in QNativeSocketEngine::waitForReadOrWrite(bool*, bool*, bool, bool, int, bool*) (this=0x7f6e680060a0, readyToRead=0x7f6e7a7f9fe6, readyToWrite=<optimized out>, checkRead=<optimized out>, checkWrite=<optimized out>, msecs=<optimized out>, timedOut=0x0) at socket/qnativesocketengine.cpp:1120 #7 0x00007f6ebc13f075 in QAbstractSocket::waitForReadyRead(int) (this=0x7f6e68001cc0, msecs=-1) at socket/qabstractsocket.cpp:2266 #8 0x00007f6ebdca4118 in KIO::ConnectionBackend::waitForIncomingTask(int) (this=0x7f6e68005a20, ms=-1) at ./src/core/connectionbackend.cpp:155 #9 0x00007f6ebdca4f85 in KIO::Connection::waitForIncomingTask(int) (this=<optimized out>, ms=ms@entry=-1) at ./src/core/connection.cpp:201 #10 0x00007f6ebdcedf01 in KIO::SlaveBase::dispatchLoop() (this=0x7f6e68005210) at /usr/include/c++/11/bits/unique_ptr.h:173 #11 0x00007f6ebdd89047 in KIO::WorkerThread::run() (this=0x55b55e7bd2c0) at ./src/core/workerthread.cpp:62 #12 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x55b55e7bd2c0) at thread/qthread_unix.cpp:330 #13 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #14 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 5 (Thread 0x7f6e8cb46640 (LWP 14071)): #0 0x00007f6ebbee5868 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f6e8cb45010, rem=0x7f6e8cb45010) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78 #1 0x00007f6ebbeea6e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 #2 0x00007f6ebc915405 in qt_nanosleep(timespec) (amount=...) at kernel/qelapsedtimer_unix.cpp:195 #3 0x00007f6ebc6cdfe8 in QThread::msleep(unsigned long) (msecs=<optimized out>) at thread/qthread_unix.cpp:510 #4 0x00007f6ebe61c116 in QSGRenderThread::syncAndRender(QImage*) (this=0x55b55e555e60, grabImage=0x0) at scenegraph/qsgthreadedrenderloop.cpp:797 #5 0x00007f6ebe61c377 in QSGRenderThread::run() (this=0x55b55e555e60) at scenegraph/qsgthreadedrenderloop.cpp:1042 #6 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x55b55e555e60) at thread/qthread_unix.cpp:330 #7 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #8 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 4 (Thread 0x7f6e7bfff640 (LWP 14072)): #0 __futex_abstimed_wait_common64 (private=544, cancel=true, abstime=0x7f6e7bffe0b0, op=137, expected=0, futex_word=0x7f6e80046674) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=544, abstime=0x7f6e7bffe0b0, clockid=0, expected=0, futex_word=0x7f6e80046674) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7f6e80046674, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7f6e7bffe0b0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93f1b in __pthread_cond_wait_common (abstime=0x7f6e7bffe0b0, clockid=1, mutex=0x7f6e80046620, cond=0x7f6e80046648) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_timedwait64 (cond=0x7f6e80046648, mutex=0x7f6e80046620, abstime=0x7f6e7bffe0b0) at ./nptl/pthread_cond_wait.c:652 #5 0x00007f6ebc6d46cc in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (deadline=..., this=0x7f6e80046620) at thread/qwaitcondition_unix.cpp:136 #6 QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x7f6e80046620) at thread/qwaitcondition_unix.cpp:144 #7 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7f6e80023000, mutex=mutex@entry=0x55b55e04c668, deadline=...) at thread/qwaitcondition_unix.cpp:225 #8 0x00007f6ebc6d1b65 in QThreadPoolThread::run() (this=0x7f6e80022ff0) at thread/qthreadpool.cpp:140 #9 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x7f6e80022ff0) at thread/qthread_unix.cpp:330 #10 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #11 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 3 (Thread 0x7f6eab7fe640 (LWP 14062)): #0 lll_mutex_unlock_optimized (mutex=0x55b55deed600) at ./nptl/pthread_mutex_unlock.c:43 #1 __GI___pthread_mutex_unlock_usercnt (decr=1, mutex=0x55b55deed600) at ./nptl/pthread_mutex_unlock.c:68 #2 ___pthread_mutex_unlock (mutex=0x55b55deed600) at ./nptl/pthread_mutex_unlock.c:368 #3 0x00007f6ebc6d45c5 in QWaitCondition::wakeOne() (this=this@entry=0x55b55def0800) at thread/qwaitcondition_unix.cpp:194 #4 0x00007f6ebeae5a32 in QtWaylandClient::EventThread::readAndDispatchEvents() (this=<optimized out>) at ./src/client/qwaylanddisplay.cpp:155 #5 QtWaylandClient::EventThread::waitForReading() (this=0x55b55def07c0) at ./src/client/qwaylanddisplay.cpp:234 #6 QtWaylandClient::EventThread::run() (this=0x55b55def07c0) at ./src/client/qwaylanddisplay.cpp:206 #7 0x00007f6ebc6ce703 in QThreadPrivate::start(void*) (arg=0x55b55def07c0) at thread/qthread_unix.cpp:330 #8 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #9 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 2 (Thread 0x7f6e8db48640 (LWP 14069)): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55b55e5761b0) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x55b55e5761b0) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55b55e5761b0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f6ebbe93ac1 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55b55e576160, cond=0x55b55e576188) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55b55e576188, mutex=0x55b55e576160) at ./nptl/pthread_cond_wait.c:627 #5 0x00007f6ea970aced in cnd_wait (cond=<optimized out>, mtx=<optimized out>) at ../src/c11/impl/threads_posix.c:135 #6 0x00007f6ea96be35b in util_queue_thread_func (input=input@entry=0x55b55e312e80) at ../src/util/u_queue.c:287 #7 0x00007f6ea970ac1b in impl_thrd_routine (p=<optimized out>) at ../src/c11/impl/threads_posix.c:67 #8 0x00007f6ebbe94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #9 0x00007f6ebbf26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 1 (Thread 0x7f6eb17b63c0 (LWP 14059)): #0 __pthread_kill_implementation (no_tid=0, signo=11, threadid=140113400783808) at ./nptl/pthread_kill.c:44 #1 __pthread_kill_internal (signo=11, threadid=140113400783808) at ./nptl/pthread_kill.c:78 #2 __GI___pthread_kill (threadid=140113400783808, signo=signo@entry=11) at ./nptl/pthread_kill.c:89 #3 0x00007f6ebbe42476 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #4 0x00007f6ebbc1105d in KCrash::defaultCrashHandler(int) (sig=11) at ./src/kcrash.cpp:611 #5 0x00007f6ebbe42520 in <signal handler called> () at /lib/x86_64-linux-gnu/libc.so.6 #6 wl_proxy_get_version (proxy=0x0) at ../src/wayland-client.c:2212 #7 0x000055b55d0d8213 in zkde_screencast_unstable_v1_stream_region (pointer=4, scale=256, height=768, width=1366, y=0, x=0, zkde_screencast_unstable_v1=0x0) at ./obj-x86_64-linux-gnu/src/wayland-zkde-screencast-unstable-v1-client-protocol.h:189 #8 QtWayland::zkde_screencast_unstable_v1::stream_region(int, int, unsigned int, unsigned int, int, unsigned int) (this=<optimized out>, this=<optimized out>, pointer=4, scale=256, height=768, width=1366, y=0, x=0) at ./obj-x86_64-linux-gnu/src/qwayland-zkde-screencast-unstable-v1.cpp:104 #9 Screencasting::createRegionStream(QRect const&, double, Screencasting::CursorMode) (scaling=1, mode=Screencasting::Metadata, geometry=<optimized out>, this=<optimized out>) at ./src/Platforms/screencasting.cpp:120 #10 VideoPlatformWayland::startRecording(QString const&, VideoPlatform::RecordingMode, std::variant<QScreen*, QRect, QString> const&, bool) (this=0x55b55dfb28e0, path=..., recordingMode=<optimized out>, option=<optimized out>, includePointer=<optimized out>) at ./src/Platforms/VideoPlatformWayland.cpp:39 #11 0x000055b55d0a2960 in SpectacleCore::startRecordingRegion(QRect const&, bool) (withPointer=true, region=..., this=0x7ffe7326eb00) at /usr/include/c++/11/bits/enable_special_members.h:67 #12 RecordingModeModel::startRecording(int, bool) (this=0x55b55e07f5e0, row=<optimized out>, withPointer=<optimized out>) at ./src/RecordingModeModel.cpp:128 #13 0x000055b55d08f1e3 in RecordingModeModel::qt_metacall(QMetaObject::Call, int, void**) (this=0x55b55e07f5e0, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7ffe7326c0e0) at ./obj-x86_64-linux-gnu/src/spectacle_autogen/EWIEGA46WW/moc_RecordingModeModel.cpp:160 #14 0x00007f6ebe0d06c5 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (this=this@entry=0x7ffe7326c370, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, index@entry=57, argv=<optimized out>) at qml/qqmlobjectorgadget.cpp:51 #15 0x00007f6ebdfaa986 in CallMethod (callType=<optimized out>, callArgs=0x1, engine=<optimized out>, argTypes=<optimized out>, argCount=<optimized out>, returnType=<optimized out>, index=<optimized out>, object=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h:189 #16 CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) (object=..., data=<optimized out>, engine=engine@entry=0x55b55e034ac0, callArgs=callArgs@entry=0x7f6e8efc1590, callType=callType@entry=QMetaObject::InvokeMetaMethod) at jsruntime/qv4qobjectwrapper.cpp:1553 #17 0x00007f6ebdfac84a in CallOverloaded (callType=<optimized out>, propertyCache=<optimized out>, callArgs=<optimized out>, engine=<optimized out>, data=<optimized out>, object=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:1629 #18 QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:2117 #19 0x00007f6ebdfc9e93 in QV4::FunctionObject::call(QV4::Value const*, QV4::Value const*, int) const (argc=<optimized out>, argv=<optimized out>, thisObject=<optimized out>, this=<optimized out>) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../src/qml/jsruntime/qv4functionobject_p.h:202 #20 QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7ffe7326c630, engine=0x55b55e034ac0, code=0x7f6e8efc1538 "@\326\302\216n\177") at jsruntime/qv4vme_moth.cpp:757 #21 0x00007f6ebdfccb9f in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=frame@entry=0x7ffe7326c630, engine=engine@entry=0x55b55e034ac0) at jsruntime/qv4vme_moth.cpp:466 #22 0x00007f6ebdf5eaee in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) (this=this@entry=0x55b55e7df2a0, thisObject=<optimized out>, argv=argv@entry=0x7f6e8efc1500, argc=<optimized out>, context=<optimized out>) at jsruntime/qv4function.cpp:69 #23 0x00007f6ebe0eb3a5 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) (this=this@entry=0x55b55e826df0, callData=callData@entry=0x7f6e8efc14d0, isUndefined=isUndefined@entry=0x0) at qml/qqmljavascriptexpression.cpp:212 #24 0x00007f6ebe09bf3b in QQmlBoundSignalExpression::evaluate(void**) (this=<optimized out>, a=<optimized out>) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../src/qml/jsruntime/qv4jscall_p.h:95 #25 0x00007f6ebe09d678 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (e=0x55b55e826d70, a=0x0) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69 #26 0x00007f6ebe0d0165 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at qml/qqmlnotifier.cpp:104 #27 0x00007f6ebc8f3c5b in doActivate<false>(QObject*, int, void**) (sender=0x55b55e824530, signal_index=64, argv=0x0) at kernel/qobject.cpp:3815 #28 0x00007f6eb02f2cb1 in QQuickAbstractButtonPrivate::handleRelease(QPointF const&) (this=0x55b55e8245f0, point=...) at ./src/quicktemplates2/qquickabstractbutton.cpp:182 #29 0x00007f6eb0312471 in QQuickControl::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, event=0x7ffe7326e6c0) at ./src/quicktemplates2/qquickcontrol.cpp:2181 #30 0x00007f6ebe66cb18 in QQuickItem::event(QEvent*) (this=0x55b55e824530, ev=0x7ffe7326e6c0) at items/qquickitem.cpp:8308 #31 0x00007f6ebd56c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55b55e824530, e=0x7ffe7326e6c0) at kernel/qapplication.cpp:3640 #32 0x00007f6ebc8bc07a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55b55e824530, event=0x7ffe7326e6c0) at kernel/qcoreapplication.cpp:1064 #33 0x00007f6ebe688555 in QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent*) (this=this@entry=0x55b55df07960, pointerEvent=0x55b55e714aa0) at items/qquickwindow.cpp:2025 #34 0x00007f6ebe689c03 in QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent*) (this=0x55b55df07960, event=0x55b55e714aa0) at items/qquickwindow.cpp:2628 #35 0x00007f6ebcd4ecd5 in QWindow::event(QEvent*) (this=0x55b55e03f2f0, ev=<optimized out>) at kernel/qwindow.cpp:2455 #36 0x00007f6ebd56c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55b55e03f2f0, e=0x7ffe7326e6c0) at kernel/qapplication.cpp:3640 #37 0x00007f6ebc8bc07a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55b55e03f2f0, event=0x7ffe7326e6c0) at kernel/qcoreapplication.cpp:1064 #38 0x00007f6ebcd42a77 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0x7f6ea40049d0) at kernel/qguiapplication.cpp:2285 #39 0x00007f6ebcd16a5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:1169 #40 0x00007f6ebeb1d664 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib/x86_64-linux-gnu/libQt5WaylandClient.so.5 #41 0x00007f6eb9f1bd3b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #42 0x00007f6eb9f706c8 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #43 0x00007f6eb9f193e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #44 0x00007f6ebc915ad8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55b55dea2810, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #45 0x00007f6ebc8ba99b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe7326e9f0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #46 0x00007f6ebc8c2f34 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #47 0x00007f6ebcd364d0 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870 #48 0x00007f6ebd56c709 in QApplication::exec() () at kernel/qapplication.cpp:2832 #49 0x000055b55d087a99 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/Main.cpp:106
Could it be an installation issue? Can you check if you get any error messages when running Spectacle on the terminal? It does seem to be calling a null pointer but I don't see why we'd get one if it's all properly set up. #6 wl_proxy_get_version (proxy=0x0) at ../src/wayland-client.c:2212 #7 0x000055b55d0d8213 in zkde_screencast_unstable_v1_stream_region (pointer=4, scale=256, height=768, width=1366, y=0, x=0, zkde_screencast_unstable_v1=0x0) at ./obj-x86_64-linux-gnu/src/wayland-zkde-screencast-unstable-v1-client-protocol.h:189 #8 QtWayland::zkde_screencast_unstable_v1::stream_region(int, int, unsigned int, unsigned int, int, unsigned int) (this=<optimized out>, this=<optimized out>, pointer=4, scale=256, height=768, width=1366, y=0, x=0) at ./obj-x86_64-linux-gnu/src/qwayland-zkde-screencast-unstable-v1.cpp:104 #9 Screencasting::createRegionStream(QRect const&, double, Screencasting::CursorMode) (scaling=1, mode=Screencasting::Metadata, geometry=<optimized out>, this=<optimized out>) at ./src/Platforms/screencasting.cpp:120
Output in Konsole: $ spectacle Remember requesting the interface on your desktop file: X-KDE-Wayland-Interfaces=zkde_screencast_unstable_v1 Hspell: can't open /usr/share/hspell/hebrew.wgz.sizes. kf.sonnet.clients.hspell: HSpellDict::HSpellDict: Init failed file:///usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/kirigami.2/templates/InlineMessage.qml:257:13: QML SelectableLabel: Binding loop detected for property "implicitWidth" 23 -- exe=/usr/bin/spectacle 17 -- platform=wayland 18 -- appname=spectacle 17 -- apppath=/usr/bin 10 -- signal=11 9 -- pid=8141 20 -- appversion=23.03.70 22 -- programname=Spectacle 31 -- bugaddress=submit@bugs.kde.org KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = spectacle path = /usr/bin pid = 8141 KCrash: Arguments: /usr/bin/spectacle Segmentation fault (core dumped)
A possibly relevant merge request was started @ https://invent.kde.org/graphics/spectacle/-/merge_requests/202
My MR above will address the crash, but is it possible that your desktop file is broken? It should have the X-KDE-Wayland-Interfaces in question. Can you investigate a bit what could be going on?
You are right. I can't reproduce the crash with another user account. The .desktop file of the working account is located on /usr/share/applications, the .desktop file of the problematic account is located on /home/<my_username>/.local/share/applications, and here are its contents: [Desktop Action ActiveWindowScreenShot] Exec=/usr/lib/qt5/bin/qdbus org.kde.Spectacle / ActiveWindow -1 -1 Name=Capture Active Window X-KDE-Shortcuts=Meta+Print [Desktop Action CurrentMonitorScreenShot] Exec=/usr/lib/qt5/bin/qdbus org.kde.Spectacle / CurrentScreen -1 Name=Capture Current Monitor [Desktop Action FullScreenScreenShot] Exec=/usr/lib/qt5/bin/qdbus org.kde.Spectacle / FullScreen -1 Name=Capture Entire Desktop X-KDE-Shortcuts=Shift+Print [Desktop Action OpenWithoutScreenshot] Exec=/usr/lib/qt5/bin/qdbus org.kde.Spectacle / OpenWithoutScreenshot Name=Launch without taking a screenshot [Desktop Action RectangularRegionScreenShot] Exec=/usr/lib/qt5/bin/qdbus org.kde.Spectacle / RectangularRegion -1 Name=Capture Rectangular Region X-KDE-Shortcuts=Meta+Shift+Print [Desktop Action WindowUnderCursorScreenShot] Exec=/usr/lib/qt5/bin/qdbus org.kde.Spectacle / WindowUnderCursor -1 Name=Capture Window Under Cursor X-KDE-Shortcuts=Meta+Ctrl+Print [Desktop Entry] Actions=FullScreenScreenShot;CurrentMonitorScreenShot;ActiveWindowScreenShot;RectangularRegionScreenShot;WindowUnderCursorScreenShot;OpenWithoutScreenshot; Categories=Qt;KDE;Utility; Comment=Screenshot capture utility Exec=/usr/bin/spectacle GenericName=Screenshot Capture Utility Icon=spectacle Keywords=snapshot;capture;print;screenshot;snipping;snipping tool;snip; Name=Spectacle NoDisplay=false Path= StartupNotify=false Terminal=false TerminalOptions= Type=Application X-DBUS-ServiceName=org.kde.Spectacle X-DBUS-StartupType=Unique X-KDE-DBUS-Restricted-Interfaces=org.kde.kwin.Screenshot,org.kde.KWin.ScreenShot2 X-KDE-Shortcuts=Print X-KDE-SubstituteUID=false X-KDE-Username= The broken .desktop file is not removed after uninstalling Spectacle. The .desktop file was not properly updated after a update, maybe? The problematic user account has a shortcut to Spectacle on desktop, could this be related?
Git commit 7982c9e74f0ff26fc973e6cbc42b2379b8da8a4b by Aleix Pol Gonzalez, on behalf of Aleix Pol. Committed on 16/02/2023 at 23:08. Pushed by ndavis into branch 'master'. recording: don't crash when our screencasting protocol is unsupported M +4 -1 src/Platforms/VideoPlatformWayland.cpp M +8 -2 src/Platforms/screencasting.cpp M +1 -0 src/Platforms/screencasting.h https://invent.kde.org/graphics/spectacle/commit/7982c9e74f0ff26fc973e6cbc42b2379b8da8a4b