Bug 260365

Summary: KWin crashes frequently on alt-tab
Product: [Plasma] kwin Reporter: jos poortvliet <jospoortvliet>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:

Description jos poortvliet 2010-12-17 13:48:59 UTC
Application: kwin (4.5.4 (KDE 4.5.4) "release 9")
KDE Platform Version: 4.5.4 (KDE 4.5.4) "release 9"
Qt Version: 4.6.3
Operating System: Linux 2.6.34.7-0.5-desktop i686
Distribution: "openSUSE 11.3 (i586)"

-- Information about the crash:
- Unusual behavior I noticed: kwin seems to regularly just crash on alt-tab between windows. There doesn't seem to be any logic there, it just crashes about every once every 30 times I switch windows... something like 10 times a day I suppose?!?

The crash can be reproduced some of the time.

-- Backtrace:
Application: KWin (kwin), signal: Segmentation fault
[KCrash Handler]
#7  0x10478b10 in ?? ()
#8  0xb76556fd in KWin::TabBox::ClientModel::data (this=0x8280b28, index=..., role=33) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox/clientmodel.cpp:67
#9  0xb76a4352 in KWin::TabBox::ClientItemDelegate::rowSize (this=0x8289548, index=..., row=0) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox/clientitemdelegate.cpp:264
#10 0xb76a4518 in KWin::TabBox::ClientItemDelegate::sizeHint (this=0x8289548, option=..., index=...) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox/clientitemdelegate.cpp:82
#11 0xb61906ce in QTableView::sizeHintForColumn (this=0x8441e70, column=0) at itemviews/qtableview.cpp:2217
#12 0xb7652c7b in KWin::TabBox::TabBoxAdditionalView::sizeHint (this=0x8441e70) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox/tabboxview.cpp:450
#13 0xb5c1bec9 in QWidgetPrivate::adjustedSize (this=0x8467868) at kernel/qwidget.cpp:7798
#14 0xb5c25d0d in QWidget::adjustSize (this=0x8441e70) at kernel/qwidget.cpp:7862
#15 0xb5c2ba2d in QWidget::setVisible (this=0x8441e70, visible=true) at kernel/qwidget.cpp:7433
#16 0xb76609a1 in show (this=0x82f7090) at /usr/include/QtGui/qwidget.h:485
#17 KWin::TabBox::TabBoxView::configChanged (this=0x82f7090) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox/tabboxview.cpp:300
#18 0xb7660d79 in KWin::TabBox::TabBoxView::qt_metacall (this=0x82f7090, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfdc494c)
    at /usr/src/debug/kdebase-workspace-4.5.4/build/kwin/tabboxview.moc:79
#19 0xb669eefd in QMetaObject::metacall (object=0x82f7090, cl=QMetaObject::InvokeMetaMethod, idx=28, argv=0xbfdc494c) at kernel/qmetaobject.cpp:237
#20 0xb66adfe8 in QMetaObject::activate (sender=0x8275ee8, m=0xb7739bc4, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3295
#21 0xb770eb65 in KWin::TabBox::TabBoxHandler::configChanged (this=0x8275ee8) at /usr/src/debug/kdebase-workspace-4.5.4/build/kwin/moc_tabboxhandler.cpp:84
#22 0xb76a383f in KWin::TabBox::TabBoxHandler::setConfig (this=0x8275ee8, config=...) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox/tabboxhandler.cpp:445
#23 0xb76bdfd5 in KWin::Workspace::startKDEWalkThroughWindows (this=0x8112d58, mode=KWin::TabBoxWindowsMode) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox.cpp:918
#24 0xb76ecaa6 in KWin::Workspace::navigatingThroughWindows (this=0x8112d58, forward=true, shortcut=..., mode=KWin::TabBoxWindowsMode) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox.cpp:762
#25 0xb76ecbc9 in KWin::Workspace::slotWalkThroughWindows (this=0x8112d58) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/tabbox.cpp:774
#26 0xb77013a4 in KWin::Workspace::qt_metacall (this=0x8112d58, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfdc4b88)
    at /usr/src/debug/kdebase-workspace-4.5.4/build/kwin/workspace.moc:492
#27 0xb669eefd in QMetaObject::metacall (object=0x8112d58, cl=QMetaObject::InvokeMetaMethod, idx=99, argv=0xbfdc4b88) at kernel/qmetaobject.cpp:237
#28 0xb66adfe8 in QMetaObject::activate (sender=0x81ef1f8, m=0xb6501d28, local_signal_index=1, argv=0xbfdc4b88) at kernel/qobject.cpp:3295
#29 0xb5bcba0d in QAction::triggered (this=0x81ef1f8, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#30 0xb5bcbcab in QAction::activate (this=0x81ef1f8, event=QAction::Trigger) at kernel/qaction.cpp:1255
#31 0xb72c9497 in trigger (this=0x82b52e0, componentUnique=..., actionUnique=..., timestamp=141537399) at /usr/include/QtGui/qaction.h:218
#32 KGlobalAccelPrivate::_k_invokeAction (this=0x82b52e0, componentUnique=..., actionUnique=..., timestamp=141537399) at /usr/src/debug/kdelibs-4.5.4/kdeui/shortcuts/kglobalaccel.cpp:440
#33 0xb735943f in KGlobalAccel::qt_metacall (this=0x82b1830, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfdc4d70)
    at /usr/src/debug/kdelibs-4.5.4/build/kdeui/kglobalaccel.moc:77
#34 0xb669eefd in QMetaObject::metacall (object=0x82b1830, cl=QMetaObject::InvokeMetaMethod, idx=4, argv=0xbfdc4d70) at kernel/qmetaobject.cpp:237
#35 0xb66adfe8 in QMetaObject::activate (sender=0x8292bf0, m=0xb74c0604, local_signal_index=0, argv=0xbfdc4d70) at kernel/qobject.cpp:3295
#36 0xb740ed95 in OrgKdeKglobalaccelComponentInterface::globalShortcutPressed (this=0x8292bf0, _t1=..., _t2=..., _t3=141537399)
    at /usr/src/debug/kdelibs-4.5.4/build/kdeui/kglobalaccel_component_interface.moc:150
#37 0xb740f206 in OrgKdeKglobalaccelComponentInterface::qt_metacall (this=0x8292bf0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfdc4f8c)
    at /usr/src/debug/kdelibs-4.5.4/build/kdeui/kglobalaccel_component_interface.moc:98
#38 0xb67d3a37 in QDBusConnectionPrivate::deliverCall (this=0x8085b88, object=0x8292bf0, msg=..., metaTypes=..., slotIdx=152287400) at qdbusintegrator.cpp:904
#39 0xb67e1536 in QDBusCallDeliveryEvent::placeMetaCall (this=0x9859fa0, object=0x8292bf0) at qdbusintegrator_p.h:101
#40 0xb66ab93f in QObject::event (this=0x8292bf0, e=0x9859fa0) at kernel/qobject.cpp:1248
#41 0xb5bd2c64 in QApplicationPrivate::notify_helper (this=0x808cc88, receiver=0x8292bf0, e=0x9859fa0) at kernel/qapplication.cpp:4302
#42 0xb5bdabf7 in QApplication::notify (this=0xbfdc5794, receiver=0x8292bf0, e=0x9859fa0) at kernel/qapplication.cpp:3706
#43 0xb7204991 in KApplication::notify (this=0xbfdc5794, receiver=0x8292bf0, event=0x9859fa0) at /usr/src/debug/kdelibs-4.5.4/kdeui/kernel/kapplication.cpp:310
#44 0xb7663bff in KWin::Application::notify (this=0xbfdc5794, o=0x8292bf0, e=0x9859fa0) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/main.cpp:372
#45 0xb6698e0e in QCoreApplication::notifyInternal (this=0xbfdc5794, receiver=0x8292bf0, event=0x9859fa0) at kernel/qcoreapplication.cpp:726
#46 0xb669c9b4 in sendEvent (receiver=0x0, event_type=0, data=0x806d480) at kernel/qcoreapplication.h:215
#47 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x806d480) at kernel/qcoreapplication.cpp:1367
#48 0xb669cb9c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1260
#49 0xb5c83d29 in sendPostedEvents (this=0x8070fd0, flags=...) at ../../src/corelib/kernel/qcoreapplication.h:220
#50 QEventDispatcherX11::processEvents (this=0x8070fd0, flags=...) at kernel/qeventdispatcher_x11.cpp:75
#51 0xb669811d in QEventLoop::processEvents (this=0xbfdc56e4, flags=...) at kernel/qeventloop.cpp:149
#52 0xb6698319 in QEventLoop::exec (this=0xbfdc56e4, flags=...) at kernel/qeventloop.cpp:201
#53 0xb669cc70 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#54 0xb5bd0164 in QApplication::exec () at kernel/qapplication.cpp:3581
#55 0xb770011b in kdemain (argc=3, argv=0xbfdc59e4) at /usr/src/debug/kdebase-workspace-4.5.4/kwin/main.cpp:531
#56 0x0804860b in main (argc=3, argv=0xbfdc59e4) at /usr/src/debug/kdebase-workspace-4.5.4/build/kwin/kwin_dummy.cpp:3

This bug may be a duplicate of or related to bug 237345.

Possible duplicates by query: bug 245193, bug 237345.

Reported using DrKonqi
Comment 1 Thomas L├╝bking 2010-12-17 16:44:16 UTC
"something like 10 times a day I suppose?!?"
-> uncool

@Martin:
I /think/ "if( tab_grab ) tab_box->reset( true );" has to happen *before* "updateStackingOrder( true );" in Workspace::removeClient(), because the latter might/will/should cause an update on the tabbox (and the client is meanwhile gone) - yesno?

*** This bug has been marked as a duplicate of bug 237345 ***