Version: (using KDE KDE 3.5.5) Installed from: Debian testing/unstable Packages OS: Linux While switching windows, KWin crashed. I haven't observed such crashes until today - but today I upgraded my KDE - it introduced new version with interesting part: "+++ Changes by Ana Guerrero: * Applied patch to avoid kwin crashes when switching desktop (Closes: #365829). " Backtrace will be attached.
Created attachment 19022 [details] Backtrace
The following lines can be observed on console: ASSERT: _members contains (member_P) win/group.cpp(101). (Or similar lines).
This might be related to the way we (debian) has patched it. I am currently trying if it also exists if I do a full kwin branch pull instead of trying to find the right fixes. I get back soon to tell if it is 'blame me & ana' or not.
it is not 'blame me & ana' - I have tried with kwin svn head as of a couple of hours ago (I think r615333) It crashes at least in bluej when I try that. Using host libthread_db library "/lib/tls/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1497790784 (LWP 4710)] [KCrash handler] #5 QValueListPrivate<KWinInternal::Client*>::insert (this=0x8114830, it=@0xafb1b13c, x=@0xafb1b154) at /usr/share/qt3/include/qvaluelist.h:291 #6 0xa7ec360d in KWinInternal::Group::addMember (this=0x811f610, member_P=0x812bc68) at /usr/share/qt3/include/qvaluelist.h:526 #7 0xa7ef4b15 in KWinInternal::Client::checkGroup (this=0x812bc68, set_group=0x0, force=true) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/group.cpp:983 #8 0xa7ef4e19 in KWinInternal::Client::setTransient (this=0x812bc68, new_transient_for_id=41943090) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/group.cpp:583 #9 0xa7efd91c in KWinInternal::Client::readTransient (this=0x812bc68) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/group.cpp:566 #10 0xa7efdc28 in KWinInternal::Client::manage (this=0x812bc68, w=41943129, isMapped=false) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/manage.cpp:112 #11 0xa7effbb6 in KWinInternal::Workspace::createClient (this=0x809d6b8, w=41943129, is_mapped=false) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/workspace.cpp:482 #12 0xa7f031ab in KWinInternal::Workspace::workspaceEvent (this=0x809d6b8, e=0xafb1b8f8) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/events.cpp:360 #13 0xa7f0329e in KWinInternal::Application::x11EventFilter (this=0xafb1bad0, e=0xafb1b8f8) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/main.cpp:155 #14 0xa7087133 in qt_x11EventFilter (ev=0xafb1b8f8) at kernel/qapplication_x11.cpp:387 #15 0xa709705b in QApplication::x11ProcessEvent (this=0xafb1bad0, event=0xafb1b8f8) at kernel/qapplication_x11.cpp:3343 #16 0xa70adcb2 in QEventLoop::processEvents (this=0x8071c28, flags=4) at kernel/qeventloop_x11.cpp:192 #17 0xa7121129 in QEventLoop::enterLoop (this=0x8071c28) at kernel/qeventloop.cpp:198 #18 0xa7120f4a in QEventLoop::exec (this=0x8071c28) at kernel/qeventloop.cpp:145 #19 0xa710876f in QApplication::exec (this=0xafb1bad0) at kernel/qapplication.cpp:2758 #20 0xa7f01412 in kdemain (argc=1, argv=0xafb1bd44) at /home/pusling/src/kdebase-3.5.5a.dfsg.1/./kwin/main.cpp:285 #21 0x08048482 in main (argc=) at kwin.la.cpp:2 #22 0xa7c4dea8 in __libc_start_main () from /lib/tls/libc.so.6 #23 0x080483d1 in _start () at ../sysdeps/i386/elf/start.S:119
Created attachment 19058 [details] In some cases clients were not properly added to a new group. So double Group object destruction or accessing already freed Group objects led to SIGSERVs.
SVN commit 619873 by lunakl: Properly add window to a group. BUG: 139180 M +4 -3 group.cpp --- branches/KDE/3.5/kdebase/kwin/group.cpp #619872:619873 @@ -993,10 +993,11 @@ in_group->removeMember( this ); in_group = NULL; } - in_group = new_group; - if( in_group == NULL ) + if( new_group == NULL ) + new_group = new Group( None, workspace() ); + if( in_group != new_group ) { - in_group = new Group( None, workspace()); + in_group = new_group; in_group->addMember( this ); } }