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.

Reply via email to