Bug 411980 - Wayland session crashes after I change some settings in system settings
Summary: Wayland session crashes after I change some settings in system settings
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.16.90
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 412915 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-09-16 19:05 UTC by Patrick Silva
Modified: 2019-10-29 11:10 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.17.2


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2019-09-16 19:05:32 UTC
SUMMARY
kwin_wayland crashes after I change...
Global theme
window decoration
any font setting
task switcher (I changed from default theme to Large Icons)

STEPS TO REPRODUCE
1. start Wayland session
2. open system settings
3. change any setting mentioned above
4. click "Apply" button

OBSERVED RESULT
Plasma session freezes and Neon goes to login screen after a few seconds

EXPECTED RESULT
Wayland session never crashes

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.16.80
KDE Frameworks Version: 5.63.0
Qt Version: 5.12.3
Kernel Version: 5.2.5-050205-generic

ADDITIONAL INFORMATION
the following backtrace was generated after I change Global Theme from breeze dark to breeze


Thread 12 (Thread 7288.7724):
#0  0x00007f2a8a9d9ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7f2a5da01b60, expected=0, futex_word=0x564781258d14)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7f2a5da01c20, mutex=0x564781258cc0, cond=0x564781258ce8) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=cond@entry=0x564781258ce8, mutex=mutex@entry=0x564781258cc0, abstime=abstime@entry=0x7f2a5da01c20)
    at pthread_cond_wait.c:667
#3  0x00007f2a89369d36 in QWaitConditionPrivate::wait_relative (this=0x564781258cc0, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4  QWaitConditionPrivate::wait (deadline=..., this=0x564781258cc0) at thread/qwaitcondition_unix.cpp:144
#5  QWaitCondition::wait (this=<optimized out>, mutex=0x564780c06e10, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6  0x00007f2a8936a096 in QWaitCondition::wait (this=this@entry=0x564781258b00, mutex=mutex@entry=0x564780c06e10, time=<optimized out>)
    at thread/qwaitcondition_unix.cpp:209
#7  0x00007f2a89367740 in QThreadPoolThread::run (this=0x564781258af0) at thread/qthreadpool.cpp:139
#8  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x564781258af0) at thread/qthread_unix.cpp:361
#9  0x00007f2a8a9d36db in start_thread (arg=0x7f2a5da02700) at pthread_create.c:463
#10 0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 7288.7723):
#0  0x00007f2a8a9d9ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7f2a3ddafb60, expected=0, futex_word=0x564780c48be4)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7f2a3ddafc20, mutex=0x564780c48b90, cond=0x564780c48bb8) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=cond@entry=0x564780c48bb8, mutex=mutex@entry=0x564780c48b90, abstime=abstime@entry=0x7f2a3ddafc20)
    at pthread_cond_wait.c:667
#3  0x00007f2a89369d36 in QWaitConditionPrivate::wait_relative (this=0x564780c48b90, deadline=...) at thread/qwaitcondition_unix.cpp:136
#4  QWaitConditionPrivate::wait (deadline=..., this=0x564780c48b90) at thread/qwaitcondition_unix.cpp:144
#5  QWaitCondition::wait (this=<optimized out>, mutex=0x564780c06e10, deadline=...) at thread/qwaitcondition_unix.cpp:225
#6  0x00007f2a8936a096 in QWaitCondition::wait (this=this@entry=0x564780b550d0, mutex=mutex@entry=0x564780c06e10, time=<optimized out>)
    at thread/qwaitcondition_unix.cpp:209
#7  0x00007f2a89367740 in QThreadPoolThread::run (this=0x564780b550c0) at thread/qthreadpool.cpp:139
#8  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x564780b550c0) at thread/qthread_unix.cpp:361
#9  0x00007f2a8a9d36db in start_thread (arg=0x7f2a3ddb0700) at pthread_create.c:463
#10 0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 7288.7327):
#0  0x00007f2a8a9d99f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f2a883b3fb8 <QTWTF::pageheap_memory+57592>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x7f2a883b3f68 <QTWTF::pageheap_memory+57512>, 
    cond=0x7f2a883b3f90 <QTWTF::pageheap_memory+57552>) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x7f2a883b3f90 <QTWTF::pageheap_memory+57552>, 
    mutex=mutex@entry=0x7f2a883b3f68 <QTWTF::pageheap_memory+57512>) at pthread_cond_wait.c:655
#3  0x00007f2a880bd844 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f2a883a5ec0 <QTWTF::pageheap_memory>)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#4  0x00007f2a880bd889 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#5  0x00007f2a8a9d36db in start_thread (arg=0x7f2a3d5af700) at pthread_create.c:463
#6  0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 7288.7325):
#0  0x00007f2a8a9d99f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5647810dbc40)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5647810dbbf0, cond=0x5647810dbc18) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=cond@entry=0x5647810dbc18, mutex=mutex@entry=0x5647810dbbf0) at pthread_cond_wait.c:655
#3  0x00007f2a89369dbb in QWaitConditionPrivate::wait (deadline=..., this=0x5647810dbbf0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait (this=<optimized out>, mutex=0x5647810dba28, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007f2a8936a0c9 in QWaitCondition::wait (this=this@entry=0x5647810dba30, mutex=mutex@entry=0x5647810dba28, 
    time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#6  0x00007f2a4c09172b in FileInfoThread::run (this=0x5647810dba18) at fileinfothread.cpp:228
#7  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x5647810dba18) at thread/qthread_unix.cpp:361
#8  0x00007f2a8a9d36db in start_thread (arg=0x7f2a3e5b1700) at pthread_create.c:463
#9  0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 7288.7320):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f2a89365354 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0, addr=<optimized out>)
    at thread/qfutex_p.h:92
#2  QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int> > (expectedValue=<optimized out>, futex=...) at thread/qfutex_p.h:107
#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=0x5647812281d0, n=n@entry=1) at thread/qsemaphore.cpp:326
#6  0x00007f2a722b14ca in QtVirtualKeyboard::HunspellWorker::run (this=0x5647812281b0) at hunspellworker.cpp:744
#7  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x5647812281b0) at thread/qthread_unix.cpp:361
#8  0x00007f2a8a9d36db in start_thread (arg=0x7f2a473e4700) at pthread_create.c:463
#9  0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 7288.7319):
#0  0x00007f2a88a2dbf9 in __GI___poll (fds=0x7f2a48004660, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2a7f8b85c9 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f2a48004660, timeout=<optimized out>, 
    context=0x7f2a48000bf0) at ../../../../glib/gmain.c:4203
#2  g_main_context_iterate (context=context@entry=0x7f2a48000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../../glib/gmain.c:3897
#3  0x00007f2a7f8b86dc in g_main_context_iteration (context=0x7f2a48000bf0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#4  0x00007f2a89598daf in QEventDispatcherGlib::processEvents (this=0x7f2a48000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#5  0x00007f2a8953a03a in QEventLoop::exec (this=this@entry=0x7f2a4f3b1d00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f2a893614ca in QThread::exec (this=this@entry=0x5647810c33e0) at thread/qthread.cpp:531
#7  0x00007f2a83f17115 in QQmlThreadPrivate::run (this=0x5647810c33e0) at qml/ftw/qqmlthread.cpp:148
#8  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x5647810c33e0) at thread/qthread_unix.cpp:361
#9  0x00007f2a8a9d36db in start_thread (arg=0x7f2a4f3b2700) at pthread_create.c:463
#10 0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 7288.7318):
#0  0x00007f2a88a2dbf9 in __GI___poll (fds=0x7f2a54003ce0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2a7f8b85c9 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f2a54003ce0, timeout=<optimized out>, 
    context=0x7f2a54000bf0) at ../../../../glib/gmain.c:4203
#2  g_main_context_iterate (context=context@entry=0x7f2a54000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../../glib/gmain.c:3897
#3  0x00007f2a7f8b86dc in g_main_context_iteration (context=0x7f2a54000bf0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#4  0x00007f2a89598daf in QEventDispatcherGlib::processEvents (this=0x7f2a54000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#5  0x00007f2a8953a03a in QEventLoop::exec (this=this@entry=0x7f2a5cdadd00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f2a893614ca in QThread::exec (this=this@entry=0x564780febf40) at thread/qthread.cpp:531
#7  0x00007f2a83f17115 in QQmlThreadPrivate::run (this=0x564780febf40) at qml/ftw/qqmlthread.cpp:148
#8  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x564780febf40) at thread/qthread_unix.cpp:361
#9  0x00007f2a8a9d36db in start_thread (arg=0x7f2a5cdae700) at pthread_create.c:463
#10 0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 7288.7292):
#0  0x00007f2a8a9d99f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x564780bca128)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x564780bca0d8, cond=0x564780bca100) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x564780bca100, mutex=0x564780bca0d8) at pthread_cond_wait.c:655
#3  0x00007f2a689f20aa in ?? () from target:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f2a689f1dd7 in ?? () from target:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f2a8a9d36db in start_thread (arg=0x7f2a5f5b4700) at pthread_create.c:463
#6  0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 7288.7291):
#0  0x00007f2a88a2dbf9 in __GI___poll (fds=0x7f2a600046c0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2a7f8b85c9 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7f2a600046c0, timeout=<optimized out>, 
    context=0x7f2a60000bf0) at ../../../../glib/gmain.c:4203
#2  g_main_context_iterate (context=context@entry=0x7f2a60000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../../glib/gmain.c:3897
#3  0x00007f2a7f8b86dc in g_main_context_iteration (context=0x7f2a60000bf0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#4  0x00007f2a89598daf in QEventDispatcherGlib::processEvents (this=0x7f2a60000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#5  0x00007f2a8953a03a in QEventLoop::exec (this=this@entry=0x7f2a6bffed20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f2a893614ca in QThread::exec (this=<optimized out>) at thread/qthread.cpp:531
#7  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x564780b55790) at thread/qthread_unix.cpp:361
#8  0x00007f2a8a9d36db in start_thread (arg=0x7f2a6bfff700) at pthread_create.c:463
#9  0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 7288.7290):
#0  0x00007f2a88a2dbf9 in __GI___poll (fds=0x7f2a64003ce0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2a7f8b85c9 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7f2a64003ce0, timeout=<optimized out>, 
    context=0x7f2a64000bf0) at ../../../../glib/gmain.c:4203
#2  g_main_context_iterate (context=context@entry=0x7f2a64000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../../glib/gmain.c:3897
#3  0x00007f2a7f8b86dc in g_main_context_iteration (context=0x7f2a64000bf0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#4  0x00007f2a89598daf in QEventDispatcherGlib::processEvents (this=0x7f2a64000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#5  0x00007f2a8953a03a in QEventLoop::exec (this=this@entry=0x7f2a70927d20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f2a893614ca in QThread::exec (this=<optimized out>) at thread/qthread.cpp:531
#7  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x564780b0b4c0) at thread/qthread_unix.cpp:361
#8  0x00007f2a8a9d36db in start_thread (arg=0x7f2a70928700) at pthread_create.c:463
#9  0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 7288.7289):
#0  0x00007f2a88a2dbf9 in __GI___poll (fds=0x7f2a6c0174c0, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2a7f8b85c9 in g_main_context_poll (priority=<optimized out>, n_fds=4, fds=0x7f2a6c0174c0, timeout=<optimized out>, 
    context=0x7f2a6c001cb0) at ../../../../glib/gmain.c:4203
#2  g_main_context_iterate (context=context@entry=0x7f2a6c001cb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../../glib/gmain.c:3897
#3  0x00007f2a7f8b86dc in g_main_context_iteration (context=0x7f2a6c001cb0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#4  0x00007f2a89598daf in QEventDispatcherGlib::processEvents (this=0x7f2a6c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#5  0x00007f2a8953a03a in QEventLoop::exec (this=this@entry=0x7f2a7178ccf0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f2a893614ca in QThread::exec (this=this@entry=0x7f2a8a9cad80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
    at thread/qthread.cpp:531
#7  0x00007f2a8a753015 in QDBusConnectionManager::run (this=0x7f2a8a9cad80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
    at qdbusconnection.cpp:178
#8  0x00007f2a89362c72 in QThreadPrivate::start (arg=0x7f2a8a9cad80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
    at thread/qthread_unix.cpp:361
#9  0x00007f2a8a9d36db in start_thread (arg=0x7f2a7178d700) at pthread_create.c:463
#10 0x00007f2a88a3a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 7288.7288):
#0  0x00007f2a8ac5ed3c in KWayland::Server::LinuxDmabufUnstableV1Interface::Private::Params::create(wl_client*, unsigned int, QSize const&, unsigned int, unsigned int) () from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5
#1  0x00007f2a8ac5f05f in KWayland::Server::LinuxDmabufUnstableV1Interface::Private::Params::createImmed(wl_client*, wl_resource*, unsigned int, int, int, unsigned int, unsigned int) () from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5
#2  0x00007f2a7b12adae in ffi_call_unix64 () at ../src/x86/unix64.S:76
#3  0x00007f2a7b12a71f in ffi_call (cif=cif@entry=0x7ffdc6baa4a0, fn=<optimized out>, rvalue=<optimized out>, rvalue@entry=0x0, 
    avalue=avalue@entry=0x7ffdc6baa570) at ../src/x86/ffi64.c:525
#4  0x00007f2a815117e4 in wl_closure_invoke (closure=closure@entry=0x5647810642d0, flags=flags@entry=2, target=<optimized out>, 
    target@entry=0x564780c2aef0, opcode=opcode@entry=3, data=<optimized out>, data@entry=0x56478108b1a0) at ../src/connection.c:1006
#5  0x00007f2a8150e26f in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x56478108b1a0)
    at ../src/wayland-server.c:420
#6  0x00007f2a8150f832 in wl_event_loop_dispatch (loop=0x564780b3ce00, timeout=<optimized out>) at ../src/event-loop.c:641
#7  0x00007f2a8ac5604e in KWayland::Server::Display::Private::dispatch() () from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5
#8  0x00007f2a8956b98f in QtPrivate::QSlotObjectBase::call (a=0x7ffdc6baaa30, r=0x564780b48f10, this=0x564780b3d130)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#9  QMetaObject::activate (sender=sender@entry=0x564780b3cff0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, 
    argv=argv@entry=0x7ffdc6baaa30) at kernel/qobject.cpp:3776
#10 0x00007f2a8956bf47 in QMetaObject::activate (sender=sender@entry=0x564780b3cff0, 
    m=m@entry=0x7f2a899e8c60 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdc6baaa30)
    at kernel/qobject.cpp:3648
#11 0x00007f2a89578178 in QSocketNotifier::activated (this=this@entry=0x564780b3cff0, _t1=<optimized out>, _t2=...)
    at .moc/moc_qsocketnotifier.cpp:140
#12 0x00007f2a89578532 in QSocketNotifier::event (this=0x564780b3cff0, e=0x7ffdc6baad10) at kernel/qsocketnotifier.cpp:266
#13 0x00007f2a89b4d65c in QApplicationPrivate::notify_helper (this=this@entry=0x564780af0cc0, receiver=receiver@entry=0x564780b3cff0, 
    e=e@entry=0x7ffdc6baad10) at kernel/qapplication.cpp:3736
#14 0x00007f2a89b54b90 in QApplication::notify (this=0x7ffdc6bab120, receiver=0x564780b3cff0, e=0x7ffdc6baad10) at kernel/qapplication.cpp:3483
#15 0x00007f2a8953bd18 in QCoreApplication::notifyInternal2 (receiver=0x564780b3cff0, event=0x7ffdc6baad10) at kernel/qcoreapplication.cpp:1060
#16 0x00007f2a89595e63 in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x564780b13e00)
    at kernel/qeventdispatcher_unix.cpp:304
#17 0x00007f2a895964e8 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:509
#18 0x00007f2a7499f1fd in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from target:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/KWinQpaPlugin.so
#19 0x00007f2a8953a03a in QEventLoop::exec (this=this@entry=0x7ffdc6baaec0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#20 0x00007f2a89543170 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1363
#21 0x0000564780834e4e in main (argc=<optimized out>, argv=<optimized out>) at ./main_wayland.cpp:677
Desanexando do programa: target:/usr/bin/kwin_wayland, process 7288
Ending remote debugging.
Comment 1 Patrick Silva 2019-09-19 18:22:14 UTC
Still crashing on Plasma 5.17 beta.

Operating System: Arch Linux 
KDE Plasma Version: 5.16.90
KDE Frameworks Version: 5.62.0
Qt Version: 5.13.1
Comment 2 Patrick Silva 2019-09-19 18:57:26 UTC
kwin_wayland also crashes when I enable the OSD that appears when we switch between virtual desktops in virtual desktop KCM.
Comment 3 David Edmundson 2019-10-17 12:55:13 UTC
LinuxDmabufUnstableV1Interface

DMABuf?

What clients are you running? 
Can I see the output of "env" on your system.
Comment 4 Patrick Silva 2019-10-17 13:27:14 UTC
I can reproduce the crash even if system settings is the only app running.

output of env on Neon unstable edition:

GS_LIB=/home/stalker/.fonts
KDE_FULL_SESSION=true
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
LC_MEASUREMENT=pt_BR.UTF-8
LESSCLOSE=/usr/bin/lesspipe %s %s
LC_PAPER=pt_BR.UTF-8
LC_MONETARY=pt_BR.UTF-8
LANG=pt_BR.UTF-8
PROFILEHOME=
DISPLAY=:1
SHELL_SESSION_ID=ea62b7bd22f6461a9831ccfd03e1c4cf
COLORTERM=truecolor
XDG_VTNR=2
PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket
LC_NAME=pt_BR.UTF-8
XDG_SESSION_ID=3
USER=stalker
DESKTOP_SESSION=/usr/share/wayland-sessions/plasmawayland
KONSOLE_VERSION=191170
WAYLAND_DISPLAY=wayland-0
PWD=/home/stalker
HOME=/home/stalker
XCURSOR_SIZE=0
XDG_SESSION_TYPE=wayland
XDG_DATA_DIRS=/home/stalker/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
KONSOLE_DBUS_SESSION=/Sessions/1
XDG_SESSION_DESKTOP=KDE
LC_ADDRESS=pt_BR.UTF-8
LC_NUMERIC=pt_BR.UTF-8
KONSOLE_DBUS_WINDOW=/Windows/1
X11LAYOUT=br
QT_WAYLAND_FORCE_DPI=96
TERM=xterm-256color
SHELL=/bin/bash
KONSOLE_DBUS_SERVICE=:1.34
XDG_SESSION_CLASS=user
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XCURSOR_THEME=breeze_cursors
XDG_CURRENT_DESKTOP=KDE
XDG_SEAT=seat0
SHLVL=1
COLORFGBG=0;15
LANGUAGE=en_US:pt_BR
X11MODEL=pc105
WINDOWID=1
LC_TELEPHONE=pt_BR.UTF-8
PLASMA_USE_QT_SCALING=1
LOGNAME=stalker
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-PW3jxahpzE,guid=04ac4644ffb46c513d930f555da86b19
XDG_RUNTIME_DIR=/run/user/1000
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
QT_AUTO_SCREEN_SCALE_FACTOR=0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LC_IDENTIFICATION=pt_BR.UTF-8
KDE_SESSION_UID=1000
KDE_SESSION_VERSION=5
SESSION_MANAGER=local/neon-laptop:@/tmp/.ICE-unix/1159,unix/neon-laptop:/tmp/.ICE-unix/1159
LESSOPEN=| /usr/bin/lesspipe %s
LC_TIME=pt_BR.UTF-8
_=/usr/bin/env
Comment 5 Fabian Vogt 2019-10-24 11:47:49 UTC
I got a session crash here as well after changing font settings:

#0  0x00007f8365baec19 in QHashData::detach_helper(void (*)(QHashData::Node*, void*), void (*)(QHashData::Node*), int, int) () at /usr/lib64/libQt5Core.so.5
#1  0x00007f835ecaeb6e in QHash<KWin::DmabufBuffer*, QHashDummyValue>::detach_helper() (this=0x5576006f2d40) at /usr/include/qt5/QtCore/qhash.h:597
#2  0x00007f835ecaeb6e in QHash<KWin::DmabufBuffer*, QHashDummyValue>::detach() (this=0x5576006f2d40) at /usr/include/qt5/QtCore/qhash.h:275
#3  0x00007f835ecaeb6e in QHash<KWin::DmabufBuffer*, QHashDummyValue>::remove(KWin::DmabufBuffer* const&) (this=0x5576006f2d40, akey=@0x7ffce9c155b0: 0x557600dd0f40) at /usr/include/qt5/QtCore/qhash.h:803
#4  0x00007f835ecae420 in QSet<KWin::DmabufBuffer*>::remove(KWin::DmabufBuffer* const&) (value=@0x7ffce9c155b0: 0x557600dd0f40, this=<optimized out>) at /usr/include/qt5/QtCore/qset.h:94
#5  0x00007f835ecae420 in KWin::LinuxDmabuf::removeBuffer(KWin::DmabufBuffer*) (buffer=<optimized out>, this=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/platformsupport/scenes/opengl/linux_dmabuf.cpp:412
#6  0x00007f835ecae420 in KWin::DmabufBuffer::~DmabufBuffer() (this=0x557600dd0f40, __in_chrg=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/platformsupport/scenes/opengl/linux_dmabuf.cpp:205
#7  0x00007f835ecae609 in KWin::DmabufBuffer::~DmabufBuffer() (this=0x557600dd0f40, __in_chrg=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/platformsupport/scenes/opengl/linux_dmabuf.cpp:202
#8  0x00007f83639a8c6f in  () at /usr/lib64/libwayland-server.so.0
#9  0x00007f83639aa42a in wl_resource_destroy () at /usr/lib64/libwayland-server.so.0
#10 0x00007f83627a4edd in  () at /usr/lib64/libffi.so.7
#11 0x00007f83627a431a in  () at /usr/lib64/libffi.so.7
#12 0x00007f83639a6c66 in  () at /usr/lib64/libwayland-server.so.0
#13 0x00007f83639ac136 in  () at /usr/lib64/libwayland-server.so.0
#14 0x00007f83639a8f92 in wl_event_loop_dispatch () at /usr/lib64/libwayland-server.so.0
#15 0x00007f83668c50df in KWayland::Server::Display::Private::dispatch() () at /usr/lib64/libKF5WaylandServer.so.5
#16 0x00007f8365d4e638 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib64/libQt5Core.so.5
#17 0x00007f8365d5ae01 in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) () at /usr/lib64/libQt5Core.so.5
#18 0x00007f8365d5b141 in QSocketNotifier::event(QEvent*) () at /usr/lib64/libQt5Core.so.5
#19 0x00007f8366164c62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#20 0x00007f836616e1e0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#21 0x00007f8365d23572 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#22 0x00007f8365d76c5b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib64/libQt5Core.so.5
#23 0x00007f8365d770d6 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#24 0x00007f835fd906fd in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63
#25 0x00007f8365d220db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#26 0x00007f8365d29d42 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#27 0x0000557600112415 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/main_wayland.cpp:677
Comment 6 Roman Gilg 2019-10-24 13:31:00 UTC
*** Bug 412915 has been marked as a duplicate of this bug. ***
Comment 7 Roman Gilg 2019-10-26 12:01:42 UTC
I have a patch created: https://phabricator.kde.org/D24954

The patch is quite large but I still intend it to put it into 5.17.2 if I can get some feedback from people over the weekend that can compile KWin with the patch and it works on their systems and no other regressions happen.
Comment 8 Patrick Silva 2019-10-26 18:32:04 UTC
I tried to apply your patch on Arch Linux, but I got building failure :(

/home/myusername/kwin/input.cpp: In lambda function:
/home/myusername/kwin/input.cpp:1783:51: error: ‘keyboardKeyPressRequested’ is not a member of ‘KWayland::Server::FakeInputDevice’
 1783 |                 connect(device, &FakeInputDevice::keyboardKeyPressRequested, this,
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/myusername/kwin/input.cpp:1790:51: error: ‘keyboardKeyReleaseRequested’ is not a member of ‘KWayland::Server::FakeInputDevice’
 1790 |                 connect(device, &FakeInputDevice::keyboardKeyReleaseRequested, this,
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/kwin.dir/build.make:628: CMakeFiles/kwin.dir/input.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:173: CMakeFiles/kwin.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Comment 9 Fabian Vogt 2019-10-26 20:07:41 UTC
(In reply to Patrick Silva from comment #8)
> I tried to apply your patch on Arch Linux, but I got building failure :(

You have to apply the diff on top of Plasma/5.17, otherwise arc bases it on master instead. That way it built fine here.
Comment 10 Roman Gilg 2019-10-28 13:30:06 UTC
Like Fabian said you need to download the raw diff from the Phabricator diff and apply it to your KWin repo with Plasma/5.17 branch checked out. The diff should apply cleanly (haven't tried it though, report back if not).

Then build, install KWin based on Plasma/5.17 branch and the diff applied.
Comment 11 Patrick Silva 2019-10-28 14:07:05 UTC
output of "git apply D24954.diff"

error: patch failed: wayland_server.h:118
error: wayland_server.h: patch does not apply
Comment 12 Patrick Silva 2019-10-28 14:30:55 UTC
I can apply the diff with arcanist, but building always fails at 13%.
I'm doing something wrong.
Comment 13 Roman Gilg 2019-10-28 22:32:00 UTC
(In reply to Patrick Silva from comment #12)
> I can apply the diff with arcanist, but building always fails at 13%.
> I'm doing something wrong.

I have rebased the Phabricator patch on Plasma/5.17 branch. Delete your local branch and checkout again the diff with arcanist. You should be able to build the diff now.
Comment 14 Patrick Silva 2019-10-29 00:00:50 UTC
Finally building was successful. \o/
Your patch fixes all crashes on my system. 
Thank you very much Roman.
Comment 15 Roman Gilg 2019-10-29 11:10:26 UTC
Git commit 7459aabcac2471862a35a7c045de7176b5435f1c by Roman Gilg.
Committed on 29/10/2019 at 11:10.
Pushed by romangilg into branch 'Plasma/5.17'.

Dmabuf recovery on EGL reset

Summary:
The EGL platform might go away at any time through reconfiguration or because
of a graphic error. KWin then resets the graphics. The dmabuf implementation
must respect that and recover from a graphics reset by recreating all EGL
images for existing buffer.

This assumes that we won't change our graphics API mid-session and that
supported plane and modifier configuration stays constant.

In practise we remember all current dmabufs in a single map and only remove
them if the client did destroy the resource.
Related: bug 413403
FIXED-IN: 5.17.2

Test Plan: Applied screenedge configuration without crash.

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: fvogt, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D24954

M  +1    -0    CMakeLists.txt
A  +88   -0    linux_dmabuf.cpp     [License: GPL (v2)]
C  +12   -49   linux_dmabuf.h [from: platformsupport/scenes/opengl/linux_dmabuf.h - 053% similarity]
M  +1    -1    platformsupport/scenes/opengl/CMakeLists.txt
M  +4    -4    platformsupport/scenes/opengl/abstract_egl_backend.cpp
R  +52   -63   platformsupport/scenes/opengl/egl_dmabuf.cpp [from: platformsupport/scenes/opengl/linux_dmabuf.cpp - 084% similarity]
R  +23   -30   platformsupport/scenes/opengl/egl_dmabuf.h [from: platformsupport/scenes/opengl/linux_dmabuf.h - 068% similarity]
M  +10   -0    wayland_server.cpp
M  +15   -0    wayland_server.h

https://commits.kde.org/kwin/7459aabcac2471862a35a7c045de7176b5435f1c