XML KAction problem.

Zack Rusin zack at kde.org
Tue Sep 24 17:31:57 BST 2002


after updating qt-copy and kdelibs we found out that make_it_cool KMail 
has been crashing at the start. A little surprised we started debugging 
it. Don found and fixed the problem which was the fact that one can't 
use KAction's before createGUI is called anymore. Unfortunately this 
problem isn't make_it_cool KMail specific as other KDE applications use 
KAction's before calling createGUI as well. For example try ark from 
kdeutils and try opening any archive with it - you'll see it crash. I'm 
attaching the backtrace. I'm not sure what might be causing that crush. 
It seems that one of the QDockWindow's stored in dockWindows in 
qdockarea.cpp is destroyed at some point and never removed/set to 0. 
This might cause serious problems as I'm not sure how many applications 
use KAction's before calling createGUI and it's hard to predict how 
many of them will be crashing. Could someone take a look at this.


"The Internet is like a gateway to the net" - Bob Dole
-------------- next part --------------
[New Thread 1024 (LWP 17699)]
0x4194c609 in wait4 () from /lib/libc.so.6
#0  0x4194c609 in wait4 () from /lib/libc.so.6
#1  0x419c1dd0 in __check_rhosts_file () from /lib/libc.so.6
#2  0x417eaeeb in waitpid () from /lib/libpthread.so.0
#3  0x40f0d283 in KCrash::defaultCrashHandler (sig=11) at kcrash.cpp:235
#4  0x417e8a44 in pthread_sighandler () from /lib/libpthread.so.0
#5  0x418d5518 in sigaction () from /lib/libc.so.6
#6  0x4131e5a9 in QDockArea::moveDockWindow (this=0x80536d0, w=0x83edef8, 
    index=-1) at widgets/qdockarea.cpp:600
#7  0x4136adf3 in QMainWindow::moveDockWindow (this=0x8052d40, 
    dockWindow=0x83edef8, edge=DockTop) at widgets/qmainwindow.cpp:1298
#8  0x4136ac18 in QMainWindow::addDockWindow (this=0x8052d40, 
    dockWindow=0x83edef8, edge=DockTop, newLine=false)
    at widgets/qmainwindow.cpp:1245
#9  0x41327426 in QDockWindow::QDockWindow (this=0x83edef8, p=InDock, 
    parent=0x8052d40, name=0x83f6eb0 "mainToolBar", f=0)
    at widgets/qdockwindow.cpp:952
#10 0x413ab326 in QToolBar::QToolBar (this=0x83edef8, label=@0xbfffeb78, 
    mainWindow=0x8052d40, parent=0x8052d40, newLine=false, 
    name=0x83f6eb0 "mainToolBar", f=0) at widgets/qtoolbar.cpp:335
#11 0x40c8848a in KToolBar::KToolBar (this=0x83edef8, parent=0x8052d40, 
    name=0x83f6eb0 "mainToolBar", honorStyle=true, readConfig=false)
    at ktoolbar.cpp:171
#12 0x40d3d2a3 in KXMLGUIBuilder::createContainer (this=0x8052db8, parent=0x0, 
    index=0, element=@0xbfffee04, id=@0xbfffed50) at kxmlguibuilder.cpp:214
#13 0x40d3aa72 in KXMLGUI::BuildHelper::createContainer (this=0xbfffee78, 
    parent=0x0, index=0, element=@0xbfffee04, id=@0xbfffed50, 
    builder=0xbfffed4c) at kxmlguifactory_p.cpp:809
#14 0x40d3a702 in KXMLGUI::BuildHelper::processContainerElement (
    this=0xbfffee78, e=@0xbfffee04, tag=@0xbfffedb8, name=@0xbfffedb4)
    at kxmlguifactory_p.cpp:750
#15 0x40d39737 in KXMLGUI::BuildHelper::processElement (this=0xbfffee78, 
    e=@0xbfffee04) at kxmlguifactory_p.cpp:542
#16 0x40d3948d in KXMLGUI::BuildHelper::build (this=0xbfffee78, 
    element=@0xbfffeec0) at kxmlguifactory_p.cpp:521
#17 0x40d33de6 in KXMLGUIFactory::addClient (this=0x83a9dc8, client=0x8052e0c)
    at kxmlguifactory.cpp:273
#18 0x40cc4928 in KMainWindow::createGUI (this=0x8052d40, xmlfile=@0xbfffefa0, 
    _conserveMemory=false) at kmainwindow.cpp:385
#19 0x4010e95d in KMMainWin::KMMainWin (this=0x8052d40, __in_chrg=1)
    at kmmainwin.cpp:39
#20 0x40232774 in KMKernel::openReader (this=0xbffff730) at kmkernel.cpp:202
#21 0x40236566 in KMKernel::action (this=0xbffff730, mailto=false, 
    check=false, to=@0xbffff158, cc=@0xbffff154, bcc=@0xbffff150, 
    subj=@0xbffff14c, body=@0xbffff148, messageFile=@0xbffff120, 
    attachURLs=@0xbffff11c) at kmkernel.cpp:984
#22 0x4023a54c in KMailApplication::newInstance (this=0xbffff800)
    at main.cpp:140
#23 0x40f26463 in KUniqueApplication::processDelayed (this=0xbffff800)
    at kuniqueapplication.cpp:363
#24 0x40f267c9 in KUniqueApplication::qt_invoke (this=0xbffff800, _id=10, 
    _o=0xbffff280) at kuniqueapplication.moc:86
#25 0x4128b1fe in QObject::activate_signal (this=0x826c6d0, clist=0x80acf98, 
    o=0xbffff280) at kernel/qobject.cpp:2133
#26 0x41584f12 in QSignal::signal (this=0x826c6d0, t0=@0x826c6f8)
    at .moc/debug-shared-mt/moc_qsignal.cpp:101
#27 0x412a6804 in QSignal::activate (this=0x826c6d0) at kernel/qsignal.cpp:205
#28 0x412aceaa in QSingleShotTimer::event (this=0x826c6a8)
    at kernel/qtimer.cpp:277
#29 0x41221f59 in QApplication::internalNotify (this=0xbffff800, 
    receiver=0x826c6a8, e=0xbffff4bc) at kernel/qapplication.cpp:2258
#30 0x4122149f in QApplication::notify (this=0xbffff800, receiver=0x826c6a8, 
    e=0xbffff4bc) at kernel/qapplication.cpp:2048
#31 0x40e96d43 in KApplication::notify (this=0xbffff800, receiver=0x826c6a8, 
    event=0xbffff4bc) at kapplication.cpp:421
#32 0x4157b664 in QApplication::sendEvent (receiver=0x826c6a8, 
    event=0xbffff4bc) at .moc/debug-shared-mt/../../kernel/qapplication.h:472
#33 0x411ff855 in QEventLoop::activateTimers (this=0x80a9928)
    at kernel/qeventloop_unix.cpp:524
#34 0x411d9080 in QEventLoop::processNextEvent (this=0x80a9928, flags=0, 
    canWait=true) at kernel/qeventloop_x11.cpp:310
#35 0x412392a8 in QEventLoop::enterLoop (this=0x80a9928)
    at kernel/qeventloop.cpp:186
#36 0x412391e9 in QEventLoop::exec (this=0x80a9928)
    at kernel/qeventloop.cpp:136
#37 0x412220c1 in QApplication::exec (this=0xbffff800)
    at kernel/qapplication.cpp:2360
#38 0x4023af11 in main (argc=1, argv=0xbffff984) at main.cpp:238

More information about the kde-core-devel mailing list