Bug 54190 - wkin crash in NETWinInfo::windowType
Summary: wkin crash in NETWinInfo::windowType
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: FreeBSD Ports FreeBSD
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-02-06 06:16 UTC by Sean Chittenden
Modified: 2003-02-14 09:30 UTC (History)
0 users

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 Sean Chittenden 2003-02-06 06:16:25 UTC
Version:           0.95 (using KDE KDE 3.1)
Installed from:    FreeBSD Ports
Compiler:          gcc version 3.2.1 [FreeBSD] 20021119 (release) 
OS:          FreeBSD

It looks like the *this that's being passed to NETWinInfo::windowType() is being clobbered/set to a bogus value inside of KWinInternal::Client::windowType().  I don't know what exactly it was that I did that triggered this though: I wasn't paying that close of attention when this happened.  :-/

#0  0x286643e6 in NETWinInfo::windowType() const (this=0xd0d0d0d0) at netwm.cpp:2816
#1  0x2935fa3b in KWinInternal::Client::windowType() const (this=0x8126200) at client.cpp:3037
#2  0x2935fcaf in KWinInternal::Client::isTopMenu() const (this=0xd0d0d0d0) at client.cpp:3087
#3  0x2933efce in KWinInternal::Workspace::setActiveClient(KWinInternal::Client*) (this=0x80c7800, c=0x0)
    at qvaluelist.h:186
#4  0x293582cc in ~Client (this=0x8107200) at client.h:382
#5  0x293cbe4b in ~KeramikClient (this=0x8107200) at keramik.cpp:781
#6  0x2933b2eb in ~Workspace (this=0x80c7800) at qvaluelist.h:186
#7  0x29353094 in virtual thunk to KWinInternal::Workspace::~Workspace() () at workspace.h:116
#8  0x2936293e in ~Application (this=0xbfbff610) at workspace.h:122
#9  0x2936308b in kdemain (argc=1, argv=0x80798f0) at main.cpp:256
#10 0x0804cb16 in launch (argc=1, _name=0x807c064 "kwin", args=0x807c069 "", cwd=0x0, envc=0,
    envs=0x807c06d "", reset_env=false, tty=0x0, avoid_loops=false,
    startup_id_str=0xd0d0d0d0 <Address 0xd0d0d0d0 out of bounds>) at kinit.cpp:547
#11 0x0804d906 in handle_launcher_request (sock=9) at kinit.cpp:1021
#12 0x0804de57 in handle_requests (waitForPid=0) at kinit.cpp:1189
#13 0x0804ef43 in main (argc=3, argv=0xbfbffc2c, envp=0xd0d0d0d0) at kinit.cpp:1540
#14 0x0804b115 in _start ()
Comment 1 Wilco Greven 2003-02-13 11:37:52 UTC
It looks like this is the "this really shouldn't happen" mentioned in the Client destructor. 
Because the Workspace is already being destructed the Workspace::setActiveClient call 
fails. The problem can be fixed by calling setActiveClient( NULL ) at the start of the  
Workspace destructor. Another possibility might be to use Workspace::destroyClient instead 
of using the Client destructor directly. 
Comment 2 Lubos Lunak 2003-02-14 09:30:47 UTC
Thanks, fixed.