https://bugs.kde.org/show_bug.cgi?id=419742

            Bug ID: 419742
           Summary: kwin_wayland crashed on switching between "Switch to
                    laptop screen" and "Switch to external screen"
                    multi-monitor modes
           Product: kwin
           Version: git 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. start Wayland session
2. connect an external monitor to hdmi port and turn it on
3. set multi-monitor mode to "Switch to laptop screen"
4. switch to "Switch to external screen" multi-monitor mode

OBSERVED RESULT
kwin_wayland crash

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

Thread 11 (Thread 1742.1780):
#0  0x00007fa5c161c9f3 in futex_wait_cancelable (private=<optimized out>,
expected=0, futex_word=0x7fa5bf1e4fb8 <QTWTF::pageheap_memory+57592>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x7fa5bf1e4f68
<QTWTF::pageheap_memory+57512>, cond=0x7fa5bf1e4f90
<QTWTF::pageheap_memory+57552>)
    at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x7fa5bf1e4f90
<QTWTF::pageheap_memory+57552>, mutex=mutex@entry=0x7fa5bf1e4f68
<QTWTF::pageheap_memory+57512>)
    at pthread_cond_wait.c:655
#3  0x00007fa5beeef944 in QTWTF::TCMalloc_PageHeap::scavengerThread
(this=0x7fa5bf1d6ec0 <QTWTF::pageheap_memory>)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#4  0x00007fa5beeef989 in QTWTF::TCMalloc_PageHeap::runScavengerThread
(context=<optimized out>) at
../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#5  0x00007fa5c16166db in start_thread (arg=0x7fa56bfff700) at
pthread_create.c:463
#6  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 1742.1779):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fa5bff5bd44 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=0x55d949cd3710, n=n@entry=1) at
thread/qsemaphore.cpp:326
#6  0x00007fa5a99bbd7a in QtVirtualKeyboard::HunspellWorker::run
(this=0x55d949cd36f0) at hunspellworker.cpp:744
#7  0x00007fa5bff597ec in QThreadPrivate::start (arg=0x55d949cd36f0) at
thread/qthread_unix.cpp:342
#8  0x00007fa5c16166db in start_thread (arg=0x7fa578a95700) at
pthread_create.c:463
#9  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 1742.1777):
#0  0x00007fa5c161c9f3 in futex_wait_cancelable (private=<optimized out>,
expected=0, futex_word=0x55d949bc1770) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55d949bc1720,
cond=0x55d949bc1748) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x55d949bc1748,
mutex=mutex@entry=0x55d949bc1720) at pthread_cond_wait.c:655
#3  0x00007fa5bff5fd9b in QWaitConditionPrivate::wait (deadline=...,
this=0x55d949bc1720) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait (this=<optimized out>, mutex=0x55d949bc15f8,
deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fa5bff5ff19 in QWaitCondition::wait (this=this@entry=0x55d949bc1600,
mutex=mutex@entry=0x55d949bc15f8, time=time@entry=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:208
#6  0x00007fa57b3538eb in FileInfoThread::run (this=0x55d949bc15e8) at
fileinfothread.cpp:231
#7  0x00007fa5bff597ec in QThreadPrivate::start (arg=0x55d949bc15e8) at
thread/qthread_unix.cpp:342
#8  0x00007fa5c16166db in start_thread (arg=0x7fa579a97700) at
pthread_create.c:463
#9  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 1742.1776):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fa5bff5bd44 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0,
val=<optimized out>, op=0, addr=<optimized out>) at thread/qfutex_p.h:116
---Type <return> to continue, or q <return> to quit---
#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=0x55d949bf7410, n=n@entry=1) at
thread/qsemaphore.cpp:326
#6  0x00007fa5a99bbd7a in QtVirtualKeyboard::HunspellWorker::run
(this=0x55d949bf73f0) at hunspellworker.cpp:744
#7  0x00007fa5bff597ec in QThreadPrivate::start (arg=0x55d949bf73f0) at
thread/qthread_unix.cpp:342
#8  0x00007fa5c16166db in start_thread (arg=0x7fa57a298700) at
pthread_create.c:463
#9  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 1742.1775):
#0  0x00007fa5bf619bf9 in __GI___poll (fds=0x7fa57c0029e0, nfds=1, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fa5b69fb5c9 in ?? () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa5b69fb6dc in g_main_context_iteration () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa5c01a80bc in QEventDispatcherGlib::processEvents
(this=0x7fa57c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fa5c014763a in QEventLoop::exec (this=this@entry=0x7fa5827c8d80,
flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fa5bff58317 in QThread::exec (this=this@entry=0x55d949a4f010) at
thread/qthread.cpp:536
#6  0x00007fa5bb34d605 in QQmlThreadPrivate::run (this=0x55d949a4f010) at
qml/ftw/qqmlthread.cpp:155
#7  0x00007fa5bff597ec in QThreadPrivate::start (arg=0x55d949a4f010) at
thread/qthread_unix.cpp:342
#8  0x00007fa5c16166db in start_thread (arg=0x7fa5827c9700) at
pthread_create.c:463
#9  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 1742.1774):
#0  0x00007fa5bf619bf9 in __GI___poll (fds=0x7fa584002de0, nfds=1, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fa5b69fb5c9 in ?? () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa5b69fb6dc in g_main_context_iteration () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa5c01a80bc in QEventDispatcherGlib::processEvents
(this=0x7fa584000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fa5c014763a in QEventLoop::exec (this=this@entry=0x7fa58fffed80,
flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fa5bff58317 in QThread::exec (this=this@entry=0x55d9495b6670) at
thread/qthread.cpp:536
#6  0x00007fa5bb34d605 in QQmlThreadPrivate::run (this=0x55d9495b6670) at
qml/ftw/qqmlthread.cpp:155
#7  0x00007fa5bff597ec in QThreadPrivate::start (arg=0x55d9495b6670) at
thread/qthread_unix.cpp:342
#8  0x00007fa5c16166db in start_thread (arg=0x7fa58ffff700) at
pthread_create.c:463
#9  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 1742.1745):
#0  0x00007fa5bf619bf9 in __GI___poll (fds=0x7fa5940029e0, nfds=2, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fa5b69fb5c9 in ?? () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa5b69fb6dc in g_main_context_iteration () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa5c01a80bc in QEventDispatcherGlib::processEvents
(this=0x7fa594000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fa5c014763a in QEventLoop::exec (this=this@entry=0x7fa5a35eeda0,
flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fa5bff58317 in QThread::exec (this=<optimized out>) at
thread/qthread.cpp:536
#6  0x00007fa5bff597ec in QThreadPrivate::start (arg=0x55d949114470) at
thread/qthread_unix.cpp:342
#7  0x00007fa5c16166db in start_thread (arg=0x7fa5a35ef700) at
pthread_create.c:463
---Type <return> to continue, or q <return> to quit---
#8  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 1742.1744):
#0  0x00007fa5bf619bf9 in __GI___poll (fds=0x7fa59c002de0, nfds=2, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fa5b69fb5c9 in ?? () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa5b69fb6dc in g_main_context_iteration () from
target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa5c01a80bc in QEventDispatcherGlib::processEvents
(this=0x7fa59c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007fa5c014763a in QEventLoop::exec (this=this@entry=0x7fa5a3defda0,
flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fa5bff58317 in QThread::exec (this=<optimized out>) at
thread/qthread.cpp:536
#6  0x00007fa5bff597ec in QThreadPrivate::start (arg=0x55d9491134a0) at
thread/qthread_unix.cpp:342
#7  0x00007fa5c16166db in start_thread (arg=0x7fa5a3df0700) at
pthread_create.c:463
#8  0x00007fa5bf62688f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 1742.1742):
#0  0x00007fa5a1d93480 in ?? ()
#1  0x00007fa5a827675b in KWin::DrmSurfaceBuffer::releaseGbm
(this=0x55d9498f4a60) at ./plugins/platforms/drm/drm_buffer_gbm.cpp:65
#2  KWin::DrmSurfaceBuffer::~DrmSurfaceBuffer (this=0x55d9498f4a60,
__in_chrg=<optimized out>) at ./plugins/platforms/drm/drm_buffer_gbm.cpp:60
#3  0x00007fa5a8276829 in KWin::DrmSurfaceBuffer::~DrmSurfaceBuffer
(this=0x55d9498f4a60, __in_chrg=<optimized out>) at
./plugins/platforms/drm/drm_buffer_gbm.cpp:61
#4  0x00007fa5a8266fc2 in KWin::DrmPlane::~DrmPlane (this=0x55d94921b3f0,
__in_chrg=<optimized out>) at ./plugins/platforms/drm/drm_object_plane.cpp:35
#5  0x00007fa5a8266fd9 in KWin::DrmPlane::~DrmPlane (this=0x55d94921b3f0,
__in_chrg=<optimized out>) at ./plugins/platforms/drm/drm_object_plane.cpp:37
#6  0x00007fa5a825d8bf in qDeleteAll<KWin::DrmPlane* const*> (end=<optimized
out>, begin=0x55d94920f628) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:320
#7  qDeleteAll<QVector<KWin::DrmPlane*> > (c=...) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:328
#8  KWin::DrmBackend::~DrmBackend (this=0x55d9491057e0, __in_chrg=<optimized
out>) at ./plugins/platforms/drm/drm_backend.cpp:101
#9  0x00007fa5a825dbe9 in KWin::DrmBackend::~DrmBackend (this=0x55d9491057e0,
__in_chrg=<optimized out>) at ./plugins/platforms/drm/drm_backend.cpp:106
#10 0x00007fa5c013d3c7 in QLibraryPrivate::unload (this=0x55d949105150,
flag=QLibraryPrivate::NoUnloadSys) at plugin/qlibrary.cpp:579
#11 0x00007fa5c013f6fe in QLibraryStore::cleanup () at plugin/qlibrary.cpp:416
#12 qlibraryCleanup () at plugin/qlibrary.cpp:440
#13 (anonymous
namespace)::qlibraryCleanup_dtor_class_::~qlibraryCleanup_dtor_class_
(this=<optimized out>, __in_chrg=<optimized out>) at plugin/qlibrary.cpp:442
#14 0x00007fa5bf548615 in __cxa_finalize (d=0x7fa5c0619960) at
cxa_finalize.c:83
#15 0x00007fa5bff367a3 in __do_global_dtors_aux () from
target:/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffc27ad0db0 in ?? ()

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to