https://bugs.kde.org/show_bug.cgi?id=444961
Bug ID: 444961 Summary: kwin_wayland crashes in a loop when I try to start Plasma with external monitor connected and multi-monitor mode set to 'Switch to external screen' Product: kwin Version: master Platform: Neon Packages OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: wayland-generic Assignee: kwin-bugs-n...@kde.org Reporter: bugsefor...@gmx.com Target Milestone: --- STEPS TO REPRODUCE 1. use Wayland 2. connect an external monitor and set multi-monitor mode to 'Switch to external screen' 3. logout 4. try to login OBSERVED RESULT kwin_wayland crashes in a loop EXPECTED RESULT no crash SOFTWARE/OS VERSIONS Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.23.80 KDE Frameworks Version: 5.88.0 Qt Version: 5.15.3 Kernel Version: 5.11.0-38-generic (64-bit) Graphics Platform: Wayland Processors: 4 × Intel® Core™ i3-3110M CPU @ 2.40GHz Memory: 7.7 GiB of RAM Graphics Processor: Mesa DRI Intel® HD Graphics 4000 Thread 10 (Thread 0x7fc1ebfff700 (LWP 11573)): #0 futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fc1ebffeb50, clockid=<optimized out>, expected=0, futex_word=0x5630b9c3db94) at ../sysdeps/nptl/futex-internal.h:320 #1 __pthread_cond_wait_common (abstime=0x7fc1ebffeb50, clockid=<optimized out>, mutex=0x5630b9c3db40, cond=0x5630b9c3db68) at pthread_cond_wait.c:520 #2 __pthread_cond_timedwait (cond=cond@entry=0x5630b9c3db68, mutex=mutex@entry=0x5630b9c3db40, abstime=abstime@entry=0x7fc1ebffeb50) at pthread_cond_wait.c:665 #3 0x00007fc215d5a558 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x5630b9c3db40, deadline=...) at thread/qwaitcondition_unix.cpp:136 #4 QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x5630b9c3db40) at thread/qwaitcondition_unix.cpp:144 #5 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x5630b9c334b0, mutex=mutex@entry=0x5630b99c6dd8, deadline=...) at thread/qwaitcondition_unix.cpp:225 #6 0x00007fc215d57a61 in QThreadPoolThread::run() (this=0x5630b9c334a0) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:275 #7 0x00007fc215d5445c in QThreadPrivate::start(void*) (arg=0x5630b9c334a0) at thread/qthread_unix.cpp:329 #8 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #9 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 9 (Thread 0x7fc20ecf7700 (LWP 11557)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5630b915c6c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5630b915c678, cond=0x5630b915c6a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x5630b915c6a0, mutex=0x5630b915c678) at pthread_cond_wait.c:647 #3 0x00007fc20f059a4b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007fc20f05964b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 8 (Thread 0x7fc1f17ce700 (LWP 11571)): #0 0x00007fc21563daff in __GI___poll (fds=0x7fc1e4005240, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc213ba936e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fc1e4005240, timeout=<optimized out>, context=0x7fc1e4000c20) at ../../../glib/gmain.c:4346 #2 g_main_context_iterate (context=context@entry=0x7fc1e4000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042 #3 0x00007fc213ba94a3 in g_main_context_iteration (context=0x7fc1e4000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108 #4 0x00007fc215f95602 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fc1e4000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #5 0x00007fc215f398ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fc1f17cdbc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #6 0x00007fc215d532c2 in QThread::exec() (this=this@entry=0x5630b9a01b10) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007fc217608549 in QQmlThreadPrivate::run() (this=0x5630b9a01b10) at qml/ftw/qqmlthread.cpp:155 #8 0x00007fc215d5445c in QThreadPrivate::start(void*) (arg=0x5630b9a01b10) at thread/qthread_unix.cpp:329 #9 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #10 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 7 (Thread 0x7fc1f2173700 (LWP 11570)): #0 futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fc1f2172b50, clockid=<optimized out>, expected=0, futex_word=0x5630b99c7670) at ../sysdeps/nptl/futex-internal.h:320 #1 __pthread_cond_wait_common (abstime=0x7fc1f2172b50, clockid=<optimized out>, mutex=0x5630b99c7620, cond=0x5630b99c7648) at pthread_cond_wait.c:520 #2 __pthread_cond_timedwait (cond=cond@entry=0x5630b99c7648, mutex=mutex@entry=0x5630b99c7620, abstime=abstime@entry=0x7fc1f2172b50) at pthread_cond_wait.c:665 #3 0x00007fc215d5a558 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x5630b99c7620, deadline=...) at thread/qwaitcondition_unix.cpp:136 #4 QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x5630b99c7620) at thread/qwaitcondition_unix.cpp:144 #5 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x5630b99cb5b0, mutex=mutex@entry=0x5630b99c6dd8, deadline=...) at thread/qwaitcondition_unix.cpp:225 #6 0x00007fc215d57a61 in QThreadPoolThread::run() (this=0x5630b99cb5a0) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:275 #7 0x00007fc215d5445c in QThreadPrivate::start(void*) (arg=0x5630b99cb5a0) at thread/qthread_unix.cpp:329 #8 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #9 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 6 (Thread 0x7fc20e4f6700 (LWP 11558)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5630b915c6c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5630b915c678, cond=0x5630b915c6a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x5630b915c6a0, mutex=0x5630b915c678) at pthread_cond_wait.c:647 #3 0x00007fc20f059a4b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007fc20f05964b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 5 (Thread 0x7fc20d4f4700 (LWP 11560)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5630b915c6c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5630b915c678, cond=0x5630b915c6a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x5630b915c6a0, mutex=0x5630b915c678) at pthread_cond_wait.c:647 #3 0x00007fc20f059a4b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007fc20f05964b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 4 (Thread 0x7fc20dcf5700 (LWP 11559)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5630b915c6c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5630b915c678, cond=0x5630b915c6a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x5630b915c6a0, mutex=0x5630b915c678) at pthread_cond_wait.c:647 #3 0x00007fc20f059a4b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007fc20f05964b in () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 3 (Thread 0x7fc21064f700 (LWP 11555)): #0 0x00007fc21563daff in __GI___poll (fds=0x7fc2080053c0, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc213ba936e in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0x7fc2080053c0, timeout=<optimized out>, context=0x7fc208001ce0) at ../../../glib/gmain.c:4346 #2 g_main_context_iterate (context=context@entry=0x7fc208001ce0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042 #3 0x00007fc213ba94a3 in g_main_context_iteration (context=0x7fc208001ce0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108 #4 0x00007fc215f95602 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fc208000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #5 0x00007fc215f398ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fc21064ebb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #6 0x00007fc215d532c2 in QThread::exec() (this=this@entry=0x7fc21853bd80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007fc2184b7f4b in QDBusConnectionManager::run() (this=0x7fc21853bd80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179 #8 0x00007fc215d5445c in QThreadPrivate::start(void*) (arg=0x7fc21853bd80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329 #9 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #10 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 0x7fc20ccf3700 (LWP 11561)): #0 0x00007fc21563daff in __GI___poll (fds=0x7fc1f8005240, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fc213ba936e in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7fc1f8005240, timeout=<optimized out>, context=0x7fc1f8000c20) at ../../../glib/gmain.c:4346 #2 g_main_context_iterate (context=context@entry=0x7fc1f8000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042 #3 0x00007fc213ba94a3 in g_main_context_iteration (context=0x7fc1f8000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108 #4 0x00007fc215f95602 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fc1f8000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #5 0x00007fc215f398ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fc20ccf2be0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #6 0x00007fc215d532c2 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007fc215d5445c in QThreadPrivate::start(void*) (arg=0x5630b9017d50) at thread/qthread_unix.cpp:329 #8 0x00007fc215b37609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #9 0x00007fc21564a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 0x7fc210e1e680 (LWP 11552)): #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007fc21554d92e in __GI_abort () at abort.c:100 #2 0x00007fc215c0db87 in () at /lib/x86_64-linux-gnu/libepoxy.so.0 #3 0x00007fc215c1121b in () at /lib/x86_64-linux-gnu/libepoxy.so.0 #4 0x00007fc20fe02376 in KWin::EglDmabuf::createImage(QVector<KWaylandServer::LinuxDmaBufV1Plane> const&, unsigned int, QSize const&) (this=this@entry=0x5630b94638f0, planes=..., format=format@entry=875713089, size=...) at ./src/platformsupport/scenes/opengl/abstract_egl_backend.h:48 #5 0x00007fc20fe0278b in KWin::EglDmabuf::importBuffer(QVector<KWaylandServer::LinuxDmaBufV1Plane> const&, unsigned int, QSize const&, unsigned int) (this=0x5630b94638f0, planes=..., format=875713089, size=..., flags=0) at ./src/platformsupport/scenes/opengl/egl_dmabuf.cpp:257 #6 0x00007fc217e20581 in KWaylandServer::LinuxDmaBufParamsV1::zwp_linux_buffer_params_v1_create_immed(QtWaylandServer::zwp_linux_buffer_params_v1::Resource*, unsigned int, int, int, unsigned int, unsigned int) (this=0x7fc208022ff0, resource=0x5630b91b2730, buffer_id=60, width=1920, height=1080, format=875713089, flags=0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsize.h:125 #7 0x00007fc2137d3ff5 in ffi_call_unix64 () at ../src/x86/unix64.S:101 #8 0x00007fc2137d340a in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:669 #9 0x00007fc214d11628 in wl_closure_invoke (closure=0x5630b9f1f2f0, flags=2, target=<optimized out>, opcode=3, data=<optimized out>) at ../src/connection.c:1018 #10 0x00007fc214d0d9e2 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x5630b9f4da10) at ../src/wayland-server.c:432 #11 0x00007fc214d0f65a in wl_event_loop_dispatch (loop=0x5630b8fd25e0, timeout=timeout@entry=0) at ../src/event-loop.c:1027 #12 0x00007fc217e1163c in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at ./src/server/display.cpp:114 #13 0x00007fc215f71dce in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff7bd09220, r=0x5630b8fec420, this=0x5630b9b09160) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #14 doActivate<false>(QObject*, int, void**) (sender=0x5630b9b8e900, signal_index=3, argv=0x7fff7bd09220) at kernel/qobject.cpp:3886 #15 0x00007fc215f6b197 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x5630b9b8e900, m=m@entry=0x7fc2161d6b40 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff7bd09220) at kernel/qobject.cpp:3946 #16 0x00007fc215f75e53 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x5630b9b8e900, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #17 0x00007fc215f765f3 in QSocketNotifier::event(QEvent*) (this=0x5630b9b8e900, e=0x7fff7bd094f0) at kernel/qsocketnotifier.cpp:302 #18 0x00007fc216a48dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x5630b8fae5d0, receiver=receiver@entry=0x5630b9b8e900, e=e@entry=0x7fff7bd094f0) at kernel/qapplication.cpp:3632 #19 0x00007fc216a51bb8 in QApplication::notify(QObject*, QEvent*) (this=0x7fff7bd09920, receiver=0x5630b9b8e900, e=0x7fff7bd094f0) at kernel/qapplication.cpp:3156 #20 0x00007fc215f3adaa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5630b9b8e900, event=0x7fff7bd094f0) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325 #21 0x00007fc215f9282b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x5630b8fb7ee0) at kernel/qeventdispatcher_unix.cpp:304 #22 0x00007fc215f92c8b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511 #23 0x00005630b7f39141 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () #24 0x00007fc215f398ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff7bd09680, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #25 0x00007fc215f41a64 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #26 0x00005630b7e17cf1 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/main_wayland.cpp:740 -- You are receiving this mail because: You are watching all bug changes.