Bug 465370

Summary: Spectacle crashes in zkde_screencast_unstable_v1_stream_region when I try to record the screen
Product: [Applications] Spectacle Reporter: Patrick Silva <bugseforuns>
Component: GeneralAssignee: Boudhayan Gupta <me>
Status: RESOLVED FIXED    
Severity: crash CC: aleixpol, kde, nate
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Patrick Silva 2023-02-06 14:01:17 UTC
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
Comment 1 Aleix Pol 2023-02-08 01:21:37 UTC
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
Comment 2 Patrick Silva 2023-02-08 12:54:09 UTC
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)
Comment 3 Bug Janitor Service 2023-02-16 16:18:07 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/spectacle/-/merge_requests/202
Comment 4 Aleix Pol 2023-02-16 16:20:10 UTC
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?
Comment 5 Patrick Silva 2023-02-16 17:29:40 UTC
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?
Comment 6 Aleix Pol 2023-02-17 00:36:19 UTC
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