Bug 324004

Summary: Desktop Effects Composition Type XRender and Qt Raster crashed KWin
Product: [Plasma] kwin Reporter: Søvnige Hode <sovn>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: mail, sovn
Priority: NOR Keywords: drkonqi
Version: 4.11.0Flags: thomas.luebking: ReviewRequest+
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
URL: https://git.reviewboard.kde.org/r/112274/
Latest Commit: Version Fixed In: 4.11.1
Attachments: New crash information added by DrKonqi

Description Søvnige Hode 2013-08-25 10:29:07 UTC
Application: kwin (4.11.00)
KDE Platform Version: 4.11.00
Qt Version: 4.8.4
Operating System: Linux 3.10.0-5-generic x86_64
Distribution: Ubuntu Saucy Salamander (development branch)

-- Information about the crash:
Fresh install of Kubuntu 13.10 Alpha 2 AMD64

Patriot Wildfire SE 480GB SSD, 32GB DDR3 1600, GTX670M, i7-3610QM @ 2.30 GHz, Desktop Effects Compsotion type XRender and Qt setting Raster crashed KWin, Native had no problem, OpenGL versions worked fine with Qt set to Raster.

The crash can be reproduced every time.

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

Thread 3 (Thread 0x7f0c372ef700 (LWP 29675)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f0c4df693e4 in wait (time=30000, this=0x15cb520) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x15cb4c8, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f0c4df5c8a5 in QThreadPoolThread::run (this=0x1432a50) at concurrent/qthreadpool.cpp:141
#4  0x00007f0c4df68f2f in QThreadPrivate::start (arg=0x1432a50) at thread/qthread_unix.cpp:338
#5  0x00007f0c4b83cf6e in start_thread (arg=0x7f0c372ef700) at pthread_create.c:311
#6  0x00007f0c53c9ae2d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7f0c353e6700 (LWP 29676)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f0c4df693e4 in wait (time=30000, this=0x15cb520) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x15cb4c8, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f0c4df5c8a5 in QThreadPoolThread::run (this=0x165ccc0) at concurrent/qthreadpool.cpp:141
#4  0x00007f0c4df68f2f in QThreadPrivate::start (arg=0x165ccc0) at thread/qthread_unix.cpp:338
#5  0x00007f0c4b83cf6e in start_thread (arg=0x7f0c353e6700) at pthread_create.c:311
#6  0x00007f0c53c9ae2d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7f0c544d67c0 (LWP 29671)):
[KCrash Handler]
#6  value (this=0x0) at ../../kwin/libkwineffects/kwinxrenderutils.h:107
#7  operator xcb_render_picture_t (this=0x17ce780) at ../../kwin/libkwineffects/kwinxrenderutils.h:119
#8  KWin::SceneXRenderShadow::prepareBackend (this=0x1793410) at ../../kwin/scene_xrender.cpp:1119
#9  0x00007f0c53ff0703 in KWin::Shadow::init (this=this@entry=0x1793410, data=...) at ../../kwin/shadow.cpp:109
#10 0x00007f0c53ff07cd in KWin::Shadow::createShadow (toplevel=toplevel@entry=0x17d2b30) at ../../kwin/shadow.cpp:61
#11 0x00007f0c5402cde8 in KWin::Toplevel::getShadow (this=this@entry=0x17d2b30) at ../../kwin/toplevel.cpp:364
#12 0x00007f0c540398f3 in KWin::SceneXrender::windowAdded (this=0x15efef0, c=0x17d2b30) at ../../kwin/scene_xrender.cpp:290
#13 0x00007f0c540262b5 in KWin::Toplevel::setupCompositing (this=0x17d2b30) at ../../kwin/composite.cpp:852
#14 0x00007f0c5402678e in KWin::Client::setupCompositing (this=0x17d2b30) at ../../kwin/composite.cpp:1114
#15 0x00007f0c54029940 in KWin::Compositor::slotCompositingOptionsInitialized (this=0x1619e60) at ../../kwin/composite.cpp:255
#16 0x00007f0c53fb3ce5 in KWin::Compositor::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at moc_composite.cpp:194
#17 0x00007f0c4e07ca58 in QMetaObject::activate (sender=0x1685810, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3539
#18 0x00007f0c4df59ac8 in QFutureWatcherBase::event (this=<optimized out>, event=0x7f0c280013c0) at concurrent/qfuturewatcher.cpp:344
#19 0x00007f0c4d405dfc in QApplicationPrivate::notify_helper (this=this@entry=0x142e1c0, receiver=receiver@entry=0x1685810, e=e@entry=0x7f0c280013c0) at kernel/qapplication.cpp:4567
#20 0x00007f0c4d40c470 in QApplication::notify (this=this@entry=0x7fff334b9a10, receiver=receiver@entry=0x1685810, e=e@entry=0x7f0c280013c0) at kernel/qapplication.cpp:4353
#21 0x00007f0c528e29aa in KApplication::notify (this=0x7fff334b9a10, receiver=0x1685810, event=0x7f0c280013c0) at ../../kdeui/kernel/kapplication.cpp:311
#22 0x00007f0c4e0688bd in QCoreApplication::notifyInternal (this=0x7fff334b9a10, receiver=receiver@entry=0x1685810, event=event@entry=0x7f0c280013c0) at kernel/qcoreapplication.cpp:946
#23 0x00007f0c4e06be1f in sendEvent (event=0x7f0c280013c0, receiver=0x1685810) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#24 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x13c81f0) at kernel/qcoreapplication.cpp:1570
#25 0x00007f0c4e06c2c3 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1463
#26 0x00007f0c4d4a814c in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#27 QEventDispatcherX11::processEvents (this=0x13c9ad0, flags=...) at kernel/qeventdispatcher_x11.cpp:75
#28 0x00007f0c4e0675ef in QEventLoop::processEvents (this=this@entry=0x7fff334b9880, flags=...) at kernel/qeventloop.cpp:149
#29 0x00007f0c4e0678e5 in QEventLoop::exec (this=this@entry=0x7fff334b9880, flags=...) at kernel/qeventloop.cpp:204
#30 0x00007f0c4e06ce5b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#31 0x00007f0c4d40434c in QApplication::exec () at kernel/qapplication.cpp:3828
#32 0x00007f0c53fe3226 in kdemain (argc=3, argv=0x7fff334b9b58) at ../../kwin/main.cpp:589
#33 0x00007f0c53bc2de5 in __libc_start_main (main=0x4006d0 <main(int, char**)>, argc=3, ubp_av=0x7fff334b9b58, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff334b9b48) at libc-start.c:260
#34 0x00000000004006fe in _start ()

Possible duplicates by query: bug 323527.

Reported using DrKonqi
Comment 1 Marek Paśnikowski 2013-08-25 10:45:48 UTC
Created attachment 81909 [details]
New crash information added by DrKonqi

kwin (4.11.00) on KDE Platform 4.11.00 using Qt 4.8.5

- What I was doing when the application crashed:
In search of optimal FGLRX settings I wanted to checkout out the combination of XRender + Raster rendering. Crashed seconds after I confirmed the setting worked - I mean the modal window with time counter.

- Custom settings of the application:
I had enforced 50Hz in the amdcccle. Resolution 1920x1080; Radeon HD5870. The tear-free mode set to enabled.

-- Backtrace (Reduced):
#6  value (this=0x0) at /usr/src/debug/kde-workspace-4.11.0/kwin/libkwineffects/kwinxrenderutils.h:107
#7  operator xcb_render_picture_t (this=0x254dce0) at /usr/src/debug/kde-workspace-4.11.0/kwin/libkwineffects/kwinxrenderutils.h:119
#8  KWin::SceneXRenderShadow::prepareBackend (this=0x25cb6d0) at /usr/src/debug/kde-workspace-4.11.0/kwin/scene_xrender.cpp:1119
#9  0x00007f6cadf469ec in KWin::Shadow::init (this=this@entry=0x25cb6d0, data=...) at /usr/src/debug/kde-workspace-4.11.0/kwin/shadow.cpp:109
#10 0x00007f6cadf46e95 in KWin::Shadow::createShadow (toplevel=0x247f7e0) at /usr/src/debug/kde-workspace-4.11.0/kwin/shadow.cpp:61
Comment 2 Marek Paśnikowski 2013-08-25 10:53:56 UTC
I am sorry - After more testing I confirmed that I wrote wrong information. The countdown window does not appear, when I enable the bad combination. In fact, the compositing never starts. It is simple crash on click of "apply" button. It looks like kwin tries multiple times before giving up.
Comment 3 Thomas Lübking 2013-08-25 12:40:39 UTC
The d KSharedPtr member ::isNull - what should probably rather not happen.
Nevertheless, catching that case and returning XCB_RENDER_PICTURE_NONE will just break shadows.
Comment 4 Thomas Lübking 2013-08-25 14:21:16 UTC
Don't look at the fix if you don't have to.
Just apply and then pass on.
Nothing to see here, esp. not any idiotic developer... ;-)
Comment 5 Thomas Lübking 2013-08-25 15:04:13 UTC
Git commit ec6d66f53cf32e29ab54e450145585a6cc2eb8e7 by Thomas Lübking.
Committed on 25/08/2013 at 14:17.
Pushed by luebking into branch 'KDE/4.11'.

c++ cannot invoke other constructors
Related: bug 112274
FIXED-IN: 4.11.1

M  +6    -1    kwin/libkwineffects/kwinxrenderutils.cpp
M  +1    -0    kwin/libkwineffects/kwinxrenderutils.h

http://commits.kde.org/kde-workspace/ec6d66f53cf32e29ab54e450145585a6cc2eb8e7