Bug 222816

Summary: kwin crash on attempt to group chromium-browser with other app
Product: [Plasma] kwin Reporter: Alexander Elbs <alex>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caionnew, hitech.innovative, raphlydia
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.4.5
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Alexander Elbs 2010-01-15 08:45:24 UTC
Application: kwin (4.3.90 (KDE 4.3.90 (KDE 4.4 RC1)))
KDE Platform Version: 4.3.90 (KDE 4.3.90 (KDE 4.4 RC1))
Qt Version: 4.6.0
Operating System: Linux 2.6.32-10-generic x86_64
Distribution: Ubuntu lucid (development branch)

-- Information about the crash:
Hi,

ALT-F3 on chromium-browser (this app hides window decorations)
Move window into group -> firefox
*crash*

this bug might be related to bug #222813


The crash can be reproduced every time.

 -- Backtrace:
Application: KWin (kwin), signal: Segmentation fault
The current source language is "auto; currently asm".
[KCrash Handler]
#5  QListData::size (this=0x9096e0, action=0x1dc4140) at /usr/include/qt4/QtCore/qlist.h:90
#6  QList<KWin::Client*>::indexOf (this=0x9096e0, action=0x1dc4140) at /usr/include/qt4/QtCore/qlist.h:726
#7  KWin::ClientGroup::indexOfClient (this=0x9096e0, action=0x1dc4140) at ../../kwin/clientgroup.h:182
#8  KWin::Workspace::slotAddToTabGroup (this=0x9096e0, action=0x1dc4140) at ../../kwin/useractions.cpp:389
#9  0x00007f1cad5c2c2e in KWin::Workspace::qt_metacall (this=0x9096e0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff3418d1b0) at ./workspace.moc:515
#10 0x00007f1ca9215833 in QMetaObject::activate (sender=0x2fdc760, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xe3c530) at kernel/qobject.cpp:3294
#11 0x00007f1ca9d81d32 in QMenu::triggered (this=0x2fddca0, _t1=0x1dc4140) at .moc/release-shared/moc_qmenu.cpp:164
#12 0x00007f1ca9d842bd in QMenuPrivate::_q_actionTriggered (this=<value optimized out>) at widgets/qmenu.cpp:1115
#13 0x00007f1ca9d881a2 in QMenu::qt_metacall (this=0x2fdc760, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff3418d380) at .moc/release-shared/moc_qmenu.cpp:105
#14 0x00007f1ca9215833 in QMetaObject::activate (sender=0x1dc4140, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xe3c530) at kernel/qobject.cpp:3294
#15 0x00007f1ca9946f02 in QAction::triggered (this=0x2fddca0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#16 0x00007f1ca9948eeb in QAction::activate (this=0x1dc4140, event=<value optimized out>) at kernel/qaction.cpp:1245
#17 0x00007f1ca9d8306d in QMenuPrivate::activateCausedStack (this=<value optimized out>, causedStack=..., action=0x1dc4140, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:994
#18 0x00007f1ca9d88a6a in QMenuPrivate::activateAction (this=0xd4c860, action=0x1dc4140, action_e=QAction::Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1086
#19 0x00007f1ca99a25d9 in QWidget::event (this=0x2fdc760, event=0x7fff3418dda0) at kernel/qwidget.cpp:7974
#20 0x00007f1ca9d8aceb in QMenu::event (this=0x2fdc760, e=0x7fff3418dda0) at widgets/qmenu.cpp:2406
#21 0x00007f1ca994cf2c in QApplicationPrivate::notify_helper (this=0x6d8420, receiver=0x2fdc760, e=0x7fff3418dda0) at kernel/qapplication.cpp:4242
#22 0x00007f1ca9953da1 in QApplication::notify (this=0x7fff3418ffe0, receiver=0x2fdc760, e=0x7fff3418dda0) at kernel/qapplication.cpp:3822
#23 0x00007f1cacdfa7c6 in KApplication::notify (this=0x7fff3418ffe0, receiver=0x2fdc760, event=0x7fff3418dda0) at ../../kdeui/kernel/kapplication.cpp:302
#24 0x00007f1ca9202abc in QCoreApplication::notifyInternal (this=0x7fff3418ffe0, receiver=0x2fdc760, event=0x7fff3418dda0) at kernel/qcoreapplication.cpp:704
#25 0x00007f1ca9952f0e in QCoreApplication::sendEvent (receiver=0x2fdc760, event=0x7fff3418dda0, alienWidget=0x0, nativeWidget=0x2fdc760, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#26 QApplicationPrivate::sendMouseEvent (receiver=0x2fdc760, event=0x7fff3418dda0, alienWidget=0x0, nativeWidget=0x2fdc760, buttonDown=<value optimized out>, lastMouseReceiver=<value optimized out>, 
    spontaneous=true) at kernel/qapplication.cpp:2956
#27 0x00007f1ca99d1495 in QETWidget::translateMouseEvent (this=0x2fdc760, event=<value optimized out>) at kernel/qapplication_x11.cpp:4302
#28 0x00007f1ca99cfd6a in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff3418e6c0) at kernel/qapplication_x11.cpp:3501
#29 0x00007f1ca99fb7f2 in x11EventSourceDispatch (s=0x6dc240, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#30 0x00007f1ca26b8d4e in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#31 0x00007f1ca26bc718 in ?? () from /lib/libglib-2.0.so.0
#32 0x00007f1ca26bc840 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#33 0x00007f1ca922c053 in QEventDispatcherGlib::processEvents (this=0x6bf1b0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:407
#34 0x00007f1ca99fb3de in QGuiEventDispatcherGlib::processEvents (this=0x2fddca0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#35 0x00007f1ca92013e2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#36 0x00007f1ca92017bc in QEventLoop::exec (this=0x7fff3418e9f0, flags=) at kernel/qeventloop.cpp:201
#37 0x00007f1ca9d86105 in QMenu::exec (this=0x9f50b0, p=<value optimized out>, action=0x0) at widgets/qmenu.cpp:2045
#38 0x00007f1cad61c2b3 in KWin::Workspace::showWindowMenu (this=0x9096e0, pos=..., cl=<value optimized out>) at ../../kwin/useractions.cpp:1586
#39 0x00007f1cad61c329 in KWin::Workspace::showWindowMenu (this=0x9096e0) at ../../kwin/workspace.h:1112
#40 KWin::Workspace::slotWindowOperations (this=0x9096e0) at ../../kwin/useractions.cpp:1564
#41 0x00007f1cad5c291b in KWin::Workspace::qt_metacall (this=0x9096e0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff3418ec30) at ./workspace.moc:479
#42 0x00007f1ca9215833 in QMetaObject::activate (sender=0xa00400, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xe3c530) at kernel/qobject.cpp:3294
#43 0x00007f1ca9946f02 in QAction::triggered (this=0x2fddca0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#44 0x00007f1ca9948eeb in QAction::activate (this=0xa00400, event=<value optimized out>) at kernel/qaction.cpp:1245
#45 0x00007f1cace4d324 in QAction::trigger (this=<value optimized out>, actionId=<value optimized out>, timestamp=1889586) at /usr/include/qt4/QtGui/qaction.h:218
#46 KGlobalAccelPrivate::_k_invokeAction (this=<value optimized out>, actionId=<value optimized out>, timestamp=1889586) at ../../kdeui/shortcuts/kglobalaccel.cpp:412
#47 0x00007f1cace52504 in KGlobalAccel::qt_metacall (this=0x9f3220, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff3418ee50) at ./kglobalaccel.moc:76
#48 0x00007f1ca9215833 in QMetaObject::activate (sender=0x9f3028, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xe3c530) at kernel/qobject.cpp:3294
#49 0x00007f1cacf51754 in OrgKdeKGlobalAccelInterface::invokeAction (this=0x2fddca0, _t1=<value optimized out>, _t2=1889586) at kglobalaccel_interface.moc:158
#50 0x00007f1cacf51a83 in OrgKdeKGlobalAccelInterface::qt_metacall (this=0x9f3028, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff3418f570) at kglobalaccel_interface.moc:115
#51 0x00007f1ca953d276 in QDBusConnectionPrivate::deliverCall (this=<value optimized out>, object=<value optimized out>, msg=<value optimized out>, metaTypes=..., slotIdx=<value optimized out>)
    at qdbusintegrator.cpp:904
#52 0x00007f1ca954531f in QDBusCallDeliveryEvent::placeMetaCall (this=0xe2e1a0, object=0x0) at qdbusintegrator_p.h:101
#53 0x00007f1ca9212789 in QObject::event (this=0x9f3028, e=0xff1250) at kernel/qobject.cpp:1260
#54 0x00007f1ca994cf2c in QApplicationPrivate::notify_helper (this=0x6d8420, receiver=0x9f3028, e=0xff1250) at kernel/qapplication.cpp:4242
#55 0x00007f1ca995353d in QApplication::notify (this=0x7fff3418ffe0, receiver=0x9f3028, e=0xff1250) at kernel/qapplication.cpp:4125
#56 0x00007f1cacdfa7c6 in KApplication::notify (this=0x7fff3418ffe0, receiver=0x9f3028, event=0xff1250) at ../../kdeui/kernel/kapplication.cpp:302
#57 0x00007f1ca9202abc in QCoreApplication::notifyInternal (this=0x7fff3418ffe0, receiver=0x9f3028, event=0xff1250) at kernel/qcoreapplication.cpp:704
#58 0x00007f1ca9205237 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x6bfa00) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#59 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x6bfa00) at kernel/qcoreapplication.cpp:1345
#60 0x00007f1ca922c513 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#61 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#62 0x00007f1ca26b8d4e in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#63 0x00007f1ca26bc718 in ?? () from /lib/libglib-2.0.so.0
#64 0x00007f1ca26bc840 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#65 0x00007f1ca922c053 in QEventDispatcherGlib::processEvents (this=0x6bf1b0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:407
#66 0x00007f1ca99fb3de in QGuiEventDispatcherGlib::processEvents (this=0x2fddca0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#67 0x00007f1ca92013e2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#68 0x00007f1ca92017bc in QEventLoop::exec (this=0x7fff3418ff20, flags=) at kernel/qeventloop.cpp:201
#69 0x00007f1ca92054fb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#70 0x00007f1cad5dc84e in kdemain (argc=<value optimized out>, argv=<value optimized out>) at ../../kwin/main.cpp:526
#71 0x00007f1cad22dc4d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7fff341904e8) at libc-start.c:226
#72 0x0000000000400679 in _start ()

Reported using DrKonqi
Comment 1 disabled account 2010-01-18 01:43:33 UTC
Confirming this bug.
Comment 2 Thomas Lübking 2010-03-02 17:31:49 UTC
sounds like the override state is not taken into consideration for the decoration shown condition for tabbing, probably a dupe of bug #221868

i assume you can not reproduce it by using the context menu to just hide the decoration and (i.e. no chrome buttons either)?

would you say this is the direct source of bug #222813 ?
Comment 3 Thomas Lübking 2010-03-02 17:34:32 UTC
sounds like the override state is not taken into consideration for the decoration shown condition for tabbing, probably a dupe of bug #221868

i assume you can not reproduce it by using the context menu to just hide the decoration and (i.e. no chrome buttons either)?

would you say this is the direct source of bug #222813 ?
Comment 4 Alexander Elbs 2010-03-03 09:35:51 UTC
I retested the grouping feature:
If I disable the chromium deco (right click on chromium deco -> "Use title and border of system") then grouping is possible without kwin crashing.

After that I can group/ungroup with or without chromium borders. Even right click on kde deco (see bug 222813) works (grouped and ungrouped).

When kwin is restarted (kwin --replace&) then kwin crashes again if chromium deco is enabled and I try to group.


Another strange behaviour: If chromium deco is enabled and chromium is grouped with another application, the kde deco vanishes when switching to chromium and reappears when switching away. This is probably another bug, because when grouping is enabled the kde deco is always enabled and I cannot disabled it (although I would like to).
Comment 5 Thomas Lübking 2010-03-03 19:03:06 UTC
confirmed.

this and #222813 are slight different, but the common source seems to be that no 
ClientGroup is constructed when a decoration is shown for a former override window.

... so it's not even f*** chromes fault ;-)

please notice that the tabbing is 
a) new
b) quite tied to the decoration, so doing hackish things on decorations could be error prone (i.e. use with care)
Comment 6 Bertoche 2010-03-30 14:46:40 UTC
Created attachment 42382 [details]
New crash information added by DrKonqi

Exactly as described in 222816
Running opensuse 11.2 x86, installed from KDE:KDE4:Factory:Desktop (opensuse-11.2) repo
Comment 7 Bertoche 2010-03-30 14:50:00 UTC
Remarkable enough to add, kwin reborned without a click, quick and smooth. Not even used "restart app" from bug report window.
(In reply to comment #6)
> Created an attachment (id=42382) [details]
> New crash information added by DrKonqi
> 
> Exactly as described in 222816
> Running opensuse 11.2 x86, installed from KDE:KDE4:Factory:Desktop
> (opensuse-11.2) repo
Comment 8 Martin Flöser 2010-06-03 14:45:54 UTC
SVN commit 1134110 by graesslin:

Fix crash when trying to group a window without decorations.
BUG: 222816
FIXED-IN: 4.4.5



 M  +1 -1      useractions.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1134110
Comment 9 Martin Flöser 2010-06-03 14:47:19 UTC
SVN commit 1134111 by graesslin:

Forward port rev 1134110: Fix crash when trying to group a window without decorations.
CCBUG: 222816

 M  +1 -1      useractions.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1134111
Comment 10 Martin Flöser 2010-06-06 20:36:00 UTC
*** Bug 240765 has been marked as a duplicate of this bug. ***