Bug 221868 - kwin crashed when i log on kde
Summary: kwin crashed when i log on kde
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: OpenSUSE Linux
: VHI crash (vote)
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 221950 223889 224823 225788 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-01-09 01:12 UTC by decks
Modified: 2010-02-28 11:31 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (4.06 KB, text/plain)
2010-01-24 18:41 UTC, Thomas Leineweber
Details
testpatch as outlined in comment 14 (1.74 KB, patch)
2010-01-29 23:51 UTC, Thomas Leineweber
Details
part of the xsession-errors file just before the crash (733 bytes, text/plain)
2010-01-29 23:54 UTC, Thomas Leineweber
Details
debug-log with additional debug-statements (1.62 KB, text/plain)
2010-01-30 09:27 UTC, Thomas Leineweber
Details
patch adding the debug statements (3.88 KB, patch)
2010-01-30 09:31 UTC, Thomas Leineweber
Details
latest debug-patch (5.39 KB, patch)
2010-01-30 14:54 UTC, Thomas Leineweber
Details
latest debug-output (2.29 KB, text/plain)
2010-01-30 14:55 UTC, Thomas Leineweber
Details
patch replacing do_show with !noBorder() (354 bytes, patch)
2010-01-30 23:33 UTC, Thomas Leineweber
Details
New crash information added by DrKonqi (2.81 KB, text/plain)
2010-02-12 03:47 UTC, fred
Details

Note You need to log in before you can comment on or make changes to this bug.
Description decks 2010-01-09 01:12:23 UTC
Application: kwin (4.3.90 (KDE 4.3.90 (KDE 4.4 RC1)) "release 209")
KDE Platform Version: 4.3.90 (KDE 4.3.90 (KDE 4.4 RC1)) "release 209"
Qt Version: 4.6.0
Operating System: Linux 2.6.31.8-0.1-default i686
Distribution: "openSUSE 11.2 (i586)"

-- Information about the crash:
Just enter on my session, i use opensuse 11.2, that happen when i switch to plasma netbook

The crash can be reproduced every time.

 -- Backtrace:
Application: KWin (kwin), signal: Segmentation fault
[KCrash Handler]
#6  0xb7686a93 in KSelectionOwner::genericReply(unsigned long, unsigned long, unsigned long) () from /usr/lib/libkdeinit4_kwin.so
#7  0xb76a880d in KSelectionOwner::genericReply(unsigned long, unsigned long, unsigned long) () from /usr/lib/libkdeinit4_kwin.so
#8  0xb76a9784 in KSelectionOwner::genericReply(unsigned long, unsigned long, unsigned long) () from /usr/lib/libkdeinit4_kwin.so
#9  0xb5c56d4d in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#10 0xb5c65b76 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#11 0xb5cb9345 in QTimer::timeout() () from /usr/lib/libQtCore.so.4
#12 0xb5c6dfe6 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQtCore.so.4
#13 0xb5c62654 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#14 0xb5f191dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#15 0xb5f20000 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0xb7200e91 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#17 0xb760e8ff in KSelectionOwner::genericReply(unsigned long, unsigned long, unsigned long) () from /usr/lib/libkdeinit4_kwin.so
#18 0xb5c519de in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#19 0xb5c81d3e in ?? () from /usr/lib/libQtCore.so.4
#20 0xb5c7e9d5 in ?? () from /usr/lib/libQtCore.so.4
#21 0xb402c4c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#22 0xb402fd98 in ?? () from /usr/lib/libglib-2.0.so.0
#23 0xb402febe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#24 0xb5c7e671 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#25 0xb5fd78fa in ?? () from /usr/lib/libQtGui.so.4
#26 0xb5c5004d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#27 0xb5c50499 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#28 0xb5c54610 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#29 0xb5f19284 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#30 0xb76abbd5 in kdemain () from /usr/lib/libkdeinit4_kwin.so
#31 0x080485fb in _start ()

Possible duplicates by query: bug 214588, bug 207937.

Reported using DrKonqi
Comment 1 Dario Andres 2010-01-09 02:23:09 UTC
- As you can reproduce the crash at will (or you experience this regularly), can you install the "libqt4-debuginfo" and "kdebase4-workspace-debuginfo" packages and post a complete backtrace here? (you can get more information at http://techbase.kde.org/User:DarioAndres/Basic_Guide_about_Crash_Reporting ) Thanks
Comment 2 decks 2010-01-09 04:02:07 UTC
i just installed all debug-info for all kde 4.3.90 packages. and i try to reproduce switching to plasma-netbook. and kwin crashed. the info:

Application: KWin (kwin), signal: Segmentation fault
[KCrash Handler]
#6  0xb76b9a93 in widget (this=<value optimized out>) at /usr/src/debug/kdebase-workspace-4.3.90/kwin/lib/kdecoration.h:1026
#7  KWin::Client::updateDecoration (this=<value optimized out>) at /usr/src/debug/kdebase-workspace-4.3.90/kwin/client.cpp:370
#8  0xb76db80d in KWin::Workspace::slotReconfigure (this=0x812c188) at /usr/src/debug/kdebase-workspace-4.3.90/kwin/workspace.cpp:1077
#9  0xb76dc784 in KWin::Workspace::qt_metacall (this=0x812c188, _c=InvokeMetaMethod, _id=132, _a=0xbfc187bc) at /usr/src/debug/kdebase-workspace-4.3.90/build/kwin/workspace.moc:498
#10 0xb5c89d4d in QMetaObject::metacall (object=0x812c188, cl=3217130592, idx=136, argv=0xbfc187bc) at kernel/qmetaobject.cpp:237
#11 0xb5c98b76 in QMetaObject::activate (sender=0x812c328, m=0xb5d9b5a4, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3294
#12 0xb5cec345 in QTimer::timeout (this=0x812c328) at .moc/release-shared/moc_qtimer.cpp:134
#13 0xb5ca0fe6 in QTimer::timerEvent (this=0x812c328, e=0xbfc18cb4) at kernel/qtimer.cpp:271
#14 0xb5c95654 in QObject::event (this=0x812c328, e=0x81b1938) at kernel/qobject.cpp:1224
#15 0xb5f4c1dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0xb5f53000 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#17 0xb7233e91 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#18 0xb76418ff in KWin::Application::notify (this=0xbfc19018, o=0x812c328, e=0xbfc18cb4) at /usr/src/debug/kdebase-workspace-4.3.90/kwin/main.cpp:370
#19 0xb5c849de in QCoreApplication::notifyInternal (this=0xbfc19018, receiver=0x812c328, event=0xbfc18cb4) at kernel/qcoreapplication.cpp:704
#20 0xb5cb4d3e in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.h:215
#21 QTimerInfoList::activateTimers (event=<value optimized out>, receiver=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:617
#22 0xb5cb19d5 in timerSourceDispatch (source=0x806c0b8) at kernel/qeventdispatcher_glib.cpp:184
#23 idleTimerSourceDispatch (source=0x806c0b8) at kernel/qeventdispatcher_glib.cpp:231
#24 0xb405f4c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#25 0xb4062d98 in ?? () from /usr/lib/libglib-2.0.so.0
#26 0xb4062ebe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#27 0xb5cb1671 in QEventDispatcherGlib::processEvents (this=0x8069218, flags=...) at kernel/qeventdispatcher_glib.cpp:407
#28 0xb600a8fa in ?? () from /usr/lib/libQtGui.so.4
#29 0xb5c8304d in QEventLoop::processEvents (this=0xbfc18f64, flags=) at kernel/qeventloop.cpp:149
#30 0xb5c83499 in QEventLoop::exec (this=0xbfc18f64, flags=...) at kernel/qeventloop.cpp:201
#31 0xb5c87610 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#32 0xb5f4c284 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#33 0xb76debd5 in kdemain (argc=3, argv=0xbfc19214) at /usr/src/debug/kdebase-workspace-4.3.90/kwin/main.cpp:526
#34 0x080485fb in main (argc=3, argv=0xbfc19214) at /usr/src/debug/kdebase-workspace-4.3.90/build/kwin/kwin_dummy.cpp:3


sorry for my english jejeje
Comment 3 Martin Flöser 2010-01-09 10:22:40 UTC
I just tried to reproduce and it does not crash for me. But I have an idea: could you please try to use a different window decoration (that is not Oxygen)?
Comment 4 decks 2010-01-09 14:54:36 UTC
but the idea is use oxygen like windows decoration?

i will try :S
Comment 5 Dario Andres 2010-01-09 14:56:08 UTC
The default window decoration is named "Oxygen" (as the widget style). The idea was to not select Oxygen as windeco. Choose another one at System Settings/Appearance/Windows. 
Regards
Comment 6 Martin Flöser 2010-01-09 18:03:00 UTC
*** Bug 221950 has been marked as a duplicate of this bug. ***
Comment 7 decks 2010-01-09 18:36:37 UTC
i erase all configuration file for my kde in .kde4/ and the kwin on plasma-netbook not crashed. it works fine
Comment 8 Nicolas L. 2010-01-12 19:50:58 UTC
A patch that i think can fix this issue :

can someone review this ?

--- kwin/client.cpp     2009-12-31 14:28:26.000000000 +0100
+++ kwin/client.cpp  2010-01-12 19:44:39.692405833 +0100
 -326,8 +326,8 @@

 void Client::updateDecoration( bool check_workspace_pos, bool force )
     {
-    if( !force &&
-     (( decoration == NULL && noBorder() ) || ( decoration != NULL && !noBorder() )))
+    if( !decoration || ( !force &&
+     (( decoration == NULL && noBorder() ) || ( decoration != NULL && !noBorder() ))))
         return;
     bool do_show = false;
     QRect oldgeom = geometry();
Comment 9 Thomas Lübking 2010-01-12 23:06:23 UTC
it's probably wrong as before the routine was skipped unless 
- either forced
- or bool(decoration) == noBorder()

with the change it would require bool(decoration) to be true and otherwise
- bypass forcing ever
- not allow recreation of decorations (noBorder() == false, but decoration != NULL), try to toggle "alt+f3 -> advanced -> no border"

also the backtrace seems to indicate a segfault in decoration->widget()->show(); what means the if (!noBorder()) black was executed and therefore decoration->widget() has been touched several times before... *shrug*

also please notice that the second backtrace looks somewhat different from the first one.

can you reproduce this bug?
Comment 10 decks 2010-01-12 23:29:18 UTC
after erase all configuration of kde4.3.90, the kwin not crashed for me again
Comment 11 Thomas Lübking 2010-01-12 23:42:12 UTC
sorry, the question should have pointed Nicolas (as he sugested a patch)
i had read your statement above ;-)
Comment 12 Nicolas L. 2010-01-13 08:11:51 UTC
in fact i was on irc and saw this was wrong but i forgot to tell this here :)

btw yes i reproduce this bug with the same backtrace as #2
Comment 13 Martin Flöser 2010-01-13 13:37:55 UTC
This is a crash we have to fix before 4.4.0 -> raising priority
Comment 14 Thomas Lübking 2010-01-13 16:41:00 UTC
@nicolas
could you then
- ensure whether the "(!noBorder())" block is entered (qWarning("noBorder"));
- check for deco validity (:340) ->
   decoration = workspace()->createDecoration( bridge ); qDebug() << decoration;
- check for decowidget validity (:342)
   decoration->init(); qDebug() << decoration->widget();
- make a QPointer<QWidget> reference* to decoration->widget() after the init() and check it's validity right before "if( do_show ) decoration->widget()->show();" (:369/370)
- (you should also have a message begin and end of the routine to detect irrelevant output)

*
#include <QPointer>
void Client::updateDecoration( bool check_workspace_pos, bool force )
{
qWarning("start ::updateDecoration()");
...
QRect oldgeom = geometry();
QPointer<QWidget> decoWidget_qptr;
...
decoration->init(); qDebug() << decoration->widget(); decoWidget_qptr = decoration->widget();
...
qDebug() << decoWidget_qptr;
if( do_show )
   decoration->widget()->show();
..
qWarning("end ::updateDecoration()");
}
Comment 15 Nicolas L. 2010-01-21 09:30:53 UTC
i will try to add this today on my build
Comment 16 Martin Flöser 2010-01-23 09:57:39 UTC
*** Bug 223889 has been marked as a duplicate of this bug. ***
Comment 17 Thomas Leineweber 2010-01-24 18:41:32 UTC
Created attachment 40205 [details]
New crash information added by DrKonqi

I can reproduce the crash with my installation on opensuse 11.2, using KDE:KDE4:Factory:Desktop from the buildservice. It happens with today's rc2 whenever I try to change the settings in the control center for the plasma version from desktop to netbook.
Comment 18 Thomas Leineweber 2010-01-29 23:51:31 UTC
Created attachment 40364 [details]
testpatch as outlined in comment 14

I made a patch giving debug messages as outlined in comment #14 and recreated the crash. This is the applied patch, the debug messages will follow.
Comment 19 Thomas Leineweber 2010-01-29 23:54:36 UTC
Created attachment 40365 [details]
part of the xsession-errors file just before the crash

Here is the logging taken from .xsession-errors just before the crash (last line).
Comment 20 Thomas Lübking 2010-01-30 00:22:30 UTC
humm... looks like ::updateDecoration() is called recursive and the decoration is destroyed in the inner recursion :-\

I am sorry, but could you
a) replace 'qWarning("start ::updateDecoration()");' by 'qDebug() << "start ::updateDecoration()" << this;' (as well as for 'end::update...') to ensure the output is froma recursive call and not some async error output
b) in case you cannot easily gdb and step through the code, place 'qDebug() << "stage n" << decoWidget_qptr;' behind every call after assigining the pointer within the "if (!noBorder())" block (to figure which call causes the recursion in case there is)?

notice:
in case you don't talk c++, "if (condition) instruction();" is _one_ call. do not place sth. between the condition check and the following instruction, i.e.

GOOD:
-------
qDebug() << "stage 4" << decoWidget_qptr;
if (KDecorationUnstable *deco2 = dynamic_cast<KDecorationUnstable*>(decoration))
   deco2->padding( padding_left, padding_right, padding_top, padding_bottom );
qDebug() << "stage 5" << decoWidget_qptr;

WRONG:
---------
qDebug() << "stage 4" << decoWidget_qptr;
if (KDecorationUnstable *deco2 = dynamic_cast<KDecorationUnstable*>(decoration))
qDebug() << "stage 5" << decoWidget_qptr;
   deco2->padding( padding_left, padding_right, padding_top, padding_bottom );
qDebug() << "stage 6" << decoWidget_qptr;
Comment 21 Hugo Pereira Da Costa 2010-01-30 00:29:02 UTC
Could not find the information in the previous comments (although it was asked): is this or is this not also happening for decorations others than oxygen ? 
(e.g: plastique; aurorae; ?)
Comment 22 Thomas Leineweber 2010-01-30 00:48:36 UTC
easy questions first:
re: comment 21
I changed the window decoration to "Plastik" and tried to change to plasma-netbook. It went without crash.
I changed it back to oxygen - it crashes.

re: comment 20
I'll try. C++ is not one of my good programming languages, but it will do. Thanks for your hints.
Comment 23 Hugo Pereira Da Costa 2010-01-30 00:56:33 UTC
argh. 
I wonder if this could be triggered by oxygen animations (that triggers updates based on signal/slot under some circumstances). 
If you have time (I know we're keeping you busy) 
Could you try to add:

UseAnimations=false

(or possibly replace UseAnimations=true by the above) 
in $HOME/.kde4/share/config/oxygenrc

and see if it still crashes ?
Comment 24 Thomas Leineweber 2010-01-30 01:04:12 UTC
I had

UseAnimations=true

in the part [Windeco Exception 0] of oxygenrc and have set it to false, but it crashes with the same stacktrace.
I'll make a tracing patch and compile a new version. Hopefully, I can give new information tomorrow.
Comment 25 Thomas Lübking 2010-01-30 01:16:43 UTC
i then much more suspect the tabbing feature, try disabling it in oxygen and/or try to reproduce the crash with the tabstrip deco.

nevertheless, try the tracing please (will make things easier ;-)
Comment 26 Thomas Leineweber 2010-01-30 01:37:13 UTC
bingo.
with tabstrip it crashes, too.
Where can I disable the tabbing feature? Is it the "Window Grouping" Checkbox in the systemsettings for the oxygen window decoration?

Next info, when I have tested the rebuild.
Comment 27 Hugo Pereira Da Costa 2010-01-30 01:47:11 UTC
In oxygen decoration config window there is a checkbox to disable grouping.
I'm not sure about the other option you mention.
Comment 28 Thomas Leineweber 2010-01-30 09:27:52 UTC
Created attachment 40373 [details]
debug-log with additional debug-statements

this is the debug-log from the last  "KWin::Workspace::slotReconfigure: Workspace::slotReconfigure()" up to the crash. The used patch follows.
Comment 29 Thomas Leineweber 2010-01-30 09:31:16 UTC
Created attachment 40374 [details]
patch adding the debug statements
Comment 30 Thomas Leineweber 2010-01-30 09:34:08 UTC
for information here the new stacktrace, the crash is still in decoration->widget()->show().

Application: KWin (kwin), signal: Segmentation fault
[KCrash Handler]
#6  0xb784bdd3 in widget (this=<value optimized out>) at /usr/src/debug/kdebase-workspace-4.3.95/kwin/lib/kdecoration.h:1026
#7  KWin::Client::updateDecoration (this=<value optimized out>) at /usr/src/debug/kdebase-workspace-4.3.95/kwin/client.cpp:392
#8  0xb786df5d in KWin::Workspace::slotReconfigure (this=0x8118208) at /usr/src/debug/kdebase-workspace-4.3.95/kwin/workspace.cpp:1077
#9  0xb786eed4 in KWin::Workspace::qt_metacall (this=0x8118208, _c=InvokeMetaMethod, _id=132, _a=0xbf9d60fc) at /usr/src/debug/kdebase-workspace-4.3.95/build/kwin/workspace.moc:498
#10 0xb5e0f32d in QMetaObject::metacall (object=0x8118208, cl=3078230944, idx=136, argv=0xbf9d60fc) at kernel/qmetaobject.cpp:237
#11 0xb5e1e18a in QMetaObject::activate (sender=0x81183a8, m=0xb5f205a4, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3275
#12 0xb5e71785 in QTimer::timeout (this=0x81183a8) at .moc/release-shared/moc_qtimer.cpp:134
#13 0xb5e26476 in QTimer::timerEvent (this=0x81183a8, e=0xbf9d6674) at kernel/qtimer.cpp:271
#14 0xb5e1ac94 in QObject::event (this=0x81183a8, e=0xffffffe0) at kernel/qobject.cpp:1212
#15 0xb60d12ac in QApplicationPrivate::notify_helper (this=0x8069e30, receiver=0x81183a8, e=0xbf9d6674) at kernel/qapplication.cpp:4298
#16 0xb60d80f8 in QApplication::notify (this=0xbf9d69d8, receiver=0x81183a8, e=0xbf9d6674) at kernel/qapplication.cpp:4181
#17 0xb73c2511 in KApplication::notify (this=0xbf9d69d8, receiver=0x81183a8, event=0xbf9d6674) at /usr/src/debug/kdelibs-4.3.95/kdeui/kernel/kapplication.cpp:302
#18 0xb77d1bdf in KWin::Application::notify (this=0xbf9d69d8, o=0x81183a8, e=0xbf9d6674) at /usr/src/debug/kdebase-workspace-4.3.95/kwin/main.cpp:370
#19 0xb5e09fbe in QCoreApplication::notifyInternal (this=0xbf9d69d8, receiver=0x81183a8, event=0xbf9d6674) at kernel/qcoreapplication.cpp:704
#20 0xb5e3a1fe in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.h:215
#21 QTimerInfoList::activateTimers (event=<value optimized out>, receiver=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:617
#22 0xb5e36e95 in timerSourceDispatch (source=0x806cbc0) at kernel/qeventdispatcher_glib.cpp:184
#23 idleTimerSourceDispatch (source=0x806cbc0) at kernel/qeventdispatcher_glib.cpp:231
#24 0xb42004c2 in g_main_dispatch (context=<value optimized out>) at gmain.c:1960
#25 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2513
#26 0xb4203d98 in g_main_context_iterate (context=0x806c290, block=<value optimized out>, dispatch=1, self=0x806a0b0) at gmain.c:2591
#27 0xb4203ebe in IA__g_main_context_iteration (context=0x806c290, may_block=1) at gmain.c:2654
#28 0xb5e36b31 in QEventDispatcherGlib::processEvents (this=0x8054cf0, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#29 0xb61916ca in QGuiEventDispatcherGlib::processEvents (this=0x8054cf0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#30 0xb5e0862d in QEventLoop::processEvents (this=0xbf9d6924, flags=) at kernel/qeventloop.cpp:149
#31 0xb5e08a79 in QEventLoop::exec (this=0xbf9d6924, flags=...) at kernel/qeventloop.cpp:201
#32 0xb5e0cbf0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#33 0xb60d1354 in QApplication::exec () at kernel/qapplication.cpp:3577
#34 0xb7871325 in kdemain (argc=3, argv=0xbf9d6bd4) at /usr/src/debug/kdebase-workspace-4.3.95/kwin/main.cpp:526
#35 0x080485fb in main (argc=3, argv=0xbf9d6bd4) at /usr/src/debug/kdebase-workspace-4.3.95/build/kwin/kwin_dummy.cpp:3
Comment 31 Thomas Leineweber 2010-01-30 14:49:09 UTC
I did some further hunting what really happens.

The first invocation of updateDecoration() goes into the "if( !noBorder() )" part and leaves it at the end.
But the following route is taken further down:

      if( check_workspace_pos )  
        checkWorkspacePosition();

within checkWorkspacePosition it enters

 changeMaximize( false, false, true ); // adjust size  

which seems to call the inner instance of updateDecoration.
Comment 32 Thomas Leineweber 2010-01-30 14:54:14 UTC
Created attachment 40380 [details]
latest debug-patch
Comment 33 Thomas Leineweber 2010-01-30 14:55:03 UTC
Created attachment 40381 [details]
latest debug-output
Comment 34 Thomas Lübking 2010-01-30 19:29:01 UTC
yes, as ::changeMaximize has
if( options->borderlessMaximizedWindows() )
    setNoBorder(app_noborder || max_mode == MaximizeFull);

what is true in the netbook case and triggers the recursion - which is then either catched somewhere else or just luckily does not fail on decos that do NOT support client groups...

long story short:
the internal "do_show" flag needs to be replaced with a "if (!noBorder())" query to prevent side effects
Comment 35 Thomas Leineweber 2010-01-30 23:33:51 UTC
Created attachment 40399 [details]
patch replacing do_show with !noBorder()

I made a build with this patch and kwin did not crash anymore upon changing to plasma-netbook.
Comment 36 Nicolas L. 2010-01-31 01:25:23 UTC
i do not experience any crash with your patch, but i don't know if this is related but after changing to plasma-netbook and maximise the window, the top of the window isn't shown anymore
Comment 37 Nicolas L. 2010-01-31 01:27:26 UTC
hum, i done the opposite, plasma-netbook  -> plasma-desktop, and i still do not have the top of the window anymore   but still no crashes
Comment 38 Thomas Lübking 2010-01-31 01:35:43 UTC
@Nicolas
loosing the titlebar for maximized windows under plasma-netbook is afaik intended.
the "go away plasma-netbook" thing is iirc another bug (the setting isn't properly updated)
-> "grep BorderlessMaximizedWindows ~/.kde/share/config/kwinrc"
if it's "true", just use a texteditor to set it to "false", then call

qdbus org.kde.kwin /KWin reconfigure

(the settings bug is reported i think;
Dario: help! ;-)
Comment 39 Hugo Pereira Da Costa 2010-01-31 01:35:53 UTC
On 01/30/2010 05:25 PM, Nicolas Lécureuil  wrote:
> https://bugs.kde.org/show_bug.cgi?id=221868
>
>
>
>
>
> --- Comment #36 from Nicolas Lécureuil<nlecureuil mandriva com>   2010-01-31 01:25:23 ---
> i do not experience any crash with your patch, but i don't know if this is
> related but after changing to plasma-netbook and maximise the window, the top
> of the window isn't shown anymore
>    
yes. That's a plasma-netbook feature, as far as I know.
Comment 40 Hugo Pereira Da Costa 2010-01-31 01:36:14 UTC
On 01/30/2010 05:27 PM, Nicolas Lécureuil  wrote:
> https://bugs.kde.org/show_bug.cgi?id=221868
>
>
>
>
>
> --- Comment #37 from Nicolas Lécureuil<nlecureuil mandriva com>   2010-01-31 01:27:26 ---
> hum, i done the opposite, plasma-netbook  ->  plasma-desktop, and i still do not
> have the top of the window anymore   but still no crashes
>    
this however, is a bug.
Comment 41 Thomas Lübking 2010-01-31 14:47:45 UTC
(In reply to comment #37)

could have been bug #221408
Comment 42 Martin Flöser 2010-02-03 18:43:49 UTC
SVN commit 1084748 by graesslin:

Replace do_show with !noBorder(). This should prevent a crash in conjunction with Plasma netbook.
I think it's too late in the cycle to backport to 4.4.0 so if it does not cause any other problems, I will backport to 4.4 branch.
(In case I forget to backport as I am busy with non-kwin issues, please remind me in the bugreport)
Thanks to Thomas Leineweber for providing the patch and investigating the issue.
BUG: 221868

 M  +1 -1      client.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1084748
Comment 43 Martin Flöser 2010-02-07 10:25:25 UTC
*** Bug 225788 has been marked as a duplicate of this bug. ***
Comment 44 fred 2010-02-12 03:47:29 UTC
Created attachment 40706 [details]
New crash information added by DrKonqi

Switch from "desktop" mode to "netbook" mode cause kwin to crash; this seems similar to bug report 221868 which has been closed, however, I'm running the kde 4.4 and the bug is still present.
Comment 45 Thomas Leineweber 2010-02-14 21:20:41 UTC
(In reply to comment #42)
> (In case I forget to backport as I am busy with non-kwin issues, please remind
> me in the bugreport)

Martin, I am using the patch since 2010-01-30 in my opensuse-environment for kde4.4. Can you backport it to the 4.4 branch as we have another report from 4.4?
Comment 46 Martin Flöser 2010-02-26 17:15:16 UTC
SVN commit 1096414 by graesslin:

Backport rev 1084748:
Replace do_show with !noBorder(). This should prevent a crash in conjunction with Plasma netbook.
CCBUG: 221868


 M  +1 -1      client.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1096414
Comment 47 Martin Flöser 2010-02-28 11:31:41 UTC
*** Bug 224823 has been marked as a duplicate of this bug. ***