Bug 347495 - Kwin crashed after attempting to start a fullscreen app, and the resolution swapped a lot
Summary: Kwin crashed after attempting to start a fullscreen app, and the resolution s...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: compositing (show other bugs)
Version: 5.2.2
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 362147 363527 365964 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-05-10 06:13 UTC by wodencafe
Modified: 2016-07-23 10:31 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.6


Attachments
Plasma Crash Stacktrace (65.76 KB, text/plain)
2015-05-14 04:24 UTC, wodencafe
Details
Result of qdbus org.kde.KWin /KWin supportInformation (4.78 KB, text/plain)
2015-05-14 04:34 UTC, wodencafe
Details
New crash information added by DrKonqi (4.30 KB, text/plain)
2016-05-15 13:54 UTC, therammix
Details

Note You need to log in before you can comment on or make changes to this bug.
Description wodencafe 2015-05-10 06:13:24 UTC
Application: kwin_x11 (5.2.2)

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

-- Information about the crash:
- What I was doing when the application crashed:
I had attempted to start a windows game with wine, which runs in 1024x768. Normally the desktop is in 1920x1080, so the resolution switched to 1024x768 - and went back and forth a couple of times, before it ended up on 1920x1080, with the application crashed, along with Kwin.

-- 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 0x7f002e9f0800 (LWP 3559))]

Thread 5 (Thread 0x7f0009c00700 (LWP 3567)):
#0  0x00007f002e4ba8dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f00255cfebc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f00255d0242 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0014944ae6 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f00255f6955 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f0025aee6aa in start_thread (arg=0x7f0009c00700) at pthread_create.c:333
#6  0x00007f002e4c5eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f00093ff700 (LWP 3568)):
#0  0x00007f002e4b649d in read () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f00205dbf45 in ?? () from /usr/lib/nvidia-346-updates/tls/libnvidia-tls.so.346.59
#2  0x00007f00256132f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f00255cf96c in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f00255cfe60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f00255cffcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f00255d0009 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007f00255f6955 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007f0025aee6aa in start_thread (arg=0x7f00093ff700) at pthread_create.c:333
#9  0x00007f002e4c5eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f0008bfe700 (LWP 3592)):
#0  0x00007f002cd0863d in QTimerInfoList::updateCurrentTime (this=this@entry=0x7f00000043e8) at kernel/qtimerinfo_unix.cpp:84
#1  0x00007f002cd0796e in QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f0000003bb0, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:171
#2  0x00007f002cd08275 in QEventDispatcherUNIX::processEvents (this=0x7f0000001320, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#3  0x00007f002ccaf3e2 in QEventLoop::exec (this=this@entry=0x7f0008bfdda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#4  0x00007f002ca6eb44 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#5  0x00007f0026921f65 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#6  0x00007f002ca73b0e in QThreadPrivate::start (arg=0x2581ad0) at thread/qthread_unix.cpp:337
#7  0x00007f0025aee6aa in start_thread (arg=0x7f0008bfe700) at pthread_create.c:333
#8  0x00007f002e4c5eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7effebfff700 (LWP 3659)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f002b878644 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#2  0x00007f002b878689 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#3  0x00007f0025aee6aa in start_thread (arg=0x7effebfff700) at pthread_create.c:333
#4  0x00007f002e4c5eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f002e9f0800 (LWP 3559)):
[KCrash Handler]
#6  0x00007f002e08774d in KWin::SceneOpenGLShadow::~SceneOpenGLShadow (this=0x2bc39c0, __in_chrg=<optimized out>) at ../scene_opengl.cpp:2106
#7  0x00007f002e087809 in KWin::SceneOpenGLShadow::~SceneOpenGLShadow (this=0x2bc39c0, __in_chrg=<optimized out>) at ../scene_opengl.cpp:2109
#8  0x00007f002cce3778 in QObject::event (this=0x2bc39c0, e=<optimized out>) at kernel/qobject.cpp:1236
#9  0x00007f002d5bbb2c in QApplicationPrivate::notify_helper (this=0x21dfe70, receiver=0x2bc39c0, e=0x2d57540) at kernel/qapplication.cpp:3720
#10 0x00007f002d5c1000 in QApplication::notify (this=0x7ffe719913b0, receiver=0x2bc39c0, e=0x2d57540) at kernel/qapplication.cpp:3503
#11 0x00007f002ccb1c2b in QCoreApplication::notifyInternal (this=0x7ffe719913b0, receiver=0x2bc39c0, event=event@entry=0x2d57540) at kernel/qcoreapplication.cpp:935
#12 0x00007f002ccb3c9b in sendEvent (event=0x2d57540, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#13 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x21d08c0) at kernel/qcoreapplication.cpp:1552
#14 0x00007f002cd08112 in QEventDispatcherUNIX::processEvents (this=0x22a5960, flags=flags@entry=...) at kernel/qeventdispatcher_unix.cpp:579
#15 0x00007f0017bb796d in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62
#16 0x00007f002ccaf3e2 in QEventLoop::exec (this=this@entry=0x7ffe719912d0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#17 0x00007f002ccb702c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#18 0x00007f002cff631c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1510
#19 0x00007f002d5b77a5 in QApplication::exec () at kernel/qapplication.cpp:2956
#20 0x00007f002e78d8c3 in kdemain (argc=1, argv=0x7ffe71991508) at ../main_x11.cpp:294
#21 0x00007f002e3dfa40 in __libc_start_main (main=0x400790 <main(int, char**)>, argc=3, argv=0x7ffe71991508, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe719914f8) at libc-start.c:289
#22 0x00000000004007c9 in _start ()

Reported using DrKonqi
Comment 1 Thomas Lübking 2015-05-10 11:50:30 UTC
Looks like some shadow got deleted (through deleteLater) after the scene/effectshandler was destroyed.

From the description through a updateShadow() from a removed client, BUT: this would imply that the deleteLater event is delivered to a destroyed object, because the SceneOpenGLShadow should be destroyed with Compositor::finish() *before* that deletes the effects and scene.

=> Can you reproduce this?
Comment 2 wodencafe 2015-05-14 04:18:39 UTC
I can, check out this fresh 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 0x7f079f0fb800 (LWP 6492))]

Thread 5 (Thread 0x7f077a2e4700 (LWP 6510)):
#0  0x00007f079ebc48dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f0795cd9ebc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f0795cda242 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0784fb4ae6 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f0795d00955 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f07961f86aa in start_thread (arg=0x7f077a2e4700) at pthread_create.c:333
#6  0x00007f079ebcfeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f0779ae3700 (LWP 6511)):
#0  0x00007f079ebc48dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f0795cd9ebc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f0795cd9fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0795cda009 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f0795d00955 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f07961f86aa in start_thread (arg=0x7f0779ae3700) at pthread_create.c:333
#6  0x00007f079ebcfeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f076b064700 (LWP 6529)):
#0  0x00007ffe865fec58 in clock_gettime ()
#1  0x00007f079ebde38d in __GI___clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:115
#2  0x00007f079d233cb6 in qt_clock_gettime (ts=0x7f076b063b50, clock=<optimized out>) at tools/qelapsedtimer_unix.cpp:105
#3  do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at tools/qelapsedtimer_unix.cpp:161
#4  qt_gettime () at tools/qelapsedtimer_unix.cpp:170
#5  0x00007f079d412639 in QTimerInfoList::updateCurrentTime (this=this@entry=0x7f0760001118) at kernel/qtimerinfo_unix.cpp:84
#6  0x00007f079d41196e in QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f07600008e0, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:171
#7  0x00007f079d412275 in QEventDispatcherUNIX::processEvents (this=0x7f07600008c0, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#8  0x00007f079d3b93e2 in QEventLoop::exec (this=this@entry=0x7f076b063da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#9  0x00007f079d178b44 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#10 0x00007f079702bf65 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#11 0x00007f079d17db0e in QThreadPrivate::start (arg=0x1ef1e20) at thread/qthread_unix.cpp:337
#12 0x00007f07961f86aa in start_thread (arg=0x7f076b064700) at pthread_create.c:333
#13 0x00007f079ebcfeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f0753815700 (LWP 6567)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f079bf82644 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#2  0x00007f079bf82689 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#3  0x00007f07961f86aa in start_thread (arg=0x7f0753815700) at pthread_create.c:333
#4  0x00007f079ebcfeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f079f0fb800 (LWP 6492)):
[KCrash Handler]
#6  0x00007f079e79174d in KWin::SceneOpenGLShadow::~SceneOpenGLShadow (this=0x2717100, __in_chrg=<optimized out>) at ../scene_opengl.cpp:2106
#7  0x00007f079e791809 in KWin::SceneOpenGLShadow::~SceneOpenGLShadow (this=0x2717100, __in_chrg=<optimized out>) at ../scene_opengl.cpp:2109
#8  0x00007f079d3ed778 in QObject::event (this=0x2717100, e=<optimized out>) at kernel/qobject.cpp:1236
#9  0x00007f079dcc5b2c in QApplicationPrivate::notify_helper (this=0x1b460d0, receiver=0x2717100, e=0x25d4b60) at kernel/qapplication.cpp:3720
#10 0x00007f079dccb000 in QApplication::notify (this=0x7ffe865a4df0, receiver=0x2717100, e=0x25d4b60) at kernel/qapplication.cpp:3503
#11 0x00007f079d3bbc2b in QCoreApplication::notifyInternal (this=0x7ffe865a4df0, receiver=0x2717100, event=event@entry=0x25d4b60) at kernel/qcoreapplication.cpp:935
#12 0x00007f079d3bdc9b in sendEvent (event=0x25d4b60, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#13 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x1b36b20) at kernel/qcoreapplication.cpp:1552
#14 0x00007f079d412112 in QEventDispatcherUNIX::processEvents (this=0x1b33460, flags=flags@entry=...) at kernel/qeventdispatcher_unix.cpp:579
#15 0x00007f078822796d in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62
#16 0x00007f079d3b93e2 in QEventLoop::exec (this=this@entry=0x7ffe865a4d10, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#17 0x00007f079d3c102c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#18 0x00007f079d70031c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1510
#19 0x00007f079dcc17a5 in QApplication::exec () at kernel/qapplication.cpp:2956
#20 0x00007f079ee978c3 in kdemain (argc=1, argv=0x7ffe865a4f48) at ../main_x11.cpp:294
#21 0x00007f079eae9a40 in __libc_start_main (main=0x400790 <main(int, char**)>, argc=3, argv=0x7ffe865a4f48, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe865a4f38) at libc-start.c:289
#22 0x00000000004007c9 in _start ()
Comment 3 wodencafe 2015-05-14 04:24:03 UTC
Created attachment 92588 [details]
Plasma Crash Stacktrace

Plasma also crashed at the same time as Kwin, here is Plasma's stacktrace.
Comment 4 Thomas Lübking 2015-05-14 04:32:22 UTC
Plasma smells like bug #345660

Can you please attach the output of
   qdbus org.kde.KWin /KWin supportInformation
?
Comment 5 wodencafe 2015-05-14 04:34:39 UTC
Created attachment 92590 [details]
Result of qdbus org.kde.KWin /KWin supportInformation

Result of qdbus org.kde.KWin /KWin supportInformation
Comment 6 Thomas Lübking 2016-04-23 18:25:52 UTC
*** Bug 362147 has been marked as a duplicate of this bug. ***
Comment 7 Thomas Lübking 2016-04-23 18:26:24 UTC
Dupe isn't nvidia.
Comment 8 therammix 2016-05-15 13:54:35 UTC
Created attachment 98988 [details]
New crash information added by DrKonqi

kwin_x11 (5.5.5) using Qt 5.5.1

- What I was doing when the application crashed:

Starting some steam games (mostly indie, linux versions) leads to kwin crash when the game switches to fullscreen. With those specific games (e.g. "J.U.L.I.A: Among the Stars") this crash happens on every launch.

-- Backtrace (Reduced):
#6  0x00007f075f19bacd in KWin::SceneOpenGLShadow::~SceneOpenGLShadow (this=0x2171d60, __in_chrg=<optimized out>) at /usr/src/debug/kwin-5.5.5/scene_opengl.cpp:2210
#7  0x00007f075f19bb89 in KWin::SceneOpenGLShadow::~SceneOpenGLShadow (this=0x2171d60, __in_chrg=<optimized out>) at /usr/src/debug/kwin-5.5.5/scene_opengl.cpp:2213
#8  0x00007f075d3ceb18 in QObject::event (this=0x2171d60, e=<optimized out>) at kernel/qobject.cpp:1230
#9  0x00007f075e081e7c in QApplicationPrivate::notify_helper (this=this@entry=0x14ebf70, receiver=receiver@entry=0x2171d60, e=e@entry=0x1caa7d0) at kernel/qapplication.cpp:3716
#10 0x00007f075e086cc8 in QApplication::notify (this=0x7fffe8e33620, receiver=0x2171d60, e=0x1caa7d0) at kernel/qapplication.cpp:3499
Comment 9 Thomas Lübking 2016-05-26 20:10:56 UTC
*** Bug 363527 has been marked as a duplicate of this bug. ***
Comment 10 Fabian Henze 2016-06-09 17:12:55 UTC
Has this been fixed in kwin 5.6.x? I don't want to upgrade my distribution to the experimental branch just to check if it is fixed ...
Comment 11 Fabian Henze 2016-06-09 17:29:12 UTC
I just found that this bug has been fixed by https://quickgit.kde.org/?p=kwin.git&a=commit&h=cae90bb035e6170a9beb38545cf60e31af612804 which can be applied to kwin 5.5.5 without conflicts. So I guess this can be closed.
Comment 12 Thomas Lübking 2016-06-09 20:06:46 UTC
Thanks for the backlink, update and confirmation =)
Comment 13 Thomas Lübking 2016-07-23 10:31:10 UTC
*** Bug 365964 has been marked as a duplicate of this bug. ***