Summary: | Edited the toolbar of Konqueror and it crashed | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | Nick Stallman <nick> |
Component: | general | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | andresbajotierra, esigra, jasonbstubbs, ogoffart |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | possible patch |
Description
Nick Stallman
2009-07-20 02:23:31 UTC
Do you think the crash could be reproduced at will again ? Thanks 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 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 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. This time is another different backtrace. related to the XMLGUI KDE technology.. mh.. 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>&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) 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.
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 *** Bug 203252 has been marked as a duplicate of this bug. *** |