[Solved] Kwin composition constant crashes

xorg
plasma
#1

I was trying to connect external TV screen through HDMI on bumblebee, when HDMI is attached to nvidia. This involved messing with many nvidia, bumblebee and xorg settings in ROOT directory. Nothing worked in the end so I restored changed files to previous state. Unfortunately somehow along the way, some user settings changed automatically with it and now they cause issues.

Basically, composition crashes all the time (segmentation fault) and I have to go to Plasma Composition setting to restore it. It doesn’t last long.

I created a new test user and the issue doesn’t happen there, so I have to have some personal files that cause that issues. I could slowly move my configs and files over the new user but that’s a last resort and I would like to identify and reset those troubling files on my current user.

Does anyone has an idea where to look for and which files need to be deleted (so they could restore themselves in default state) or overwritten by test user ones?

Thanks

EDIT: Here is the crash log if that helps finding the place where the problem stems:

Application: KWin (kwin_x11), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fcc7aa2d840 (LWP 3649))]

Thread 6 (Thread 0x7fcc4d19b700 (LWP 4422)):
#0  0x00007fcc7a479551 in ppoll () at /usr/lib/libc.so.6
#1  0x00007fcc77afe2f9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#2  0x00007fcc77aff96a in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007fcc77aac89a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fcc778cea73 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#5  0x00007fcc723cf025 in  () at /usr/lib/libQt5Qml.so.5
#6  0x00007fcc778d36d8 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007fcc736c0454 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007fcc7a4827df in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fcc4e5ee700 (LWP 3755)):
#0  0x00007fcc736c610f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fcc76a3d234 in  () at /usr/lib/libQt5Script.so.5
#2  0x00007fcc76a3d279 in  () at /usr/lib/libQt5Script.so.5
#3  0x00007fcc736c0454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007fcc7a4827df in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7fcc4ffff700 (LWP 3745)):
#0  0x00007fcc7a479551 in ppoll () at /usr/lib/libc.so.6
#1  0x00007fcc77afe2f9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#2  0x00007fcc77aff96a in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007fcc77aac89a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fcc778cea73 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#5  0x00007fcc723cf025 in  () at /usr/lib/libQt5Qml.so.5
#6  0x00007fcc778d36d8 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007fcc736c0454 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007fcc7a4827df in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fcc5e441700 (LWP 3698)):
#0  0x00007fcc7a479551 in ppoll () at /usr/lib/libc.so.6
#1  0x00007fcc77afe2f9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#2  0x00007fcc77aff96a in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007fcc77aac89a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fcc778cea73 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#5  0x00007fcc71585125 in  () at /usr/lib/libQt5DBus.so.5
#6  0x00007fcc778d36d8 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007fcc736c0454 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007fcc7a4827df in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fcc603d7700 (LWP 3667)):
#0  0x00007fcc7a47948d in poll () at /usr/lib/libc.so.6
#1  0x00007fcc795958e0 in  () at /usr/lib/libxcb.so.1
#2  0x00007fcc79597679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007fcc61087239 in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007fcc778d36d8 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fcc736c0454 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007fcc7a4827df in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7fcc7aa2d840 (LWP 3649)):
[KCrash Handler]
#6  0x00007fcc72380967 in QQmlPropertyCache::resolve(QQmlPropertyData*) const () at /usr/lib/libQt5Qml.so.5
#7  0x00007fcc72380b61 in QQmlPropertyCache::findProperty(QStringHash<QPair<int, QQmlPropertyData*> >::ConstIterator, QQmlVMEMetaObject const*, QQmlContextData*) const () at /usr/lib/libQt5Qml.so.5
#8  0x00007fcc72303fe2 in QV4::QObjectWrapper::findProperty(QV4::ExecutionEngine*, QQmlContextData*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QQmlPropertyData*) const () at /usr/lib/libQt5Qml.so.5
#9  0x00007fcc72307d73 in QV4::QObjectWrapper::getQmlProperty(QQmlContextData*, QV4::String*, QV4::QObjectWrapper::RevisionMode, bool*, bool) const () at /usr/lib/libQt5Qml.so.5
#10 0x00007fcc7231d8ff in QV4::Runtime::method_getProperty(QV4::ExecutionEngine*, QV4::Value const&, int) () at /usr/lib/libQt5Qml.so.5
#11 0x00007fcc4c1b0acd in  ()
#12 0x00007fcc761b44e0 in KDecoration2::DecorationSettings::decorationButtonsLeftChanged(QVector<KDecoration2::DecorationButtonType> const&) () at /usr/lib/libkdecorations2.so.5
#13 0x0000000000000000 in  ()
#2

I located the root of a problem in ~/.config, most probably in kde or plasma settings. Restored other settings, but the whole desktop must be set anew,. Crashes are gone.

EDIT: I narrowed down the issue to those files:

kwinrc
kwinrulesrc

in ~/.config

So what I basically did, I replaced those files with a new ones from clean test user that I created.

1 Like
Dell XPS 8900 KWin is Crashing all the time
#3

Did you keep the old files?

Would be interesting to do a file compare and understand the changes that were made and why it broke. Maybe this could lead to a tutorial for how to do this successfully, and avoid the pitfalls you encountered.

Only time I plugged my laptop into a HDTV via HDMI it broke my xorg, once bitten.

#4

Unfortunately no. I believe some kwin settings cannot coexist and somehow they were saved together, hence the issues. Plasma always was weak when meddling with settings, prone to crash. It was mostly fixed, usually by changing settings or getting rid of those troubling ones, but there are circumstances that modify conf files in the way they shouldn’t. My guess is, there is too many variables and kwin or plasma developers aren’t able to test them in all possible configurations to provide with the good code that would accept them correctly.

closed #5

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.