Bug 419724 - kwin_wayland crashed when external monitor was turned on
Summary: kwin_wayland crashed when external monitor was turned on
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-06 14:24 UTC by Patrick Silva
Modified: 2021-11-04 17:20 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2020-04-06 14:24:21 UTC
STEPS TO REPRODUCE
1. start Wayland session
2. connect an external monitor to hdmi port and turn it on
3. set monitor mode to "Switch to external screen"
4. change multi-monitor mode to "Switch to laptop screen"
5. turn off the external monitor and disconnect its cable from hdmi port
6. reconnect the external monitor to hdmi port and turn it on


OBSERVED RESULT
kwin_wayland crashes

EXPECTED RESULT
no crash

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.18.80
KDE Frameworks Version: 5.69.0
Qt Version: 5.14.1
Comment 1 Patrick Silva 2020-04-06 14:24:48 UTC
Thread 11 (Thread 13503.13543):
#0  0x00007f243f7469f3 in futex_wait_cancelable (private=<optimized out>, expected=0, 
    futex_word=0x7f243d30efb8 <QTWTF::pageheap_memory+57592>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x7f243d30ef68 <QTWTF::pageheap_memory+57512>, 
    cond=0x7f243d30ef90 <QTWTF::pageheap_memory+57552>) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x7f243d30ef90 <QTWTF::pageheap_memory+57552>, 
    mutex=mutex@entry=0x7f243d30ef68 <QTWTF::pageheap_memory+57512>) at pthread_cond_wait.c:655
#3  0x00007f243d019944 in QTWTF::TCMalloc_PageHeap::scavengerThread (
    this=0x7f243d300ec0 <QTWTF::pageheap_memory>)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#4  0x00007f243d019989 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#5  0x00007f243f7406db in start_thread (arg=0x7f23f6472700) at pthread_create.c:463
#6  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 13503.13542):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f243e085d44 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0, 
    addr=<optimized out>) at thread/qfutex_p.h:116
#2  QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int> > (expectedValue=<optimized out>, futex=...)
    at thread/qfutex_p.h:135
#3  futexSemaphoreTryAcquire_loop<false> (timeout=-1, nn=8589934593, curValue=<optimized out>, u=...)
    at thread/qsemaphore.cpp:219
#4  futexSemaphoreTryAcquire<false> (timeout=-1, n=n@entry=1, u=...) at thread/qsemaphore.cpp:262
#5  QSemaphore::acquire (this=this@entry=0x55e479913f80, n=n@entry=1) at thread/qsemaphore.cpp:326
#6  0x00007f2427ae5d7a in QtVirtualKeyboard::HunspellWorker::run (this=0x55e479913f60) at hunspellworker.cpp:744
#7  0x00007f243e0837ec in QThreadPrivate::start (arg=0x55e479913f60) at thread/qthread_unix.cpp:342
#8  0x00007f243f7406db in start_thread (arg=0x7f23f6c73700) at pthread_create.c:463
#9  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 13503.13540):
#0  0x00007f243f7469f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e479823580) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55e479823530, cond=0x55e479823558) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x55e479823558, mutex=mutex@entry=0x55e479823530) at pthread_cond_wait.c:655
#3  0x00007f243e089d9b in QWaitConditionPrivate::wait (deadline=..., this=0x55e479823530) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait (this=<optimized out>, mutex=0x55e479823408, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007f243e089f19 in QWaitCondition::wait (this=this@entry=0x55e479823410, mutex=mutex@entry=0x55e479823408, time=time@entry=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:208
#6  0x00007f23f95318eb in FileInfoThread::run (this=0x55e4798233f8) at fileinfothread.cpp:231
#7  0x00007f243e0837ec in QThreadPrivate::start (arg=0x55e4798233f8) at thread/qthread_unix.cpp:342
#8  0x00007f243f7406db in start_thread (arg=0x7f23f7c75700) at pthread_create.c:463
#9  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 13503.13539):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f243e085d44 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0, addr=<optimized out>) at thread/qfutex_p.h:116
#2  QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int> > (expectedValue=<optimized out>, futex=...) at thread/qfutex_p.h:135
#3  futexSemaphoreTryAcquire_loop<false> (timeout=-1, nn=8589934593, curValue=<optimized out>, u=...) at thread/qsemaphore.cpp:219
#4  futexSemaphoreTryAcquire<false> (timeout=-1, n=n@entry=1, u=...) at thread/qsemaphore.cpp:262
#5  QSemaphore::acquire (this=this@entry=0x55e479543720, n=n@entry=1) at thread/qsemaphore.cpp:326
#6  0x00007f2427ae5d7a in QtVirtualKeyboard::HunspellWorker::run (this=0x55e479543700) at hunspellworker.cpp:744
#7  0x00007f243e0837ec in QThreadPrivate::start (arg=0x55e479543700) at thread/qthread_unix.cpp:342
#8  0x00007f243f7406db in start_thread (arg=0x7f23f8476700) at pthread_create.c:463
#9  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 13503.13538):
#0  0x00007f243d743bf9 in __GI___poll (fds=0x7f23fc0029e0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2434b255c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2434b256dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f243e2d20bc in QEventDispatcherGlib::processEvents (this=0x7f23fc000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007f243e27163a in QEventLoop::exec (this=this@entry=0x7f24048f4d80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f243e082317 in QThread::exec (this=this@entry=0x55e47954ab00) at thread/qthread.cpp:536
#6  0x00007f2439477605 in QQmlThreadPrivate::run (this=0x55e47954ab00) at qml/ftw/qqmlthread.cpp:155
#7  0x00007f243e0837ec in QThreadPrivate::start (arg=0x55e47954ab00) at thread/qthread_unix.cpp:342
#8  0x00007f243f7406db in start_thread (arg=0x7f24048f5700) at pthread_create.c:463
#9  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 13503.13536):
#0  0x00007f243d743bf9 in __GI___poll (fds=0x7f2400002de0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2434b255c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2434b256dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f243e2d20bc in QEventDispatcherGlib::processEvents (this=0x7f2400000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007f243e27163a in QEventLoop::exec (this=this@entry=0x7f240e738d80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f243e082317 in QThread::exec (this=this@entry=0x55e479382b10) at thread/qthread.cpp:536
#6  0x00007f2439477605 in QQmlThreadPrivate::run (this=0x55e479382b10) at qml/ftw/qqmlthread.cpp:155
#7  0x00007f243e0837ec in QThreadPrivate::start (arg=0x55e479382b10) at thread/qthread_unix.cpp:342
#8  0x00007f243f7406db in start_thread (arg=0x7f240e739700) at pthread_create.c:463
#9  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 13503.13508):
#0  0x00007f243f7469f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e478fa2a58) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55e478fa2a08, cond=0x55e478fa2a30) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55e478fa2a30, mutex=0x55e478fa2a08) at pthread_cond_wait.c:655
#3  0x00007f24167b8ecb in ?? () from target:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f24167b8ac7 in ?? () from target:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f243f7406db in start_thread (arg=0x7f241511b700) at pthread_create.c:463
#6  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 13503.13507):
#0  0x00007f243d743bf9 in __GI___poll (fds=0x7f241c0029e0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2434b255c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2434b256dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f243e2d20bc in QEventDispatcherGlib::processEvents (this=0x7f241c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007f243e27163a in QEventLoop::exec (this=this@entry=0x7f2425751da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f243e082317 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#6  0x00007f243e0837ec in QThreadPrivate::start (arg=0x55e478ee26f0) at thread/qthread_unix.cpp:342
#7  0x00007f243f7406db in start_thread (arg=0x7f2425752700) at pthread_create.c:463
#8  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 13503.13506):
#0  0x00007f243d743bf9 in __GI___poll (fds=0x7f2418002de0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2434b255c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2434b256dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f243e2d20bc in QEventDispatcherGlib::processEvents (this=0x7f2418000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007f243e27163a in QEventLoop::exec (this=this@entry=0x7f2425f52da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f243e082317 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#6  0x00007f243e0837ec in QThreadPrivate::start (arg=0x55e478ee1720) at thread/qthread_unix.cpp:342
#7  0x00007f243f7406db in start_thread (arg=0x7f2425f53700) at pthread_create.c:463
#8  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 13503.13505):
#0  0x00007f243d743bf9 in __GI___poll (fds=0x7f24200175b0, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2434b255c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2434b256dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f243e2d20bc in QEventDispatcherGlib::processEvents (this=0x7f2420000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007f243e27163a in QEventLoop::exec (this=this@entry=0x7f2426db9d70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f243e082317 in QThread::exec (this=this@entry=0x7f243f737da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:536
#6  0x00007f243f4bf555 in QDBusConnectionManager::run (this=0x7f243f737da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#7  0x00007f243e0837ec in QThreadPrivate::start (arg=0x7f243f737da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:342
#8  0x00007f243f7406db in start_thread (arg=0x7f2426dba700) at pthread_create.c:463
#9  0x00007f243d75088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 13503.13503):
#0  0x00007f243f9d581d in KWayland::Server::OutputInterface::clientResources(KWayland::Server::ClientConnection*) const ()
   from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5
#1  0x00007f243fa039bc in KWayland::Server::SurfaceInterface::setOutputs(QVector<KWayland::Server::OutputInterface*> const&) ()
   from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5
#2  0x00007f2440e5ac90 in KWin::XdgShellClient::updateClientOutputs (this=0x55e479b38ec0) at ./xdgshellclient.cpp:1951
#3  0x00007f243e2adfe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0b3abe10, r=0x55e479b38ec0, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#4  doActivate<false> (sender=0x55e478fe0700, signal_index=4, argv=0x7ffe0b3abe10) at kernel/qobject.cpp:3870
#5  0x00007f243e2adfe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0b3abef0, r=0x55e478fe0700, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#6  doActivate<false> (sender=0x55e478ece220, signal_index=3, argv=0x7ffe0b3abef0) at kernel/qobject.cpp:3870
#7  0x00007f243e2a88a2 in QMetaObject::activate (sender=sender@entry=0x55e478ece220, m=m@entry=0x7f2441160240 <KWin::Platform::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3930
#8  0x00007f2440e8c510 in KWin::Platform::screensQueried (this=this@entry=0x55e478ece220) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_platform.cpp:313
#9  0x00007f242638a34e in KWin::DrmBackend::updateOutputs (this=0x55e478ece220) at ./plugins/platforms/drm/drm_backend.cpp:505
#10 0x00007f242638af8a in KWin::DrmBackend::<lambda()>::operator() (__closure=0x55e478fe04d0) at ./plugins/platforms/drm/drm_backend.cpp:374
#11 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::DrmBackend::openDrm()::<lambda()> >::call (arg=<optimized out>, f=...)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
#12 QtPrivate::Functor<KWin::DrmBackend::openDrm()::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
#13 QtPrivate::QFunctorSlotObject<KWin::DrmBackend::openDrm()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=1, this_=0x55e478fe04c0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:439
#14 0x00007f243e2adfe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0b3ac1b0, r=0x55e478ece220, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#15 doActivate<false> (sender=0x55e478fe04e0, signal_index=3, argv=0x7ffe0b3ac1b0) at kernel/qobject.cpp:3870
#16 0x00007f243e2a88a2 in QMetaObject::activate (sender=sender@entry=0x55e478fe04e0, m=m@entry=0x7f243e740bc0 <QSocketNotifier::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe0b3ac1b0) at kernel/qobject.cpp:3930
#17 0x00007f243e2b15c8 in QSocketNotifier::activated (this=this@entry=0x55e478fe04e0, _t1=<optimized out>, _t2=...) at .moc/moc_qsocketnotifier.cpp:141
#18 0x00007f243e2b1982 in QSocketNotifier::event (this=0x55e478fe04e0, e=0x7ffe0b3ac480) at kernel/qsocketnotifier.cpp:266
#19 0x00007f243e8a68bc in QApplicationPrivate::notify_helper (this=this@entry=0x55e478e8ac80, receiver=receiver@entry=0x55e478fe04e0, e=e@entry=0x7ffe0b3ac480)
    at kernel/qapplication.cpp:3684
#20 0x00007f243e8adac0 in QApplication::notify (this=0x7ffe0b3ac890, receiver=0x55e478fe04e0, e=0x7ffe0b3ac480) at kernel/qapplication.cpp:3430
#21 0x00007f243e272db8 in QCoreApplication::notifyInternal2 (receiver=0x55e478fe04e0, event=0x7ffe0b3ac480) at kernel/qcoreapplication.cpp:1092
#22 0x00007f243e2cf283 in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x55e478e99f20) at kernel/qeventdispatcher_unix.cpp:304
#23 0x00007f243e2cf68f in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:509
#24 0x00007f2429fecc2d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from target:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/KWinQpaPlugin.so
#25 0x00007f243e27163a in QEventLoop::exec (this=this@entry=0x7ffe0b3ac630, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#26 0x00007f243e27adb0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1400
#27 0x000055e47736e0df in main (argc=<optimized out>, argv=<optimized out>) at ./main_wayland.cpp:679
Detaching from program: target:/usr/bin/kwin_wayland, process 13503
Ending remote debugging.
Comment 2 David Edmundson 2020-04-06 14:41:41 UTC
Interesting.
Could you get a backtrace with debug symbols of kwayland?
Comment 3 Patrick Silva 2020-04-06 15:02:39 UTC
In fact I do not need to turn external monitor on.
kwin_wayland crashes immediatelly when external monnitor is reconnected in the last step.


Thread 11 (Thread 3805.3843):
#0  0x00007fde995c29f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fde9718afb8 <QTWTF::pageheap_memory+57592>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x7fde9718af68 <QTWTF::pageheap_memory+57512>, cond=0x7fde9718af90 <QTWTF::pageheap_memory+57552>)
    at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x7fde9718af90 <QTWTF::pageheap_memory+57552>, mutex=mutex@entry=0x7fde9718af68 <QTWTF::pageheap_memory+57512>)
    at pthread_cond_wait.c:655
#3  0x00007fde96e95944 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7fde9717cec0 <QTWTF::pageheap_memory>)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#4  0x00007fde96e95989 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#5  0x00007fde995bc6db in start_thread (arg=0x7fde43fff700) at pthread_create.c:463
#6  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 3805.3842):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fde97f01d44 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0, addr=<optimized out>) at thread/qfutex_p.h:116
#2  QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int> > (expectedValue=<optimized out>, futex=...) at thread/qfutex_p.h:135
#3  futexSemaphoreTryAcquire_loop<false> (timeout=-1, nn=8589934593, curValue=<optimized out>, u=...) at thread/qsemaphore.cpp:219
#4  futexSemaphoreTryAcquire<false> (timeout=-1, n=n@entry=1, u=...) at thread/qsemaphore.cpp:262
#5  QSemaphore::acquire (this=this@entry=0x5644fe31ad70, n=n@entry=1) at thread/qsemaphore.cpp:326
#6  0x00007fde81961d7a in QtVirtualKeyboard::HunspellWorker::run (this=0x5644fe31ad50) at hunspellworker.cpp:744
#7  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x5644fe31ad50) at thread/qthread_unix.cpp:342
#8  0x00007fde995bc6db in start_thread (arg=0x7fde50a95700) at pthread_create.c:463
#9  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 3805.3840):
#0  0x00007fde995c29f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5644fe3c1a30) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5644fe3c19e0, cond=0x5644fe3c1a08) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x5644fe3c1a08, mutex=mutex@entry=0x5644fe3c19e0) at pthread_cond_wait.c:655
#3  0x00007fde97f05d9b in QWaitConditionPrivate::wait (deadline=..., this=0x5644fe3c19e0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait (this=<optimized out>, mutex=0x5644fdf45708, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fde97f05f19 in QWaitCondition::wait (this=this@entry=0x5644fdf45710, mutex=mutex@entry=0x5644fdf45708, time=time@entry=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:208
#6  0x00007fde533538eb in FileInfoThread::run (this=0x5644fdf456f8) at fileinfothread.cpp:231
#7  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x5644fdf456f8) at thread/qthread_unix.cpp:342
#8  0x00007fde995bc6db in start_thread (arg=0x7fde51a97700) at pthread_create.c:463
#9  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 3805.3839):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fde97f01d44 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0, addr=<optimized out>) at thread/qfutex_p.h:116
#2  QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int> > (expectedValue=<optimized out>, futex=...) at thread/qfutex_p.h:135
#3  futexSemaphoreTryAcquire_loop<false> (timeout=-1, nn=8589934593, curValue=<optimized out>, u=...) at thread/qsemaphore.cpp:219
#4  futexSemaphoreTryAcquire<false> (timeout=-1, n=n@entry=1, u=...) at thread/qsemaphore.cpp:262
#5  QSemaphore::acquire (this=this@entry=0x5644fe364ff0, n=n@entry=1) at thread/qsemaphore.cpp:326
#6  0x00007fde81961d7a in QtVirtualKeyboard::HunspellWorker::run (this=0x5644fe364fd0) at hunspellworker.cpp:744
#7  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x5644fe364fd0) at thread/qthread_unix.cpp:342
#8  0x00007fde995bc6db in start_thread (arg=0x7fde52298700) at pthread_create.c:463
#9  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 3805.3838):
#0  0x00007fde975bfbf9 in __GI___poll (fds=0x7fde540029e0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fde8e9a15c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fde8e9a16dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fde9814e0bc in QEventDispatcherGlib::processEvents (this=0x7fde54000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fde980ed63a in QEventLoop::exec (this=this@entry=0x7fde5a765d80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fde97efe317 in QThread::exec (this=this@entry=0x5644fe462b00) at thread/qthread.cpp:536
#6  0x00007fde932f3605 in QQmlThreadPrivate::run (this=0x5644fe462b00) at qml/ftw/qqmlthread.cpp:155
#7  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x5644fe462b00) at thread/qthread_unix.cpp:342
#8  0x00007fde995bc6db in start_thread (arg=0x7fde5a766700) at pthread_create.c:463
#9  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 3805.3837):
#0  0x00007fde975bfbf9 in __GI___poll (fds=0x7fde5c002de0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fde8e9a15c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fde8e9a16dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fde9814e0bc in QEventDispatcherGlib::processEvents (this=0x7fde5c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fde980ed63a in QEventLoop::exec (this=this@entry=0x7fde67ffed80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fde97efe317 in QThread::exec (this=this@entry=0x5644fdb12100) at thread/qthread.cpp:536
#6  0x00007fde932f3605 in QQmlThreadPrivate::run (this=0x5644fdb12100) at qml/ftw/qqmlthread.cpp:155
#7  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x5644fdb12100) at thread/qthread_unix.cpp:342
#8  0x00007fde995bc6db in start_thread (arg=0x7fde67fff700) at pthread_create.c:463
#9  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 3805.3809):
#0  0x00007fde995c29f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5644fdb00c08) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5644fdb00bb8, cond=0x5644fdb00be0) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x5644fdb00be0, mutex=0x5644fdb00bb8) at pthread_cond_wait.c:655
#3  0x00007fde7855aecb in ?? () from target:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fde7855aac7 in ?? () from target:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fde995bc6db in start_thread (arg=0x7fde72f7d700) at pthread_create.c:463
#6  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 3805.3808):
#0  0x00007fde975bfbf9 in __GI___poll (fds=0x7fde6c0029e0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fde8e9a15c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fde8e9a16dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fde9814e0bc in QEventDispatcherGlib::processEvents (this=0x7fde6c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fde980ed63a in QEventLoop::exec (this=this@entry=0x7fde7b3ddda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fde97efe317 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#6  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x5644fda7c850) at thread/qthread_unix.cpp:342
#7  0x00007fde995bc6db in start_thread (arg=0x7fde7b3de700) at pthread_create.c:463
#8  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 3805.3807):
#0  0x00007fde975bfbf9 in __GI___poll (fds=0x7fde74002de0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fde8e9a15c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fde8e9a16dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fde9814e0bc in QEventDispatcherGlib::processEvents (this=0x7fde74000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fde980ed63a in QEventLoop::exec (this=this@entry=0x7fde7bbdeda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fde97efe317 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#6  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x5644fda7b880) at thread/qthread_unix.cpp:342
#7  0x00007fde995bc6db in start_thread (arg=0x7fde7bbdf700) at pthread_create.c:463
#8  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 3805.3806):
#0  0x00007fde975bfbf9 in __GI___poll (fds=0x7fde7c0178b0, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fde8e9a15c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fde8e9a16dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fde9814e0bc in QEventDispatcherGlib::processEvents (this=0x7fde7c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fde980ed63a in QEventLoop::exec (this=this@entry=0x7fde80c35d70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fde97efe317 in QThread::exec (this=this@entry=0x7fde995b3da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:536
#6  0x00007fde9933b555 in QDBusConnectionManager::run (this=0x7fde995b3da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#7  0x00007fde97eff7ec in QThreadPrivate::start (arg=0x7fde995b3da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:342
#8  0x00007fde995bc6db in start_thread (arg=0x7fde80c36700) at pthread_create.c:463
#9  0x00007fde975cc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 3805.3805):
#0  0x00007fde9985181d in KWayland::Server::OutputInterface::clientResources(KWayland::Server::ClientConnection*) const ()
   from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5
#1  0x00007fde9987f9bc in KWayland::Server::SurfaceInterface::setOutputs(QVector<KWayland::Server::OutputInterface*> const&) ()
   from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5
#2  0x00007fde9acd6c90 in KWin::XdgShellClient::updateClientOutputs (this=0x5644fded5280) at ./xdgshellclient.cpp:1951
#3  0x00007fde98129fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffdb61e0e50, r=0x5644fded5280, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#4  doActivate<false> (sender=0x5644fdb791b0, signal_index=4, argv=0x7ffdb61e0e50) at kernel/qobject.cpp:3870
#5  0x00007fde98129fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffdb61e0f30, r=0x5644fdb791b0, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#6  doActivate<false> (sender=0x5644fda683a0, signal_index=3, argv=0x7ffdb61e0f30) at kernel/qobject.cpp:3870
#7  0x00007fde981248a2 in QMetaObject::activate (sender=sender@entry=0x5644fda683a0, m=m@entry=0x7fde9afdc240 <KWin::Platform::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3930
#8  0x00007fde9ad08510 in KWin::Platform::screensQueried (this=this@entry=0x5644fda683a0) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_platform.cpp:313
#9  0x00007fde8020634e in KWin::DrmBackend::updateOutputs (this=0x5644fda683a0) at ./plugins/platforms/drm/drm_backend.cpp:505
#10 0x00007fde80206f8a in KWin::DrmBackend::<lambda()>::operator() (__closure=0x5644fdb78f80) at ./plugins/platforms/drm/drm_backend.cpp:374
#11 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::DrmBackend::openDrm()::<lambda()> >::call (arg=<optimized out>, f=...)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
#12 QtPrivate::Functor<KWin::DrmBackend::openDrm()::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
#13 QtPrivate::QFunctorSlotObject<KWin::DrmBackend::openDrm()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=1, this_=0x5644fdb78f70, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:439
#14 0x00007fde98129fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffdb61e11f0, r=0x5644fda683a0, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#15 doActivate<false> (sender=0x5644fdb78f90, signal_index=3, argv=0x7ffdb61e11f0) at kernel/qobject.cpp:3870
#16 0x00007fde981248a2 in QMetaObject::activate (sender=sender@entry=0x5644fdb78f90, m=m@entry=0x7fde985bcbc0 <QSocketNotifier::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdb61e11f0) at kernel/qobject.cpp:3930
#17 0x00007fde9812d5c8 in QSocketNotifier::activated (this=this@entry=0x5644fdb78f90, _t1=<optimized out>, _t2=...) at .moc/moc_qsocketnotifier.cpp:141
#18 0x00007fde9812d982 in QSocketNotifier::event (this=0x5644fdb78f90, e=0x7ffdb61e14c0) at kernel/qsocketnotifier.cpp:266
#19 0x00007fde987228bc in QApplicationPrivate::notify_helper (this=this@entry=0x5644fda24c80, receiver=receiver@entry=0x5644fdb78f90, e=e@entry=0x7ffdb61e14c0)
    at kernel/qapplication.cpp:3684
#20 0x00007fde98729ac0 in QApplication::notify (this=0x7ffdb61e18d0, receiver=0x5644fdb78f90, e=0x7ffdb61e14c0) at kernel/qapplication.cpp:3430
#21 0x00007fde980eedb8 in QCoreApplication::notifyInternal2 (receiver=0x5644fdb78f90, event=0x7ffdb61e14c0) at kernel/qcoreapplication.cpp:1092
#22 0x00007fde9814b283 in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x5644fda33ed0) at kernel/qeventdispatcher_unix.cpp:304
#23 0x00007fde9814b68f in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:509
#24 0x00007fde83e68c2d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from target:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/KWinQpaPlugin.so
#25 0x00007fde980ed63a in QEventLoop::exec (this=this@entry=0x7ffdb61e1670, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#26 0x00007fde980f6db0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1400
#27 0x00005644fd7250df in main (argc=<optimized out>, argv=<optimized out>) at ./main_wayland.cpp:679
Detaching from program: target:/usr/bin/kwin_wayland, process 3805
Ending remote debugging.
Comment 4 kde.org 2021-11-04 13:48:10 UTC
Can you still reproduce this issue with the KDE 5.23?
Comment 5 kde.org 2021-11-04 14:47:20 UTC
I had a look at the involved code and noticed that it has been rewritten substantially in the mean time. If the problem still persists, please provide a new backtrace.
Comment 6 Patrick Silva 2021-11-04 17:20:19 UTC
I'm unable to reproduce on neon unstable.