Bug 350952 - KWin crash
Summary: KWin crash
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.2.2
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-08-04 08:46 UTC by Samuel Suther
Modified: 2015-08-13 15:44 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Samuel Suther 2015-08-04 08:46:53 UTC
Application: kwin_x11 (5.2.2)

Qt Version: 5.4.1
Operating System: Linux 3.19.0-25-generic x86_64
Distribution: Ubuntu 15.04

-- Information about the crash:
Kwin crash often. 
For example, if the screensaver was activated and I relogin, all Window-Decorations are gone.
Even If I try to Logout, it dosn't work (do nothing). I have to Kill the plasma-session (CTRL+Alt+Backspace).

Happens since upgrade from Kubuntu 14.04 to 15.04

The crash can be reproduced sometimes.

-- 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 0x7f2d90429800 (LWP 2341))]

Thread 5 (Thread 0x7f2d7a433700 (LWP 2348)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f2d8e4af940 in _q_futex (op=<optimized out>, val=<optimized out>, timeout=<optimized out>, addr=<optimized out>) at thread/qmutex_linux.cpp:146
#2  lockInternal_helper<false> (timeout=<optimized out>, elapsedTimer=<optimized out>, d_ptr=...) at thread/qmutex_linux.cpp:187
#3  QBasicMutex::lockInternal (this=this@entry=0x14ea440) at thread/qmutex_linux.cpp:203
#4  0x00007f2d8e4af9e9 in QMutex::lock (this=this@entry=0x14ea440) at thread/qmutex.cpp:217
#5  0x00007f2d7b0e00a9 in QXcbEventReader::run (this=0x14ea430) at qxcbconnection.cpp:1106
#6  0x00007f2d8e4b7b0e in QThreadPrivate::start (arg=0x14ea430) at thread/qthread_unix.cpp:337
#7  0x00007f2d875326aa in start_thread (arg=0x7f2d7a433700) at pthread_create.c:333
#8  0x00007f2d8ff09eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f2d72d57700 (LWP 2373)):
#0  0x00007f2d8ff00743 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f2d8e74a101 in qt_safe_select (nfds=16, fdread=fdread@entry=0x7f2d68000a78, fdwrite=fdwrite@entry=0x7f2d68000d08, fdexcept=fdexcept@entry=0x7f2d68000f98, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:75
#2  0x00007f2d8e74bcd2 in select (timeout=0x0, exceptfds=0x7f2d68000f98, writefds=0x7f2d68000d08, readfds=0x7f2d68000a78, nfds=<optimized out>, this=0x7f2d680008c0) at kernel/qeventdispatcher_unix.cpp:320
#3  QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f2d680008e0, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:196
#4  0x00007f2d8e74c275 in QEventDispatcherUNIX::processEvents (this=0x7f2d680008c0, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#5  0x00007f2d8e6f33e2 in QEventLoop::exec (this=this@entry=0x7f2d72d56da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f2d8e4b2b44 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#7  0x00007f2d88365f65 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007f2d8e4b7b0e in QThreadPrivate::start (arg=0x16ba300) at thread/qthread_unix.cpp:337
#9  0x00007f2d875326aa in start_thread (arg=0x7f2d72d57700) at pthread_create.c:333
#10 0x00007f2d8ff09eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f2d6250b700 (LWP 2412)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f2d8d2bc644 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#2  0x00007f2d8d2bc689 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#3  0x00007f2d875326aa in start_thread (arg=0x7f2d6250b700) at pthread_create.c:333
#4  0x00007f2d8ff09eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f2cdafe6700 (LWP 2484)):
#0  0x00007f2d8ff00743 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f2d8e74a101 in qt_safe_select (nfds=21, fdread=fdread@entry=0x7f2cd4079278, fdwrite=fdwrite@entry=0x7f2cd4079508, fdexcept=fdexcept@entry=0x7f2cd4079798, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:75
#2  0x00007f2d8e74bcd2 in select (timeout=0x0, exceptfds=0x7f2cd4079798, writefds=0x7f2cd4079508, readfds=0x7f2cd4079278, nfds=<optimized out>, this=0x7f2cd4012dc0) at kernel/qeventdispatcher_unix.cpp:320
#3  QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f2cd40790e0, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:196
#4  0x00007f2d8e74c275 in QEventDispatcherUNIX::processEvents (this=0x7f2cd4012dc0, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#5  0x00007f2d8e6f33e2 in QEventLoop::exec (this=this@entry=0x7f2cdafe5da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f2d8e4b2b44 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#7  0x00007f2d88365f65 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007f2d8e4b7b0e in QThreadPrivate::start (arg=0x2677af0) at thread/qthread_unix.cpp:337
#9  0x00007f2d875326aa in start_thread (arg=0x7f2cdafe6700) at pthread_create.c:333
#10 0x00007f2d8ff09eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f2d90429800 (LWP 2341)):
[KCrash Handler]
#6  0x00007f2d7b0e01fa in QXcbConnection::processXcbEvents (this=0x14dece0) at qxcbconnection.cpp:1271
#7  0x00007f2d8e72773a in QObject::event (this=0x14dece0, e=<optimized out>) at kernel/qobject.cpp:1245
#8  0x00007f2d8efffb2c in QApplicationPrivate::notify_helper (this=0x14d8040, receiver=0x14dece0, e=0x7f2d74001350) at kernel/qapplication.cpp:3720
#9  0x00007f2d8f005000 in QApplication::notify (this=0x7ffec7a10ae0, receiver=0x14dece0, e=0x7f2d74001350) at kernel/qapplication.cpp:3503
#10 0x00007f2d8e6f5c2b in QCoreApplication::notifyInternal (this=0x7ffec7a10ae0, receiver=0x14dece0, event=event@entry=0x7f2d74001350) at kernel/qcoreapplication.cpp:935
#11 0x00007f2d8e6f7c9b in sendEvent (event=0x7f2d74001350, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#12 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x14c82f0) at kernel/qcoreapplication.cpp:1552
#13 0x00007f2d8e74c112 in QEventDispatcherUNIX::processEvents (this=0x1508300, flags=flags@entry=...) at kernel/qeventdispatcher_unix.cpp:579
#14 0x00007f2d7b13696d in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62
#15 0x00007f2d8e6f33e2 in QEventLoop::exec (this=this@entry=0x7ffec7a10a00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#16 0x00007f2d8e6fb02c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#17 0x00007f2d8ea3a31c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1510
#18 0x00007f2d8effb7a5 in QApplication::exec () at kernel/qapplication.cpp:2956
#19 0x00007f2d901d18c3 in kdemain (argc=1, argv=0x7ffec7a10c38) at ../main_x11.cpp:294
#20 0x00007f2d8fe23a40 in __libc_start_main (main=0x400790 <main(int, char**)>, argc=3, argv=0x7ffec7a10c38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffec7a10c28) at libc-start.c:289
#21 0x00000000004007c9 in _start ()

Reported using DrKonqi
Comment 1 Thomas Lübking 2015-08-13 09:47:59 UTC
Crashes right in Qt (also several processes are affected) and looks a either a threading issue or general stack corruption:

1268                for (int j = i; j < eventqueue->size(); ++j) {
1269                    xcb_generic_event_t *other = eventqueue->at(j);
1270                    if (other && (other->response_type & ~0x80) == XCB_CONFIGURE_NOTIFY
1271                        && ((xcb_configure_notify_event_t *)other)->event == (xcb_configure_notify_event_t *)event)->event)

Could happen due to the ungrabbing when exiting the screen locker.

Wild guesses:
- does "cat /etc/hostname" say "localhost"?
- does your system maybe run updates while the screensaver is active?
- check /var/log/Xorg.0.log for errors
- does it also happen if you configure no screen saver (ie. no fancy animations but just the monitor off and a login screen
Comment 2 Samuel Suther 2015-08-13 15:44:40 UTC
For me it is the intel GPU Driver i915.

This workarround solve it for me: 

Open or create /etc/X11/xorg.conf :
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option     "AccelMethod"  "uxa"
EndSection