Bug 412178 - crash after reconnecting external monitor
Summary: crash after reconnecting external monitor
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.16.5
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-09-22 05:53 UTC by Tim Richardson
Modified: 2021-12-04 04:38 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 Tim Richardson 2019-09-22 05:53:14 UTC
Application: kwin_x11 (5.16.5)

Qt Version: 5.12.3
Frameworks Version: 5.62.0
Operating System: Linux 5.0.0-29-generic x86_64
Distribution: KDE neon User Edition 5.16

-- Information about the crash:
- What I was doing when the application crashed:

- Unusual behavior I noticed:

Laptop resumed from suspend, but one of the external monitors did not wake up. I disconnected it from the thunderbolt port and reconnected it; Kwin crashed (hence this report) but the external monitor did work.

The crash does not seem to be reproducible.

-- Backtrace:
Application: KWin (kwin_x11), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f1de9266d00 (LWP 3019))]

Thread 6 (Thread 0x7f1db0b9c700 (LWP 3377)):
#0  0x00007f1de1b499f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f1de5103fb8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f1de1b499f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x7f1de5103f68, cond=0x7f1de5103f90) at pthread_cond_wait.c:502
#2  0x00007f1de1b499f3 in __pthread_cond_wait (cond=0x7f1de5103f90, mutex=0x7f1de5103f68) at pthread_cond_wait.c:655
#3  0x00007f1de4e0d844 in  () at /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#4  0x00007f1de4e0d889 in  () at /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#5  0x00007f1de1b436db in start_thread (arg=0x7f1db0b9c700) at pthread_create.c:463
#6  0x00007f1de8bdf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f1db1b9e700 (LWP 3343)):
#0  0x00007f1de1b499f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55df5ae3d328) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f1de1b499f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x55df5ae3d2d8, cond=0x55df5ae3d300) at pthread_cond_wait.c:502
#2  0x00007f1de1b499f3 in __pthread_cond_wait (cond=0x55df5ae3d300, mutex=0x55df5ae3d2d8) at pthread_cond_wait.c:655
#3  0x00007f1db269b91b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f1db269b527 in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f1de1b436db in start_thread (arg=0x7f1db1b9e700) at pthread_create.c:463
#6  0x00007f1de8bdf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f1dc6579700 (LWP 3330)):
#0  0x00007f1de8bd2cf6 in __GI_ppoll (fds=fds@entry=0x7f1db4000d28, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
#1  0x00007f1de6126ab1 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:77
#2  0x00007f1de6126ab1 in qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f1db4000d28) at kernel/qcore_unix.cpp:132
#3  0x00007f1de6126ab1 in qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7f1db4000d28, nfds=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:153
#4  0x00007f1de61281be in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:500
#5  0x00007f1de60cc03a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f1dc6578d00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f1de5ef34ca in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:531
#7  0x00007f1de053a115 in  () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007f1de5ef4c72 in QThreadPrivate::start(void*) (arg=0x55df5ae1c190) at thread/qthread_unix.cpp:361
#9  0x00007f1de1b436db in start_thread (arg=0x7f1dc6579700) at pthread_create.c:463
#10 0x00007f1de8bdf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f1dcdb12700 (LWP 3100)):
#0  0x00007f1de8bd2cf6 in __GI_ppoll (fds=fds@entry=0x7f1dc0010e88, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
#1  0x00007f1de6126ab1 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:77
#2  0x00007f1de6126ab1 in qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f1dc0010e88) at kernel/qcore_unix.cpp:132
#3  0x00007f1de6126ab1 in qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7f1dc0010e88, nfds=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:153
#4  0x00007f1de61281be in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:500
#5  0x00007f1de60cc03a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f1dcdb11cf0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f1de5ef34ca in QThread::exec() (this=this@entry=0x7f1ddf61ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:531
#7  0x00007f1ddf3a7015 in QDBusConnectionManager::run() (this=0x7f1ddf61ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#8  0x00007f1de5ef4c72 in QThreadPrivate::start(void*) (arg=0x7f1ddf61ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:361
#9  0x00007f1de1b436db in start_thread (arg=0x7f1dcdb12700) at pthread_create.c:463
#10 0x00007f1de8bdf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f1dcf94e700 (LWP 3042)):
#0  0x00007f1de8bd2bf9 in __GI___poll (fds=0x7f1dcf94dc28, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f1de5c30747 in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f1de5c3236a in xcb_wait_for_event () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f1dd0c89578 in QXcbEventQueue::run() (this=0x55df5ab87030) at qxcbeventqueue.cpp:228
#4  0x00007f1de5ef4c72 in QThreadPrivate::start(void*) (arg=0x55df5ab87030) at thread/qthread_unix.cpp:361
#5  0x00007f1de1b436db in start_thread (arg=0x7f1dcf94e700) at pthread_create.c:463
#6  0x00007f1de8bdf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f1de9266d00 (LWP 3019)):
[KCrash Handler]
#6  0x00007f1de86ae968 in std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x21) at /usr/include/c++/7/bits/atomic_base.h:396
#7  0x00007f1de86ae968 in QAtomicOps<int>::load<int>(std::atomic<int> const&) (_q_value=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:227
#8  0x00007f1de86ae968 in QBasicAtomicInteger<int>::load() const (this=0x21) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:103
#9  0x00007f1de86ae968 in QtPrivate::RefCount::isShared() const (this=0x21) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:101
#10 0x00007f1de86ae968 in QMap<KWin::Group*, KWin::Layer>::detach() (this=0x55df5b44da38) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:364
#11 0x00007f1de86ae968 in QMap<KWin::Group*, KWin::Layer>::find(KWin::Group* const&) (akey=<optimized out>, this=0x55df5b44da38) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:884
#12 0x00007f1de86ae968 in KWin::Workspace::constrainedStackingOrder() (this=this@entry=0x55df5ac8dca0) at ./layers.cpp:519
#13 0x00007f1de86af468 in KWin::Workspace::updateStackingOrder(bool) (this=0x55df5ac8dca0, propagate_new_clients=propagate_new_clients@entry=false) at ./layers.cpp:123
#14 0x00007f1de86ee595 in KWin::Client::setGeometry(int, int, int, int, KWin::AbstractClient::ForceGeometry_t) (this=0x55df5b42e520, x=<optimized out>, y=<optimized out>, w=3840, h=2160, force=<optimized out>) at ./geometry.cpp:1999
#15 0x00007f1de8800d35 in KWin::AbstractClient::setGeometry(QRect const&, KWin::AbstractClient::ForceGeometry_t) (force=KWin::AbstractClient::NormalGeometrySet, r=..., this=0x55df5b42e520) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/../../../abstract_client.h:1285
#16 0x00007f1de8800d35 in KWin::AbstractClient::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x55df5b42e520, _c=_c@entry=QMetaObject::WriteProperty, _id=_id@entry=28, _a=_a@entry=0x7ffe76efb220) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_abstract_client.cpp:886
#17 0x00007f1de8806613 in KWin::AbstractClient::qt_metacall(QMetaObject::Call, int, void**) (this=this@entry=0x55df5b42e520, _c=_c@entry=QMetaObject::WriteProperty, _id=28, _a=_a@entry=0x7ffe76efb220) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_abstract_client.cpp:935
#18 0x00007f1de8806675 in KWin::Client::qt_metacall(QMetaObject::Call, int, void**) (this=0x55df5b42e520, _c=QMetaObject::WriteProperty, _id=<optimized out>, _a=0x7ffe76efb220) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_client.cpp:277
#19 0x00007f1de049f0e2 in  () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#20 0x00007f1de049cac6 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#21 0x00007f1de03e752b in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#22 0x00007f1de03e84ee in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#23 0x00007f1de03e8689 in QV4::QObjectWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*) () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#24 0x00007f1de0465229 in QV4::Runtime::method_storeProperty(QV4::ExecutionEngine*, QV4::Value const&, int, QV4::Value const&) () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#25 0x00007f1dc401bab9 in  ()
#26 0x0000000000000000 in  ()

Possible duplicates by query: bug 410345, bug 409515, bug 409231, bug 409110, bug 402911.

Reported using DrKonqi
Comment 1 Vlad Zahorodnii 2019-09-23 06:42:07 UTC
Hmm, I don't see how kwin could crash (well, unless you didn't have enough free memory). In either case, `const (this=0x21)` looks suspicious.

Can you post your kwinrc please?
Comment 2 kde.org 2021-11-04 18:33:32 UTC
This bug report is quite old and a lot of bugs concerning connecting and disconnecting external monitors have been fixed in the mean time. Can you still reproduce this with KDE 5.23? If so, please provide a new backtrace.
Comment 3 Bug Janitor Service 2021-11-19 04:38:47 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 4 Bug Janitor Service 2021-12-04 04:38:37 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!