Bug 309626 - KDE gfx subsystem failure(s)
Summary: KDE gfx subsystem failure(s)
Alias: None
Product: kwin
Classification: Plasma
Component: aurorae (show other bugs)
Version: 4.9.2
Platform: Compiled Sources Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: KWin default assignee
Depends on:
Reported: 2012-11-06 05:15 UTC by magnus
Modified: 2014-01-08 13:47 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description magnus 2012-11-06 05:15:08 UTC
Application: kwin (4.9.2)
KDE Platform Version: 4.9.2 (Compiled from sources)
Qt Version: 4.8.2
Operating System: Linux 3.6.3-1.fc17.i686 i686
Distribution (Platform): Fedora RPMs

-- Information about the crash:
- What I was doing when the application crashed:
Switched Qt gfx subsys to 'Native', was alerted desktop effect 'Slide' would no longer function. Disable effect, KDE crashes.
- Unusual behavior I noticed:
multiple further errors as desktop env restated

-- Backtrace:
Application: KWin (kwin), signal: Aborted
Using host libthread_db library "/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0xb77677c0 (LWP 1173))]

Thread 2 (Thread 0xb3351b40 (LWP 1179)):
#0  0xb77aa424 in __kernel_vsyscall ()
#1  0x4b82212c in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:172
#2  0x4567954d in QTWTF::TCMalloc_PageHeap::scavengerThread (this=this@entry=0x457884c0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#3  0x45679580 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x457884c0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#4  0x4b81eadf in start_thread (arg=0xb3351b40) at pthread_create.c:309
#5  0x4b7583ce in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 1 (Thread 0xb77677c0 (LWP 1173)):
[KCrash Handler]
#7  0xb77aa424 in __kernel_vsyscall ()
#8  0x4b69293f in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#9  0x4b694293 in __GI_abort () at abort.c:91
#10 0x4b68b677 in __assert_fail_base (fmt=0x4b7d3818 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x4bc6d26f "ret != inval_id", file=file@entry=0x4bc6d1ea "xcb_io.c", line=line@entry=528, function=function@entry=0x4bc6d2f4 "_XAllocID") at assert.c:94
#11 0x4b68b727 in __GI___assert_fail (assertion=assertion@entry=0x4bc6d26f "ret != inval_id", file=file@entry=0x4bc6d1ea "xcb_io.c", line=line@entry=528, function=function@entry=0x4bc6d2f4 "_XAllocID") at assert.c:103
#12 0x4bbf4dd1 in _XAllocID (dpy=0x9942460) at xcb_io.c:528
#13 0x4bd3022b in XRenderCreatePicture (dpy=0x9942460, drawable=31774451, format=0x99337b0, valuemask=0, attributes=0x0) at Picture.c:90
#14 0x41a402b4 in QX11PixmapData::x11ConvertToDefaultDepth (this=0x9e1dad8) at image/qpixmap_x11.cpp:2255
#15 0x419ea366 in QWidgetPrivate::setWindowIcon_sys (this=0xa42c758, forceReset=false) at kernel/qwidget_x11.cpp:1526
#16 0x41993bdf in QWidget::create (this=this@entry=0xa2191e0, window=window@entry=0, initializeWindow=initializeWindow@entry=true, destroyOldWindow=destroyOldWindow@entry=true) at kernel/qwidget.cpp:1541
#17 0x419942b0 in QWidgetPrivate::createWinId (this=0xa42c758, winid=0) at kernel/qwidget.cpp:2574
#18 0x419e9613 in QWidgetPrivate::setParent_sys (this=0xa42c758, parent=0x0, f=...) at kernel/qwidget_x11.cpp:1198
#19 0x4199f331 in QWidget::setParent (this=this@entry=0xa2191e0, parent=parent@entry=0x0, f=...) at kernel/qwidget.cpp:10195
#20 0x4199fbf0 in QWidget::setParent (this=0xa2191e0, parent=0x0) at kernel/qwidget.cpp:10142
#21 0xb5f3f046 in Aurorae::AuroraeClient::~AuroraeClient (this=0xb89a9b8, __in_chrg=<optimized out>) at /usr/src/debug/kde-workspace-4.9.2/kwin/clients/aurorae/src/aurorae.cpp:194
#22 0xb5f3f093 in Aurorae::AuroraeClient::~AuroraeClient (this=0xb89a9b8, __in_chrg=<optimized out>) at /usr/src/debug/kde-workspace-4.9.2/kwin/clients/aurorae/src/aurorae.cpp:196
#23 0x435b7a99 in KWin::Client::destroyDecoration (this=this@entry=0x9d41bf0) at /usr/src/debug/kde-workspace-4.9.2/kwin/client.cpp:436
#24 0x435b839b in KWin::Client::releaseWindow (this=0x9d41bf0, on_shutdown=true) at /usr/src/debug/kde-workspace-4.9.2/kwin/client.cpp:268
#25 0x435a5d7c in KWin::Workspace::~Workspace (this=0x9a1bf78, __in_chrg=<optimized out>) at /usr/src/debug/kde-workspace-4.9.2/kwin/workspace.cpp:529
#26 0x435a6543 in KWin::Workspace::~Workspace (this=0x9a1bf78, __in_chrg=<optimized out>) at /usr/src/debug/kde-workspace-4.9.2/kwin/workspace.cpp:564
#27 0x435c70d9 in KWin::Application::lostSelection (this=0xbfd52c98) at /usr/src/debug/kde-workspace-4.9.2/kwin/main.cpp:354
#28 0x41197cde in QMetaObject::activate (sender=0xbfd52ca4, m=0x42b993b0, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3547
#29 0x429c43b6 in KSelectionOwner::lostOwnership (this=this@entry=0xbfd52ca4) at /usr/src/debug/kdelibs-4.9.2/i686-redhat-linux-gnu/kdeui/kmanagerselection.moc:97
#30 0x429c452e in KSelectionOwner::filterEvent (this=0xbfd52ca4, ev_P=ev_P@entry=0xbfd5298c) at /usr/src/debug/kdelibs-4.9.2/kdeui/util/kmanagerselection.cpp:224
#31 0x429c4d37 in KSelectionOwner::Private::x11Event (this=0x9a1d1f8, ev_P=0xbfd5298c) at /usr/src/debug/kdelibs-4.9.2/kdeui/util/kmanagerselection.cpp:80
#32 0x42952033 in publicx11Event (e=0xbfd5298c, this=<optimized out>) at /usr/src/debug/kdelibs-4.9.2/kdeui/kernel/kapplication.cpp:918
#33 KApplication::x11EventFilter (this=0xbfd52c98, _event=0xbfd5298c) at /usr/src/debug/kdelibs-4.9.2/kdeui/kernel/kapplication.cpp:930
#34 0x435c5a17 in x11EventFilter (e=0xbfd5298c, this=0xbfd52c98) at /usr/src/debug/kde-workspace-4.9.2/kwin/main.cpp:364
#35 KWin::Application::x11EventFilter (this=0xbfd52c98, e=0xbfd5298c) at /usr/src/debug/kde-workspace-4.9.2/kwin/main.cpp:360
#36 0x419bb72e in qt_x11EventFilter (ev=0xbfd5298c) at kernel/qapplication_x11.cpp:435
#37 qt_x11EventFilter (ev=0xbfd5298c) at kernel/qapplication_x11.cpp:423
#38 0x419c9f32 in QApplication::x11ProcessEvent (this=0xbfd52c98, event=0xbfd5298c) at kernel/qapplication_x11.cpp:3358
#39 0x419f526d in QEventDispatcherX11::processEvents (this=0x98fbc68, flags=...) at kernel/qeventdispatcher_x11.cpp:132
#40 0x4117e08d in QEventLoop::processEvents (this=this@entry=0xbfd52b18, flags=...) at kernel/qeventloop.cpp:149
#41 0x4117e389 in QEventLoop::exec (this=0xbfd52b18, flags=...) at kernel/qeventloop.cpp:204
#42 0x411838cb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#43 0x4193fd35 in QApplication::exec () at kernel/qapplication.cpp:3812
#44 0x435c8350 in kdemain (argc=3, argv=0xbfd52d84) at /usr/src/debug/kde-workspace-4.9.2/kwin/main.cpp:545
#45 0x0804876c in main (argc=3, argv=0xbfd52d84) at /usr/src/debug/kde-workspace-4.9.2/i686-redhat-linux-gnu/kwin/kwin_dummy.cpp:3

Possible duplicates by query: bug 308195, bug 303176, bug 301141, bug 292706, bug 289949.

Reported using DrKonqi
Comment 1 Thomas Lübking 2012-11-06 06:35:23 UTC
You got a "crash on exit" because kwin needs to restart to alter the graphicssystem.
The crash was caused by the window decoration (aurorae, the things you can get from GHNS) and is actually a SIGABRT caused by an xcb assertion.

FTR: the deco does not like the native graphicssystem too much anyway (inferior qml performance), so unless using the Xrender compositor, you're better off not using it.

smells like calling QWidget::setParent(0) in the deconstructor is not reliable, at least not on exit and for the raster graphicssystem.
-> hook onto qApp->aboutToQuit() and introduce a flag to omit special deconstruction in that case?
Comment 2 Thomas Lübking 2012-11-06 06:36:17 UTC
forgot component update...
Comment 3 Martin Flöser 2012-11-06 16:55:54 UTC
but there is probably a good reason why the setParent(NULL) call is there. I just don't remember why and I would like to be able to reproduce the issue. Looks to me like a side issue. Given that there is an assertion I would expect that something is build in debug mode which shouldn't be?
Comment 4 Thomas Lübking 2012-11-06 17:08:02 UTC
commit c3361a7cfb47feaf93fa4d0768272a0cba847328
Author: Martin Gräßlin <kde@martin-graesslin.com>
Date:   Sat Jun 19 15:23:48 2010 +0000

    Defer deletion of the AuroraeScene and View to the next event loop. It is possible that the scene get's deleted before processing mouse events
    BUG: 242165
    FIXED-IN: 4.5.0
    CCBUG: 241876
    CCBUG: 242116


There's not next event loop in this (after aboutToQuit) case anyway and the deconstruction will not be caused by an event.

Also this may meanwhile be covered by the discussed general QueuedConnection (i'd have to check whether that was actually done) for useractions.

I'd say it's as long a corner case as it does not get you a crash on exit for every logout.

@magnus: is this a reproducible problem?
Comment 5 Martin Flöser 2012-11-06 17:16:20 UTC
> Also this may meanwhile be covered by the discussed general QueuedConnection
> (i'd have to check whether that was actually done) for useractions.
yeah, quite likely that it is no longer needed
Comment 6 Martin Flöser 2014-01-08 13:47:27 UTC
assuming fixed