Bug 67914 - Konqueror Scan Plugins crashes kwin
Summary: Konqueror Scan Plugins crashes kwin
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR grave
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 67919 67938 67980 68003 68067 68175 68292 68650 68692 68722 69788 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-11-11 18:22 UTC by Ismail Donmez
Modified: 2007-12-11 20:22 UTC (History)
8 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ismail Donmez 2003-11-11 18:22:58 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 3.3.2 
OS:          Linux

Open Konqueror->Settings->Configure Konqueror->Plugins

Click "Scan for New Plugins" and kwin crashes I got lots of 

ASSERT: "block_stacking_updates == 0" in layers.cpp (528)

then it crashes with following backtrace. Note that last lines are all same and goes even up to #3000 and 
more.

Backtrace :


#1  0x411e238e in buffered_vfprintf () from /lib/libc.so.6
#2  0x411de055 in vfprintf () from /lib/libc.so.6
#3  0x40b3cf3b in qWarning(char const*, ...) () from /opt/kde/qt/lib/libqt-mt.so.3
#4  0x4005f48b in KWinInternal::Workspace::ensureStackingOrder(QValueList<KWinInternal::Client*> const&) const (this=0x81bade8, list=@0xbfe05e90) at layers.cpp:528
#5  0x4005e767 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:297
#6  0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#7  0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
#8  0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#9  0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
#10 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#11 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
#12 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#13 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
#14 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#15 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
#16 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#17 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
#18 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#19 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
#20 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82e3050)
    at layers.cpp:301
#21 0x4005e7f7 in KWinInternal::Workspace::raiseClient(KWinInternal::Client*) (this=0x81bade8, c=0x82dfb70)
    at layers.cpp:301
Comment 1 Thiago Macieira 2003-11-11 23:12:23 UTC
*** Bug 67919 has been marked as a duplicate of this bug. ***
Comment 2 Lubos Lunak 2003-11-12 09:52:11 UTC
*** Bug 67938 has been marked as a duplicate of this bug. ***
Comment 3 Lubos Lunak 2003-11-12 10:03:09 UTC
Subject: kdebase/kwin

CVS commit by lunakl: 

Avoid transient loops with group transients.
CCMAIL: 67914-done@bugs.kde.org


  M +17 -7     group.cpp   2.8


--- kdebase/kwin/group.cpp  #2.7:2.8
@@ -346,4 +346,6 @@ void Client::setTransient( Window new_tr
             transient_for = workspace()->findClient( WindowMatchPredicate( transient_for_id ));
             assert( transient_for != NULL ); // verifyTransient() had to check this
+            if( transient_for->groupTransient())
+                removeTransient( transient_for );
             transient_for->addTransient( this );
             }
@@ -437,5 +439,5 @@ void Client::cleanGrouping()
 
 // Make sure that no group transient is considered transient
-// for a window trat is (directly or indirectly) transient for it.
+// for a window that is (directly or indirectly) transient for it.
 // Group transients not being transient for each other is already
 // handled before calling addTransient().
@@ -544,4 +546,5 @@ void Client::addTransient( Client* cl )
     {
     assert( !transients_list.contains( cl ));
+    assert( !cl->transients_list.contains( this ));
     assert( cl != this );
     transients_list.append( cl );
@@ -635,5 +638,5 @@ Client* Client::findModal()
 void Client::checkGroup()
     {
-    bool check_group_transients = false;
+    Group* old_group = in_group;
     if( window_group != None )
         {
@@ -652,5 +655,4 @@ void Client::checkGroup()
             in_group = new_group;
             in_group->addMember( this );
-            check_group_transients = true;
             }
         }
@@ -667,5 +669,4 @@ void Client::checkGroup()
                 in_group = transientFor()->group();
                 in_group->addMember( this );
-                check_group_transients = true;
                 }
             }
@@ -685,13 +686,22 @@ void Client::checkGroup()
             }
         }
-    if( check_group_transients )
+    if( in_group != old_group )
         {
+        for( ClientList::Iterator it = transients_list.begin();
+             it != transients_list.end();
+             )
+            { // it's no longer transient for group transients in the old group
+            if( (*it)->groupTransient() && (*it)->group() != group())
+                it = transients_list.remove( it );
+            else
+                ++it;
+            }
         for( ClientList::ConstIterator it = group()->members().begin();
              it != group()->members().end();
              ++it )
             {
-            if( !(*it)->groupTransient())
+            if( !(*it)->groupTransient())  // and its transient for group transients in the new group
                 continue;
-            if( !transients_list.contains( *it ))
+            if( !transients_list.contains( *it )) // unless it's the other way around
                 addTransient( *it );
             }


Comment 4 Lubos Lunak 2003-11-12 11:14:16 UTC
*** Bug 67980 has been marked as a duplicate of this bug. ***
Comment 5 Lubos Lunak 2003-11-13 12:46:31 UTC
*** Bug 68003 has been marked as a duplicate of this bug. ***
Comment 6 Lubos Lunak 2003-11-13 13:43:36 UTC
*** Bug 68067 has been marked as a duplicate of this bug. ***
Comment 7 Lubos Lunak 2003-11-14 17:39:33 UTC
*** Bug 68175 has been marked as a duplicate of this bug. ***
Comment 8 Lubos Lunak 2003-11-14 18:20:56 UTC
Configure Kmail....Identities....modify....Signature....select from file...click on the folder icon
Comment 9 Ismail Donmez 2003-11-14 18:22:27 UTC
Yeah I can reproduce too....
Comment 10 Lubos Lunak 2003-11-18 16:41:42 UTC
*** Bug 68292 has been marked as a duplicate of this bug. ***
Comment 11 Lubos Lunak 2003-11-19 13:11:26 UTC
Should be fixed now.
Comment 12 Jens Dagerbo 2003-11-20 23:36:58 UTC
I'm still able to produce this crash on todays kdelibs + kdebase.

To reproduce:
1. Run the Icon kcm _standalone_ (kcmshell Icons)
2. Click "Install New Theme..."
3. Click the File Dialog button
=>On a fresh system, here the file dialog comes up with the "Quick
Access Navigation Panel" visible, and on it an icon called "Network"
4. Click the Network icon. On my system I don't have Lisa running, this produces a message box.
=> Crash.

On my system, kwin crashes (well.. disappears at least, there is never a backtrace) every time the "Lisa does not appear to be running" warning box comes up IF I run the icon kcm standalone, and never if it is run as part of kcontrol.
Comment 13 klee 2003-11-20 23:56:35 UTC
Subject: Re:  Konqueror Scan Plugins crashes kwin         

I can confirm Jens's report.  Not quite running current, but this past
weekend, definitely after Lubos's fix of Nov. 12 (which does fix the
crashes I observed earlier in Bug 67938).

~k

Comment 14 Lubos Lunak 2003-11-21 10:47:55 UTC
*** Bug 68692 has been marked as a duplicate of this bug. ***
Comment 15 Lubos Lunak 2003-11-21 10:50:38 UTC
*** Bug 68722 has been marked as a duplicate of this bug. ***
Comment 16 Lubos Lunak 2003-11-21 15:05:55 UTC
Hopefully finally fixed. Please retest.
Comment 17 klee 2003-11-21 21:38:36 UTC
Subject: Re:  Konqueror Scan Plugins crashes kwin         

Built from clean build of last night (21 Nov.) and I can confirm kcmshell
Icons does not crash kiwn, nor do any of the other cases that previously
crashed for me.  Thanks!

~k

Comment 18 Jens Dagerbo 2003-11-22 18:51:08 UTC
I can't crash it either. Thanks! :)
Comment 19 Tri Ngo 2003-11-22 21:39:38 UTC
cool, it works here too under my testing. Thanks
Comment 20 Lubos Lunak 2003-12-08 14:18:44 UTC
*** Bug 69788 has been marked as a duplicate of this bug. ***
Comment 21 Lubos Lunak 2003-12-10 12:27:55 UTC
*** Bug 68650 has been marked as a duplicate of this bug. ***