Bug 200815 - Edited the toolbar of Konqueror and it crashed
Summary: Edited the toolbar of Konqueror and it crashed
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
: 203252 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-07-20 02:23 UTC by Nick Stallman
Modified: 2009-11-20 01:42 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
possible patch (984 bytes, patch)
2009-08-14 20:22 UTC, David Faure
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Stallman 2009-07-20 02:23:31 UTC
Application that crashed: konqueror
Version of the application: 4.2.96 (KDE 4.2.96 (KDE 4.3 RC2))
KDE Version: 4.2.96 (KDE 4.2.96 (KDE 4.3 RC2))
Qt Version: 4.5.2
Operating System: Linux 2.6.30-gentoo-r2 x86_64

What I was doing when the application crashed:
I removed the KGet button from the toolbar of Konqueror and it segfaulted.

It segfaulted after closing the toolbar editing window.

 -- Backtrace:
Application: Konqueror (kdeinit4), signal: Segmentation fault
[KCrash Handler]
#5  0x00007f7a8b30150c in QLayout::parentWidget () from /usr/lib64/qt4/libQtGui.so.4
#6  0x00007f7a8b6e9b6b in QToolBarLayout::movable () from /usr/lib64/qt4/libQtGui.so.4
#7  0x00007f7a8b6e70e0 in QToolBar::initStyleOption () from /usr/lib64/qt4/libQtGui.so.4
#8  0x00007f7a8b6e73e5 in QToolBar::paintEvent () from /usr/lib64/qt4/libQtGui.so.4
#9  0x00007f7a8b32a0c6 in QWidget::event () from /usr/lib64/qt4/libQtGui.so.4
#10 0x00007f7a8b6e8aab in QToolBar::event () from /usr/lib64/qt4/libQtGui.so.4
#11 0x00007f7a8b2d70bd in QApplicationPrivate::notify_helper () from /usr/lib64/qt4/libQtGui.so.4
#12 0x00007f7a8b2df95e in QApplication::notify () from /usr/lib64/qt4/libQtGui.so.4
#13 0x00007f7a8c33a330 in KApplication::notify () from /usr/lib64/libkdeui.so.5
#14 0x00007f7a8de924eb in QCoreApplication::notifyInternal () from /usr/lib64/qt4/libQtCore.so.4
#15 0x00007f7a8b32ce0d in QWidgetPrivate::drawWidget () from /usr/lib64/qt4/libQtGui.so.4
#16 0x00007f7a8b32d6ca in QWidgetPrivate::paintSiblingsRecursive () from /usr/lib64/qt4/libQtGui.so.4
#17 0x00007f7a8b32caf9 in QWidgetPrivate::drawWidget () from /usr/lib64/qt4/libQtGui.so.4
#18 0x00007f7a8b4a7a44 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#19 0x00007f7a8b31f663 in QWidgetPrivate::syncBackingStore () from /usr/lib64/qt4/libQtGui.so.4
#20 0x00007f7a8b329fcd in QWidget::event () from /usr/lib64/qt4/libQtGui.so.4
#21 0x00007f7a8b685ceb in QMainWindow::event () from /usr/lib64/qt4/libQtGui.so.4
#22 0x00007f7a8c42d31c in KXmlGuiWindow::event () from /usr/lib64/libkdeui.so.5
#23 0x00007f7a859a6b6d in ?? () from /usr/lib64/libkdeinit4_konqueror.so
#24 0x00007f7a8b2d70bd in QApplicationPrivate::notify_helper () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007f7a8b2df95e in QApplication::notify () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007f7a8c33a330 in KApplication::notify () from /usr/lib64/libkdeui.so.5
#27 0x00007f7a8de924eb in QCoreApplication::notifyInternal () from /usr/lib64/qt4/libQtCore.so.4
#28 0x00007f7a8de95a35 in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib64/qt4/libQtCore.so.4
#29 0x00007f7a8deba653 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#30 0x00007f7a89d64c49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#31 0x00007f7a89d681a8 in ?? () from /usr/lib/libglib-2.0.so.0
#32 0x00007f7a89d6835e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#33 0x00007f7a8deba36f in QEventDispatcherGlib::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#34 0x00007f7a8b364ea8 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#35 0x00007f7a8de91112 in QEventLoop::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#36 0x00007f7a8de912bc in QEventLoop::exec () from /usr/lib64/qt4/libQtCore.so.4
#37 0x00007f7a8de95cde in QCoreApplication::exec () from /usr/lib64/qt4/libQtCore.so.4
#38 0x00007f7a859ede92 in kdemain () from /usr/lib64/libkdeinit4_konqueror.so
#39 0x0000000000407413 in _start ()

Reported using DrKonqi
Comment 1 Dario Andres 2009-07-21 15:09:43 UTC
Do you think the crash could be reproduced at will again ?
Thanks
Comment 2 Nick Stallman 2009-07-22 03:05:18 UTC
I just added the kget icon back, and yes it has crashed again.

When I get some more time I'll try to fiddle a bit more with it to narrow it down more.

Here is the end of the backtrace:
Application: Konqueror (kdeinit4), signal: Aborted
[KCrash Handler]
#5  0x00007f7ed6174645 in raise () from /lib/libc.so.6
#6  0x00007f7ed6175b63 in abort () from /lib/libc.so.6
#7  0x00007f7ed98b6765 in qt_message_output () from /usr/lib64/qt4/libQtCore.so.4
#8  0x00007f7ed98b6890 in qFatal () from /usr/lib64/qt4/libQtCore.so.4
#9  0x00007f7ed98e0636 in QListData::realloc () from /usr/lib64/qt4/libQtCore.so.4
#10 0x00007f7ed98e085d in QListData::append () from /usr/lib64/qt4/libQtCore.so.4
#11 0x00007f7ed6def025 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#12 0x00007f7ed6de5534 in QApplication::allWidgets () from /usr/lib64/qt4/libQtGui.so.4
#13 0x00007f7ed6de55aa in QApplication::topLevelWidgets () from /usr/lib64/qt4/libQtGui.so.4
#14 0x00007f7ed6debc93 in QApplicationPrivate::enterModal () from /usr/lib64/qt4/libQtGui.so.4
#15 0x00007f7ed6e38f4d in QWidgetPrivate::show_helper () from /usr/lib64/qt4/libQtGui.so.4
#16 0x00007f7ed6e393fa in QWidget::setVisible () from /usr/lib64/qt4/libQtGui.so.4
#17 0x00007f7ed72420ee in QDialog::setVisible () from /usr/lib64/qt4/libQtGui.so.4
#18 0x00007f7ed7241728 in QDialog::exec () from /usr/lib64/qt4/libQtGui.so.4
#19 0x00007f7ed14c6a9a in ?? () from /usr/lib64/libkdeinit4_konqueror.so
Comment 3 Dario Andres 2009-07-24 18:26:19 UTC
The second backtrace seems to be a bit different. Stange enough both backtraces seem to be pure Qt4 functions. Do you know if Gentoo patches Qt4 ?
Also, the last backtrace shows one function from Konqueror (you may need to recompile kdebase/apps with debugsymbols enabled in order to get a completer backtrace; but now I don't know if you would be able to reproduce again)
Thanks
Comment 4 Nick Stallman 2009-07-25 07:59:32 UTC
Gentoo probably does patch Qt4, but I doubt significantly enough to cause problems.

I just tried again, and I couldnt get the Download Manager icon to make it crash again.
The 'About KDE' one did it though.

#5  0x00007fef2f069fa9 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#6  0x00007fef2f06a02c in ?? () from /usr/lib64/qt4/libQtXml.so.4
#7  0x00007fef2f06a285 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#8  0x00007fef2f066fd6 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#9  0x00007fef2f06a015 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#10 0x00007fef2f06a285 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#11 0x00007fef2f066fd6 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#12 0x00007fef2f06a015 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#13 0x00007fef2f06a285 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#14 0x00007fef2f066fd6 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#15 0x00007fef2f06a015 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#16 0x00007fef2f06a285 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#17 0x00007fef2f066fd6 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#18 0x00007fef2f067dd5 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#19 0x00007fef2f067ee5 in ?? () from /usr/lib64/qt4/libQtXml.so.4
#20 0x00007fef2f064b75 in QDomNode::cloneNode () from /usr/lib64/qt4/libQtXml.so.4
#21 0x00007fef2ed1dadd in KXMLGUIFactory::removeClient () from /usr/lib64/libkdeui.so.5
#22 0x00007fef2ebabe88 in ?? () from /usr/lib64/libkdeui.so.5
#23 0x00007fef2ebac34d in ?? () from /usr/lib64/libkdeui.so.5
#24 0x00007fef2ebaca0d in ?? () from /usr/lib64/libkdeui.so.5
#25 0x00007fef2ebb0729 in KEditToolBar::qt_metacall () from /usr/lib64/libkdeui.so.5
#26 0x00007fef3078fa88 in QMetaObject::activate () from /usr/lib64/qt4/libQtCore.so.4
#27 0x00007fef2eba59fd in KDialog::slotButtonClicked () from /usr/lib64/libkdeui.so.5
#28 0x00007fef2eba778d in KDialog::qt_metacall () from /usr/lib64/libkdeui.so.5
#29 0x00007fef2ebb06b7 in KEditToolBar::qt_metacall () from /usr/lib64/libkdeui.so.5
#30 0x00007fef3078fa88 in QMetaObject::activate () from /usr/lib64/qt4/libQtCore.so.4
#31 0x00007fef30792f0e in QSignalMapper::mapped () from /usr/lib64/qt4/libQtCore.so.4
#32 0x00007fef30792fb0 in QSignalMapper::map () from /usr/lib64/qt4/libQtCore.so.4
#33 0x00007fef30794398 in QSignalMapper::qt_metacall () from /usr/lib64/qt4/libQtCore.so.4
#34 0x00007fef3078fa88 in QMetaObject::activate () from /usr/lib64/qt4/libQtCore.so.4
#35 0x00007fef2e19a217 in QAbstractButton::clicked () from /usr/lib64/qt4/libQtGui.so.4
#36 0x00007fef2df10930 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#37 0x00007fef2df12382 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#38 0x00007fef2df125a5 in QAbstractButton::mouseReleaseEvent () from /usr/lib64/qt4/libQtGui.so.4
#39 0x00007fef2dc122a8 in QWidget::event () from /usr/lib64/qt4/libQtGui.so.4
#40 0x00007fef2dbbf0bd in QApplicationPrivate::notify_helper () from /usr/lib64/qt4/libQtGui.so.4
#41 0x00007fef2dbc8183 in QApplication::notify () from /usr/lib64/qt4/libQtGui.so.4
#42 0x00007fef2ec22330 in KApplication::notify () from /usr/lib64/libkdeui.so.5
#43 0x00007fef3077a4eb in QCoreApplication::notifyInternal () from /usr/lib64/qt4/libQtCore.so.4
#44 0x00007fef2dbc735a in QApplicationPrivate::sendMouseEvent () from /usr/lib64/qt4/libQtGui.so.4
#45 0x00007fef2dc28e2c in ?? () from /usr/lib64/qt4/libQtGui.so.4
#46 0x00007fef2dc278a5 in QApplication::x11ProcessEvent () from /usr/lib64/qt4/libQtGui.so.4
#47 0x00007fef2dc4d674 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#48 0x00007fef2c64cc49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#49 0x00007fef2c6501a8 in ?? () from /usr/lib/libglib-2.0.so.0
#50 0x00007fef2c65035e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#51 0x00007fef307a236f in QEventDispatcherGlib::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#52 0x00007fef2dc4cea8 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#53 0x00007fef30779112 in QEventLoop::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#54 0x00007fef307792bc in QEventLoop::exec () from /usr/lib64/qt4/libQtCore.so.4
#55 0x00007fef2e01b775 in QDialog::exec () from /usr/lib64/qt4/libQtGui.so.4
#56 0x00007fef282a0a9a in ?? () from /usr/lib64/libkdeinit4_konqueror.so
#57 0x00007fef282a85d5 in ?? () from /usr/lib64/libkdeinit4_konqueror.so
#58 0x00007fef3078fa88 in QMetaObject::activate () from /usr/lib64/qt4/libQtCore.so.4
#59 0x00007fef2dbb9817 in QAction::triggered () from /usr/lib64/qt4/libQtGui.so.4
#60 0x00007fef2dbba4f8 in QAction::activate () from /usr/lib64/qt4/libQtGui.so.4
#61 0x00007fef2df8edcc in ?? () from /usr/lib64/qt4/libQtGui.so.4
#62 0x00007fef2df952f3 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#63 0x00007fef2ece1ac5 in KMenu::mouseReleaseEvent () from /usr/lib64/libkdeui.so.5
#64 0x00007fef2dc122a8 in QWidget::event () from /usr/lib64/qt4/libQtGui.so.4
#65 0x00007fef2df9646b in QMenu::event () from /usr/lib64/qt4/libQtGui.so.4
#66 0x00007fef2dbbf0bd in QApplicationPrivate::notify_helper () from /usr/lib64/qt4/libQtGui.so.4
#67 0x00007fef2dbc8183 in QApplication::notify () from /usr/lib64/qt4/libQtGui.so.4
#68 0x00007fef2ec22330 in KApplication::notify () from /usr/lib64/libkdeui.so.5
#69 0x00007fef3077a4eb in QCoreApplication::notifyInternal () from /usr/lib64/qt4/libQtCore.so.4
#70 0x00007fef2dbc735a in QApplicationPrivate::sendMouseEvent () from /usr/lib64/qt4/libQtGui.so.4
#71 0x00007fef2dc28fdb in ?? () from /usr/lib64/qt4/libQtGui.so.4
#72 0x00007fef2dc278a5 in QApplication::x11ProcessEvent () from /usr/lib64/qt4/libQtGui.so.4
#73 0x00007fef2dc4d674 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#74 0x00007fef2c64cc49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#75 0x00007fef2c6501a8 in ?? () from /usr/lib/libglib-2.0.so.0
#76 0x00007fef2c65035e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#77 0x00007fef307a236f in QEventDispatcherGlib::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#78 0x00007fef2dc4cea8 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#79 0x00007fef30779112 in QEventLoop::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#80 0x00007fef307792bc in QEventLoop::exec () from /usr/lib64/qt4/libQtCore.so.4
#81 0x00007fef2df96306 in QMenu::exec () from /usr/lib64/qt4/libQtGui.so.4
#82 0x00007fef2ed0cf6e in KToolBar::contextMenuEvent () from /usr/lib64/libkdeui.so.5
#83 0x00007fef2dc12616 in QWidget::event () from /usr/lib64/qt4/libQtGui.so.4
#84 0x00007fef2dfd0aab in QToolBar::event () from /usr/lib64/qt4/libQtGui.so.4
#85 0x00007fef2dbbf0bd in QApplicationPrivate::notify_helper () from /usr/lib64/qt4/libQtGui.so.4
#86 0x00007fef2dbc870e in QApplication::notify () from /usr/lib64/qt4/libQtGui.so.4
#87 0x00007fef2ec22330 in KApplication::notify () from /usr/lib64/libkdeui.so.5
#88 0x00007fef3077a4eb in QCoreApplication::notifyInternal () from /usr/lib64/qt4/libQtCore.so.4
#89 0x00007fef2dc29465 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#90 0x00007fef2dc278a5 in QApplication::x11ProcessEvent () from /usr/lib64/qt4/libQtGui.so.4
#91 0x00007fef2dc4d674 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#92 0x00007fef2c64cc49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#93 0x00007fef2c6501a8 in ?? () from /usr/lib/libglib-2.0.so.0
#94 0x00007fef2c65035e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#95 0x00007fef307a236f in QEventDispatcherGlib::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#96 0x00007fef2dc4cea8 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#97 0x00007fef30779112 in QEventLoop::processEvents () from /usr/lib64/qt4/libQtCore.so.4
#98 0x00007fef307792bc in QEventLoop::exec () from /usr/lib64/qt4/libQtCore.so.4
#99 0x00007fef3077dcde in QCoreApplication::exec () from /usr/lib64/qt4/libQtCore.so.4
#100 0x00007fef282d5e92 in kdemain () from /usr/lib64/libkdeinit4_konqueror.so
#101 0x0000000000407413 in _start ()

I think I need to recompile a few more libraries with debug.
Comment 5 Dario Andres 2009-07-26 18:23:57 UTC
This time is another different backtrace. related to the XMLGUI KDE technology.. mh..
Comment 6 Olivier Goffart 2009-07-31 09:58:56 UTC
valgrind output:
(kde trunk r1001942,  qt4.5 from git)

It looks like the KMenu is destryoed while it's being pressed 
(probably because there is reentrency in the event loop)
Just a guess,  but maybe the edit toolbar dialog is called with exec() instead of show()

my qmenu.cpp:1007       activationRecursionGuard = false;


konqueror(15093) KDEPrivate::KEditToolBarWidgetPrivate::slotToolBarSelected: found toolbar "mainToolBar <khtml_kget>" m_currentXmlData set to
konqueror(15093) KDEPrivate::KEditToolBarWidget::save: "<!DOCTYPE kpartgui>                                                                  
<kpartgui version="3" name="khtml_kget" library="khtml_kget" >                                                                               
 <MenuBar>                                                                                                                                   
  <Menu name="tools" >                                                                                                                       
   <text>&amp;Tools</text>                                                                                                                   
   <Action name="kget_menu" />                                                                                                               
  </Menu>                                                                                                                                    
 </MenuBar>                                                                                                                                  
 <ToolBar noMerge="1" name="mainToolBar" >                                                                                                   
  <Action name="kget_menu" />                                                                                                                
 </ToolBar>                                                                                                                                  
</kpartgui>                                                                                                                                  
"                                                                                                                                            
konqueror(15093) KXMLGUIBuilder::removeContainer: Unhandled container to remove :  KonqMainWindow                                            
QWidget::insertAction: Attempt to insert null action                                                                                         
==15093==                                                                                                                                    
==15093== Invalid read of size 1                                                                                                             
==15093==    at 0x8004D2C: QMenuPrivate::activateCausedStack(QList<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) (qmenu.cpp:1007)
==15093==    by 0x800AC69: QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) (qmenu.cpp:1060)                                       
==15093==    by 0x67536AD: KMenu::mouseReleaseEvent(QMouseEvent*) (kmenu.cpp:456)                                                                    
==15093==    by 0x7C6EFDF: QWidget::event(QEvent*) (qwidget.cpp:7554)                                                                                
==15093==    by 0x800D42A: QMenu::event(QEvent*) (qmenu.cpp:2353)                                                                                    
==15093==    by 0x7C2057B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4065)                                             
==15093==    by 0x7C27690: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3767)                                                           
==15093==    by 0x6681965: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302)                                                            
==15093==    by 0x752573B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:610)                                            
==15093==    by 0x7C26F5F: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&) (qcoreapplication.h:216)
==15093==    by 0x7C8D30D: QETWidget::translateMouseEvent(_XEvent const*) (qapplication_x11.cpp:4343)                                                             
==15093==    by 0x7C8BBE8: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3550)                                                                    
==15093==  Address 0xefbf4a0 is 40 bytes inside a block of size 112 free'd                                                                                        
==15093==    at 0x4C2210F: operator delete(void*) (in /usr/lib/valgrind/amd64-linux/vgpreload_memcheck.so)                                                        
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x62252D9: QDomElementPrivate::~QDomElementPrivate() (qdom.cpp:4433)                                                                              
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x62252D9: QDomElementPrivate::~QDomElementPrivate() (qdom.cpp:4433)                                                                              
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x62252D9: QDomElementPrivate::~QDomElementPrivate() (qdom.cpp:4433)                                                                              
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x6224295: QDomDocumentPrivate::~QDomDocumentPrivate() (qdom.cpp:6202)                                                                            
==15093==    by 0x621E423: QDomNode::operator=(QDomNode const&) (qdom.cpp:2062)                                                                                   
==15093==    by 0x65F4322: KDEPrivate::KEditToolBarWidget::rebuildKXMLGUIClients() (kedittoolbar.cpp:806)                                                         
==15093==    by 0x65F5724: KDEPrivate::KEditToolBarWidget::save() (kedittoolbar.cpp:770)                                                                          
==15093==                                                                                                                                                         
==15093== Invalid read of size 8                                                                                                                                  
==15093==    at 0x800AC74: QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) (qpointer.h:68)                                                     
==15093==    by 0x67536AD: KMenu::mouseReleaseEvent(QMouseEvent*) (kmenu.cpp:456)                                                                                 
==15093==    by 0x7C6EFDF: QWidget::event(QEvent*) (qwidget.cpp:7554)                                                                                             
==15093==    by 0x800D42A: QMenu::event(QEvent*) (qmenu.cpp:2353)                                                                                                 
==15093==    by 0x7C2057B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4065)                                                          
==15093==    by 0x7C27690: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3767)                                                                        
==15093==    by 0x6681965: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302)                                                                         
==15093==    by 0x752573B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:610)                                                         
==15093==    by 0x7C26F5F: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&) (qcoreapplication.h:216)
==15093==    by 0x7C8D30D: QETWidget::translateMouseEvent(_XEvent const*) (qapplication_x11.cpp:4343)                                                             
==15093==    by 0x7C8BBE8: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3550)                                                                    
==15093==    by 0x7CB3B1B: x11EventSourceDispatch(_GSource*, int (*)(void*), void*) (qguieventdispatcher_glib.cpp:146)                                            
==15093==  Address 0xefbf548 is 8 bytes after a block of size 40 free'd                                                                                           
==15093==    at 0x4C2210F: operator delete(void*) (in /usr/lib/valgrind/amd64-linux/vgpreload_memcheck.so)                                                        
==15093==    by 0x6222C9B: QDomNamedNodeMapPrivate::clearMap() (qhash.h:577)                                                                                      
==15093==    by 0x6222D4C: QDomNamedNodeMapPrivate::~QDomNamedNodeMapPrivate() (qdom.cpp:3058)                                                                    
==15093==    by 0x62252C9: QDomElementPrivate::~QDomElementPrivate() (qdom.cpp:4432)                                                                              
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x62252D9: QDomElementPrivate::~QDomElementPrivate() (qdom.cpp:4433)                                                                              
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x62252D9: QDomElementPrivate::~QDomElementPrivate() (qdom.cpp:4433)                                                                              
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x62252D9: QDomElementPrivate::~QDomElementPrivate() (qdom.cpp:4433)                                                                              
==15093==    by 0x6224118: QDomNodePrivate::~QDomNodePrivate() (qdom.cpp:1496)                                                                                    
==15093==    by 0x6224295: QDomDocumentPrivate::~QDomDocumentPrivate() (qdom.cpp:6202)
Comment 7 David Faure 2009-08-14 20:22:16 UTC
Created attachment 36154 [details]
possible patch

A solution would be to decouple the use of the action from its effect.
This patch fixes it for me, at least in konqueror.
Comment 8 David Faure 2009-08-18 21:53:25 UTC
SVN commit 1013099 by dfaure:

Use queued connection in order to fix crash when editing toolbars; the xmlgui-rebuilding was
deleting the menuitem that called this slot in the first place, and this is a nice and easy
way to decouple the two things. Will backport for 4.3.1.
BUG: 200815


 M  +9 -6      kstandardaction.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1013099
Comment 9 Jason Stubbs 2009-09-21 00:48:43 UTC
*** Bug 203252 has been marked as a duplicate of this bug. ***