(*** This bug was imported into bugs.kde.org ***) Package: konqueror Version: KDE 3.0.1 Severity: normal Installed from: SuSE RPMs Compiler: Not Specified OS: Linux OS/Compiler notes: Not Specified OK. You try to download a file from sourceforge. When you click on the file the new Mirror Page from Sourceforge appears. Normally the download should start automatically but when you download a tar.gz it opens it in the window which is not what i want (i want to save it on disk). So i click with right mouse button on the given Link and try to "save link as...". If you get the right moment also the automatically download should start this moment and konqueror doesn't seem to like this and crashes :(. System is a normal Suse 8.0 with KDE3.0.1 RPMS (Submitted via bugs.kde.org) (Called from KBugReport dialog. Fields Application KDE Version OS Compiler manually changed)
did you get a backtrace ?
On Samstag 15. Juni 2002 18:51 Dirk Mueller wrote: > did you get a backtrace ? > > (Complete bug history is available at http://bugs.kde.org/db/43/43389.html) No sorry. I use the SuSE RPMs so debug is disabled. But i also compiled now a recent cvs-version and there i cannot reproduce it :(. Seems to be fixed... Markus
(reporter says it's fixed :)
Reopened: Again reported as BR51501 against KDE 3.1rc3.
*** Bug 51501 has been marked as a duplicate of this bug. ***
I can reproduce it, but only under certain circumstances: The sf.net download window must have been opened in an extra frame... for example on www.emule-project.net, when you are on the download page you can exactly reproduce this bug, when you click on the .tar.gz file with left button....(then choosing save as on the mirror page). if you open the tar.gz in a new window konqueror doesn't crash anymore (when choosing save as on the mirror page). The Difference between the two ways of opening the file is, that in the first case, konqueror seems to embed ark and opens the .tar.gz , and in the second case the download as dialog appears. Hope this helps.
Created attachment 2129 [details] Backtrace for this bug, finally I have CVS_HEAD of July 25, 2003 running (on top of SuSE 7.3 with gcc3.3 and everything X - related compiled from source). I have encountered the same crash reliably under roughly the same conditions as in the _original_ report. There are some minor differences in what I did, but the general procedure to trigger the crash is consistent. Precautions: - kget not integrated in Konqi, i.e. you should see a dialog window when downloading things (not sure if this is mandatory) - ark must be installed and set to handle tar.bz2 files embedded in konqi Howto do it: 1. Try to download a .tar.bz2 file from sourceforge (no matter which, no matter what size etc.) 2. sourceforge will provide a list of download mirrors - choose one. 3. the download is then supposed to start automatically, but there's also a link to the file archive. 4. Start an attempt to save the file from that link with the rmb context menu (open at least the popup menu) If your download mirror is responsive enough the automatic download start will get ahead of you. Then Konqi will annoyingly start ark to display the archive. Now you see Konqi with the ark view together with the webbrowsing popup menu still open and the download progress window. Proceed to use the context menu, i.e. click at 'Save link as...' and choose a destination. Konqueror will first hang in you doing so and, after you hit e.g. the escape key, crash.
Konqueror crashes every time if you try to "Save Link As", while it refreshes to a .tar.gz file. archive. Here's a very simple example: http://dmytro.home.comcast.net/Konqueror/crash.html Backtrace: (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)...[New Thread 1092484128 (LWP 3723)] (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...0xffffe002 in ?? () #0 0xffffe002 in ?? () #1 0x4063057d in KCrash::defaultCrashHandler(int) () from /usr/lib/libkdecore.so.4 #2 <signal handler called> #3 0x0848f8cb in ?? () #4 0x402592f6 in KFileDialog::getSaveURL(QString const&, QString const&, QWidget*, QString const&) () from /usr/lib/libkio.so.4 #5 0x4622abcc in KHTMLPopupGUIClient::saveURL(QWidget*, QString const&, KURL const&, QMap<QString, QString> const&, QString const&, long, QString const&) () from /usr/lib/libkhtml.so.4 #6 0x4622a43a in KHTMLPopupGUIClient::slotSaveLinkAs() () from /usr/lib/libkhtml.so.4 #7 0x4622c784 in KHTMLPopupGUIClient::qt_invoke(int, QUObject*) () from /usr/lib/libkhtml.so.4 #8 0x409b10c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #9 0x409b0f6d in QObject::activate_signal(int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #10 0x403f1c7b in KAction::activated() () from /usr/lib/libkdeui.so.4 #11 0x403e310f in KAction::slotActivated() () from /usr/lib/libkdeui.so.4 #12 0x403f1e81 in KAction::qt_invoke(int, QUObject*) () from /usr/lib/libkdeui.so.4 #13 0x409b10c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #14 0x40c90452 in QSignal::signal(QVariant const&) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #15 0x409cb158 in QSignal::activate() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #16 0x40a9d97d in QPopupMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #17 0x409e500c in QWidget::event(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #18 0x40952f24 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #19 0x40952753 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #20 0x405c41e9 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4 #21 0x408f8d7d in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #22 0x408f6cdf in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #23 0x4090bbda in QEventLoop::processEvents(unsigned) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #24 0x40966cf6 in QEventLoop::enterLoop() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #25 0x409531b1 in QApplication::enter_loop() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #26 0x40aa04f6 in QPopupMenu::exec(QPoint const&, int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #27 0x412b29ab in KonqMainWindow::slotPopupMenu(KXMLGUIClient*, QPoint const&, QPtrList<KFileItem> const&, bool) () from /usr/lib/konqueror.so #28 0x412b2004 in KonqMainWindow::slotPopupMenu(KXMLGUIClient*, QPoint const&, KURL const&, QString const&, unsigned) () from /usr/lib/konqueror.so #29 0x412b7d7a in KonqMainWindow::qt_invoke(int, QUObject*) () from /usr/lib/konqueror.so #30 0x409b10c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #31 0x40053a4a in KParts::BrowserExtension::popupMenu(KXMLGUIClient*, QPoint const&, KURL const&, QString const&, unsigned) () from /usr/lib/libkparts.so.2 #32 0x4621cf36 in KHTMLPart::popupMenu(QString const&) () from /usr/lib/libkhtml.so.4 #33 0x46220bf7 in KHTMLPart::khtmlMousePressEvent(khtml::MousePressEvent*) () from /usr/lib/libkhtml.so.4 #34 0x46220927 in KHTMLPart::customEvent(QCustomEvent*) () from /usr/lib/libkhtml.so.4 #35 0x409aeccc in QObject::event(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #36 0x40952f24 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #37 0x40952b19 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #38 0x405c41e9 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4 #39 0x46201dd9 in KHTMLView::viewportMousePressEvent(QMouseEvent*) () from /usr/lib/libkhtml.so.4 #40 0x40aab826 in QScrollView::eventFilter(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #41 0x409aedee in QObject::activate_filters(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #42 0x409aed11 in QObject::event(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #43 0x409e4f8c in QWidget::event(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #44 0x40952f24 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #45 0x40952753 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #46 0x405c41e9 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4 #47 0x408f9198 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #48 0x408f6cdf in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #49 0x4090bbda in QEventLoop::processEvents(unsigned) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #50 0x40966cf6 in QEventLoop::enterLoop() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #51 0x40966b98 in QEventLoop::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #52 0x40953151 in QApplication::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #53 0x412973e7 in main () from /usr/lib/konqueror.so #54 0x0804ca81 in strcpy () #55 0x0804d73b in strcpy () #56 0x0804dbec in strcpy () #57 0x0804e8f9 in strcpy () #58 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6
*** Bug 53256 has been marked as a duplicate of this bug. ***
Subject: kdelibs/khtml CVS commit by mueller: reordering code to deal with the case that the popup menu might stay around longer than the KHTMLPart. part 3/3 of the fix for #43389. CCMAIL: 43389-done@bugs.kde.org M +13 -0 ChangeLog 1.6 M +1 -0 khtml_ext.cpp 1.80 M +13 -14 khtml_part.cpp 1.920 M +4 -3 khtmlview.cpp 1.561 --- kdelibs/khtml/khtml_ext.cpp #1.79:1.80 @@ -321,4 +321,5 @@ public: KHTMLPopupGUIClient::KHTMLPopupGUIClient( KHTMLPart *khtml, const QString &doc, const KURL &url ) + : QObject( khtml ) { d = new KHTMLPopupGUIClientPrivate; --- kdelibs/khtml/khtmlview.cpp #1.560:1.561 @@ -681,8 +681,9 @@ void KHTMLView::viewportMousePressEvent( if (!swallowEvent) { + emit m_part->nodeActivated(mev.innerNode); + khtml::MousePressEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode ); QApplication::sendEvent( m_part, &event ); - - emit m_part->nodeActivated(mev.innerNode); + // we might be deleted after this } } --- kdelibs/khtml/khtml_part.cpp #1.919:1.920 @@ -810,9 +810,4 @@ extern "C" { KJSProxy *kjs_html_init(KHT KJSProxy *KHTMLPart::jScript() { -#if defined K_WS_QTONLY - return 0; -#endif - -#if defined Q_WS_X11 && ! defined K_WS_QTONLY if (!jScriptEnabled()) return 0; @@ -845,5 +840,4 @@ KJSProxy *KHTMLPart::jScript() return d->m_jscript; -#endif // Q_WS_X11 } @@ -4139,5 +4133,8 @@ void KHTMLPart::popupMenu( const QString } - KXMLGUIClient *client = new KHTMLPopupGUIClient( this, d->m_popupMenuXML, linkKURL ); + // Danger, Will Robinson. The Popup might stay around for a much + // longer time than KHTMLPart. Deal with it. + KHTMLPopupGUIClient* client = new KHTMLPopupGUIClient( this, d->m_popupMenuXML, linkKURL ); + QGuardedPtr<QObject> guard( client ); KParts::URLArgs args; @@ -4147,7 +4144,9 @@ void KHTMLPart::popupMenu( const QString emit d->m_extension->popupMenu( client, QCursor::pos(), popupURL, args, itemflags, S_IFREG /*always a file*/); + if ( !guard.isNull() ) { delete client; - emit popupMenu(linkUrl, QCursor::pos()); + d->m_strSelectedURL = d->m_strSelectedURLTarget = QString::null; + } } @@ -5083,5 +5082,5 @@ void KHTMLPart::khtmlMousePressEvent( kh { popupMenu( d->m_strSelectedURL ); - d->m_strSelectedURL = d->m_strSelectedURLTarget = QString::null; + // might be deleted, don't touch "this" } } --- kdelibs/khtml/ChangeLog #1.5:1.6 @@ -1,2 +1,15 @@ +2003-10-06 Dirk Mueller <mueller@kde.org> + + * khtml_part.cpp (jScript): remove broken #ifdef'ery. + (popupMenu): add a QGuardedPtr to detect the case when we're destructed + before the popup menu is closed. avoid accessing any "this" then. + #43389 + + * khtmlview.cpp (viewportMousePressEvent): reorder afaik unrelated code + to make the one call entering a local event loop the last, so that we can + cleanly exit when it the view is already deleted. + + * khtml_ext.cpp (KHTMLPopupGUIClient): pass QObject parent + 2003-10-05 Dirk Mueller <mueller@kde.org>
I have experienced a crash similar to the above with Konqueror on KDE 4.1.85 from Kubuntu packages. I have undertaken the following: 1. Fresh start of Konqueror to www.openoffice.org 2. Selecting "I want to download" and "Get more platforms and languages" 3. When selecting "English US" and "Linux DEB" I receive a crash This I receive from KDE crash handler: Application: Konqueror (konqueror), signal SIGABRT Thread 1 (Thread 0xb609ab60 (LWP 8857)): [KCrash Handler] #6 0xb80f9430 in __kernel_vsyscall () #7 0xb6605880 in raise () from /lib/tls/i686/cmov/libc.so.6 #8 0xb6607248 in abort () from /lib/tls/i686/cmov/libc.so.6 #9 0xb72ea795 in qt_message_output () from /usr/lib/libQtCore.so.4 #10 0xb72ea872 in qFatal () from /usr/lib/libQtCore.so.4 #11 0xb72ea915 in qt_assert () from /usr/lib/libQtCore.so.4 #12 0xb7d6ec93 in ?? () from /usr/lib/libkio.so.5 #13 0xb7d6f8a0 in KDirLister::openUrl () from /usr/lib/libkio.so.5 #14 0xafdb6a00 in KDirOperator::Private::openUrl () from /usr/lib/libkfile.so.4 #15 0xafdc34b0 in KDirOperator::setUrl () from /usr/lib/libkfile.so.4 #16 0xafdb6aef in KDirOperator::selectDir () from /usr/lib/libkfile.so.4 #17 0xafdb6924 in KDirOperator::Private::_k_slotActivated () from /usr/lib/libkfile.so.4 #18 0xafdc2c2c in KDirOperator::qt_metacall () from /usr/lib/libkfile.so.4 #19 0xb73f7a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #20 0xb73f87e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #21 0xb6f94603 in QAbstractItemView::activated () from /usr/lib/libQtGui.so.4 #22 0xb6fa1920 in QAbstractItemView::mouseReleaseEvent () from /usr/lib/libQtGui.so.4 #23 0xb6fdb794 in QTreeView::mouseReleaseEvent () from /usr/lib/libQtGui.so.4 #24 0xb6b2a962 in QWidget::event () from /usr/lib/libQtGui.so.4 #25 0xb6e61fd3 in QFrame::event () from /usr/lib/libQtGui.so.4 #26 0xb6ef87df in QAbstractScrollArea::viewportEvent () from /usr/lib/libQtGui.so.4 #27 0xb6fa3ccf in QAbstractItemView::viewportEvent () from /usr/lib/libQtGui.so.4 #28 0xb6fdb9e4 in QTreeView::viewportEvent () from /usr/lib/libQtGui.so.4 #29 0xb6efad85 in ?? () from /usr/lib/libQtGui.so.4 #30 0xb73e204a in QCoreApplicationPrivate::sendThroughObjectEventFilters () from /usr/lib/libQtCore.so.4 #31 0xb6ad28ca in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #32 0xb6adb0e1 in QApplication::notify () from /usr/lib/libQtGui.so.4 #33 0xb797fd3d in KApplication::notify () from /usr/lib/libkdeui.so.5 #34 0xb73e2e61 in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4 #35 0xb6ada36e in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4 #36 0xb6b44656 in ?? () from /usr/lib/libQtGui.so.4 #37 0xb6b439e5 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4 #38 0xb6b6d7aa in ?? () from /usr/lib/libQtGui.so.4 #39 0xb63d06f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #40 0xb63d3da3 in ?? () from /usr/lib/libglib-2.0.so.0 #41 0xb63d3f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #42 0xb740d478 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4 #43 0xb6b6cea5 in ?? () from /usr/lib/libQtGui.so.4 #44 0xb73e152a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 #45 0xb73e16ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4 #46 0xb6f3f987 in QDialog::exec () from /usr/lib/libQtGui.so.4 #47 0xb7f2eb99 in KParts::BrowserRun::simpleSave () from /usr/lib/libkparts.so.4 #48 0xb7f2f511 in KParts::BrowserRun::save () from /usr/lib/libkparts.so.4 #49 0xb7f2e6a9 in KParts::BrowserRun::handleNonEmbeddable () from /usr/lib/libkparts.so.4 #50 0xb8011218 in ?? () from /usr/lib/libkdeinit4_konqueror.so #51 0xb7db4539 in KRun::mimeTypeDetermined () from /usr/lib/libkio.so.5 #52 0xb7f31762 in KParts::BrowserRun::slotBrowserMimetype () from /usr/lib/libkparts.so.4 #53 0xb7f31bbe in KParts::BrowserRun::qt_metacall () from /usr/lib/libkparts.so.4 #54 0xb801249a in ?? () from /usr/lib/libkdeinit4_konqueror.so #55 0xb73f7a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #56 0xb73f87e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #57 0xb7d33689 in KIO::TransferJob::mimetype () from /usr/lib/libkio.so.5 #58 0xb7d341f2 in KIO::TransferJob::slotMimetype () from /usr/lib/libkio.so.5 #59 0xb7d4209d in KIO::TransferJob::qt_metacall () from /usr/lib/libkio.so.5 #60 0xb73f7a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #61 0xb73f87e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #62 0xb7e05803 in KIO::SlaveInterface::mimeType () from /usr/lib/libkio.so.5 #63 0xb7e094dc in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.5 #64 0xb7e061c7 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.5 #65 0xb7df75bd in KIO::Slave::gotInput () from /usr/lib/libkio.so.5 #66 0xb7df8733 in KIO::Slave::qt_metacall () from /usr/lib/libkio.so.5 #67 0xb73f7a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #68 0xb73f87e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #69 0xb7d01dc7 in KIO::Connection::readyRead () from /usr/lib/libkio.so.5 #70 0xb7d03e99 in ?? () from /usr/lib/libkio.so.5 #71 0xb7d04026 in KIO::Connection::qt_metacall () from /usr/lib/libkio.so.5 #72 0xb73f0bfb in QMetaCallEvent::placeMetaCall () from /usr/lib/libQtCore.so.4 #73 0xb73f2771 in QObject::event () from /usr/lib/libQtCore.so.4 #74 0xb6ad28ec in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #75 0xb6ada72e in QApplication::notify () from /usr/lib/libQtGui.so.4 #76 0xb797fd3d in KApplication::notify () from /usr/lib/libkdeui.so.5 #77 0xb73e2e61 in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4 #78 0xb73e3ae5 in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib/libQtCore.so.4 #79 0xb73e3cdd in QCoreApplication::sendPostedEvents () from /usr/lib/libQtCore.so.4 #80 0xb740d82f in ?? () from /usr/lib/libQtCore.so.4 #81 0xb63d06f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #82 0xb63d3da3 in ?? () from /usr/lib/libglib-2.0.so.0 #83 0xb63d3f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #84 0xb740d478 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4 #85 0xb6b6cea5 in ?? () from /usr/lib/libQtGui.so.4 #86 0xb73e152a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 #87 0xb73e16ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4 #88 0xb73e3da5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4 #89 0xb6ad2767 in QApplication::exec () from /usr/lib/libQtGui.so.4 #90 0xb80a9585 in kdemain () from /usr/lib/libkdeinit4_konqueror.so #91 0x08048702 in _start () Hope it helps. Best wishes for the new year. Sebastian
This works for me with a recent SVN Version (kde4daily). BTW i think in general it is better to submit a new bug report, because this original one is almost 7 years old.