Bug 348873 - kwin crahed after waking up from suspend-to-RAM
Summary: kwin crahed after waking up from suspend-to-RAM
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: scene-opengl (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 352423 359374 361609 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-06-08 08:57 UTC by Arne Henningsen
Modified: 2018-12-01 03:48 UTC (History)
3 users (show)

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


Attachments
Output of "glxinfo" (72.31 KB, text/plain)
2015-06-08 19:22 UTC, Arne Henningsen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Arne Henningsen 2015-06-08 08:57:41 UTC
Application: kwin_x11 (5.2.2)

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

-- Information about the crash:
I suspended my laptop computer (HP EliteBook 8560w) to RAM when it was not in a docking station. At my workplace, I put the computer into a docking station with external monitor and woke it up from suspend-to-RAM. A program window was on top of the lock screen and mostly covered it so that I could not enter my password and unlock the screen. However, after some seconds, the program window disappeared so that I could see the entire lock screen and unlock the screen. After unlocking, the bug reporting assistent informed me that kwin has crashed but everything seems to work normal. I have experience the same or similar problems several times after upgrading to "vivid." This crash may be related to following bug that I (more) frequently experience on the same computer:

https://bugs.launchpad.net/ubuntu/+source/kwin/+bug/1461001

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 0x7fe3e1eb6800 (LWP 1783))]

Thread 6 (Thread 0x7fe3c1fbc700 (LWP 1800)):
#0  0x00007fe3e1991743 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fe3e01db101 in qt_safe_select (nfds=17, fdread=fdread@entry=0x7fe3b8000a98, fdwrite=fdwrite@entry=0x7fe3b8000d28, fdexcept=fdexcept@entry=0x7fe3b8000fb8, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:75
#2  0x00007fe3e01dccd2 in select (timeout=0x0, exceptfds=0x7fe3b8000fb8, writefds=0x7fe3b8000d28, readfds=0x7fe3b8000a98, nfds=<optimized out>, this=0x7fe3b80008e0) at kernel/qeventdispatcher_unix.cpp:320
#3  QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7fe3b8000900, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:196
#4  0x00007fe3e01dd275 in QEventDispatcherUNIX::processEvents (this=0x7fe3b80008e0, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#5  0x00007fe3e01843e2 in QEventLoop::exec (this=this@entry=0x7fe3c1fbbda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007fe3dff43b44 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#7  0x00007fe3d9df6f65 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007fe3dff48b0e in QThreadPrivate::start (arg=0x15a9060) at thread/qthread_unix.cpp:337
#9  0x00007fe3d8fc36aa in start_thread (arg=0x7fe3c1fbc700) at pthread_create.c:333
#10 0x00007fe3e199aeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7fe3b2ffd700 (LWP 1870)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fe3ded4d644 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#2  0x00007fe3ded4d689 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#3  0x00007fe3d8fc36aa in start_thread (arg=0x7fe3b2ffd700) at pthread_create.c:333
#4  0x00007fe3e199aeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7fe3b37fe700 (LWP 3750)):
#0  0x00007fe3e1991743 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fe3e01db101 in qt_safe_select (nfds=13, fdread=fdread@entry=0x7fe3a4000a98, fdwrite=fdwrite@entry=0x7fe3a4000d28, fdexcept=fdexcept@entry=0x7fe3a4000fb8, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:75
#2  0x00007fe3e01dccd2 in select (timeout=0x0, exceptfds=0x7fe3a4000fb8, writefds=0x7fe3a4000d28, readfds=0x7fe3a4000a98, nfds=<optimized out>, this=0x7fe3a40008e0) at kernel/qeventdispatcher_unix.cpp:320
#3  QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7fe3a4000900, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:196
#4  0x00007fe3e01dd275 in QEventDispatcherUNIX::processEvents (this=0x7fe3a40008e0, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#5  0x00007fe3e01843e2 in QEventLoop::exec (this=this@entry=0x7fe3b37fdda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007fe3dff43b44 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#7  0x00007fe3d9df6f65 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007fe3dff48b0e in QThreadPrivate::start (arg=0x1ceca80) at thread/qthread_unix.cpp:337
#9  0x00007fe3d8fc36aa in start_thread (arg=0x7fe3b37fe700) at pthread_create.c:333
#10 0x00007fe3e199aeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7fe3b3fff700 (LWP 3751)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fe3dff49c6b in wait (time=18446744073709551615, this=0x1e84000) at thread/qwaitcondition_unix.cpp:128
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x20c93d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:200
#3  0x00007fe3defd4fab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#4  0x00007fe3defd53a0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#5  0x00007fe3dff48b0e in QThreadPrivate::start (arg=0x20c9350) at thread/qthread_unix.cpp:337
#6  0x00007fe3d8fc36aa in start_thread (arg=0x7fe3b3fff700) at pthread_create.c:333
#7  0x00007fe3e199aeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7fe3c33e2700 (LWP 10666)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fe3dff49c6b in wait (time=18446744073709551615, this=0x2652130) at thread/qwaitcondition_unix.cpp:128
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x24debc0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:200
#3  0x00007fe3defd4fab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#4  0x00007fe3defd53a0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#5  0x00007fe3dff48b0e in QThreadPrivate::start (arg=0x24deb40) at thread/qthread_unix.cpp:337
#6  0x00007fe3d8fc36aa in start_thread (arg=0x7fe3c33e2700) at pthread_create.c:333
#7  0x00007fe3e199aeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7fe3e1eb6800 (LWP 1783)):
[KCrash Handler]
#6  __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
#7  0x00007fe3da247516 in KWin::GLVertexBuffer::setData (this=this@entry=0x15eb8b0, vertexCount=24, dim=dim@entry=2, vertices=0x1619e48, texcoords=texcoords@entry=0x0) at ../../libkwineffects/kwinglutils.cpp:2242
#8  0x00007fe3e1556d3d in KWin::SceneOpenGL2::doPaintBackground (this=<optimized out>, vertices=...) at ../scene_opengl.cpp:1039
#9  0x00007fe3e155c475 in KWin::SceneOpenGL::paintBackground (this=this@entry=0x1601110, region=...) at ../scene_opengl.cpp:732
#10 0x00007fe3e1545e6c in KWin::Scene::paintSimpleScreen (this=this@entry=0x1601110, orig_mask=orig_mask@entry=0, region=...) at ../scene.cpp:369
#11 0x00007fe3e1556513 in KWin::SceneOpenGL2::paintSimpleScreen (this=this@entry=0x1601110, mask=mask@entry=0, region=...) at ../scene_opengl.cpp:1005
#12 0x00007fe3e1543205 in KWin::Scene::finalPaintScreen (this=0x1601110, mask=mask@entry=0, region=..., data=...) at ../scene.cpp:199
#13 0x00007fe3e1579cff in KWin::EffectsHandlerImpl::paintScreen (this=0x160a090, mask=mask@entry=0, region=..., data=...) at ../effects.cpp:393
#14 0x00007fe3df75457f in KWin::Effect::paintScreen (this=this@entry=0x162e030, mask=mask@entry=0, region=..., data=...) at ../../libkwineffects/kwineffects.cpp:535
#15 0x00007fe3e1579cad in KWin::EffectsHandlerImpl::paintScreen (this=0x160a090, mask=mask@entry=0, region=..., data=...) at ../effects.cpp:390
#16 0x00007fe3df75457f in KWin::Effect::paintScreen (this=this@entry=0x1603fc0, mask=mask@entry=0, region=..., data=...) at ../../libkwineffects/kwineffects.cpp:535
#17 0x00007fe3e1579cad in KWin::EffectsHandlerImpl::paintScreen (this=0x160a090, mask=0, region=..., data=...) at ../effects.cpp:390
#18 0x00007fe3e1542e6a in KWin::Scene::paintScreen (this=this@entry=0x1601110, mask=mask@entry=0x7ffc575427cc, damage=..., repaint=..., updateRegion=updateRegion@entry=0x7ffc575427e0, validRegion=validRegion@entry=0x7ffc575427f0) at ../scene.cpp:149
#19 0x00007fe3e155cda7 in KWin::SceneOpenGL::paint (this=0x1601110, damage=..., toplevels=...) at ../scene_opengl.cpp:651
#20 0x00007fe3e153c973 in KWin::Compositor::performCompositing (this=0x155a530) at ../composite.cpp:658
#21 0x00007fe3e01b86f3 in QObject::event (this=0x155a530, e=<optimized out>) at kernel/qobject.cpp:1267
#22 0x00007fe3e0a90b2c in QApplicationPrivate::notify_helper (this=0x14613d0, receiver=0x155a530, e=0x7ffc57542c00) at kernel/qapplication.cpp:3720
#23 0x00007fe3e0a96000 in QApplication::notify (this=0x7ffc57542e40, receiver=0x155a530, e=0x7ffc57542c00) at kernel/qapplication.cpp:3503
#24 0x00007fe3e0186c2b in QCoreApplication::notifyInternal (this=0x7ffc57542e40, receiver=0x155a530, event=event@entry=0x7ffc57542c00) at kernel/qcoreapplication.cpp:935
#25 0x00007fe3e01deae5 in sendEvent (event=0x7ffc57542c00, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#26 QTimerInfoList::activateTimers (this=0x14ab4e8) at kernel/qtimerinfo_unix.cpp:635
#27 0x00007fe3e01dc6a0 in QEventDispatcherUNIX::activateTimers (this=this@entry=0x14b9160) at kernel/qeventdispatcher_unix.cpp:549
#28 0x00007fe3e01dd243 in QEventDispatcherUNIX::processEvents (this=0x14b9160, flags=flags@entry=...) at kernel/qeventdispatcher_unix.cpp:611
#29 0x00007fe3caf1d96d in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62
#30 0x00007fe3e01843e2 in QEventLoop::exec (this=this@entry=0x7ffc57542d60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#31 0x00007fe3e018c02c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#32 0x00007fe3e04cb31c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1510
#33 0x00007fe3e0a8c7a5 in QApplication::exec () at kernel/qapplication.cpp:2956
#34 0x00007fe3e1c628c3 in kdemain (argc=1, argv=0x7ffc57542f98) at ../main_x11.cpp:294
#35 0x00007fe3e18b4a40 in __libc_start_main (main=0x400790 <main(int, char**)>, argc=1, argv=0x7ffc57542f98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc57542f88) at libc-start.c:289
#36 0x00000000004007c9 in _start ()

Reported using DrKonqi
Comment 1 Thomas Lübking 2015-06-08 18:39:27 UTC
can you please attach the output of "glxinfo"
Comment 2 Arne Henningsen 2015-06-08 19:22:03 UTC
Created attachment 93082 [details]
Output of "glxinfo"

generated with 'glxinfo > glxinfo.txt'
Comment 3 Thomas Lübking 2015-06-08 19:44:45 UTC
Thanks, just as expected.
------------------------------------
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro 2000M/PCIe/SSE2
OpenGL core profile version string: 4.4.0 NVIDIA 346.59
OpenGL core profile shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
------------------------------------------------------------------------

This *might* be worked around, see bug #344326 - it vastly depends when kwin crashes here.
May just as well be a related problem in the nvidia driver (or it's usage by kwin, we don't know why datamoving between memories by the driver is wonky)
Comment 4 Arne Henningsen 2015-06-09 07:00:43 UTC
Unfortunately, the work-around with "Alt+Shift+F12" as suggested in bug #344326 does not work for me. Perhaps, it does not work, because my screen is locked so that "Alt+Shift+F12" is blocked by the lock screen (while "Ctrl-Alt-FX", with X=1,...,7 is not blocked by the lock screen).
Comment 5 Thomas Lübking 2015-06-09 08:21:23 UTC
Yes.
Possible functional workarounds are
a) suspending the compositor *before* suspending to ram
b) the patch that resets the VBOs on memory transfer (for KWin 5.4)
    ==> the interesting question here is whether resetting VBOs "in time" prevents the crashes as well (or the broken memory transfer randomly causes crash and corruption, depending on the nature of the invalid access)
Comment 6 Martin Flöser 2015-09-08 12:25:05 UTC
*** Bug 352423 has been marked as a duplicate of this bug. ***
Comment 7 Thomas Lübking 2016-02-14 11:28:00 UTC
*** Bug 359374 has been marked as a duplicate of this bug. ***
Comment 8 Thomas Lübking 2016-04-10 20:10:07 UTC
*** Bug 361609 has been marked as a duplicate of this bug. ***
Comment 9 Martin Flöser 2016-08-29 07:31:04 UTC
The latest NVIDIA driver has an extension to report about this situation: https://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt
Comment 10 Andrew Crouthamel 2018-11-01 13:51:12 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 11 Bug Janitor Service 2018-11-16 11:34:27 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 12 Bug Janitor Service 2018-12-01 03:48:46 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!