Version: 4.1.96-48.11 (using KDE 4.1.96) Installed from: SuSE RPMs OS: Opensuse 11.1 KDE: 4.2 RC1 using opensuse factory repository Steps to reproduce: 1. Right click and unlock desktop. 2. Right click and click add new widget. 3. Select install widget from file. 4. Download and install widget available at following url. http://www.apple.com/downloads/dashboard/information/starrynightwidget.html Expected result: Widget should be installed. Actual result: Plasma crashes with backtrace as given below and also installs widget(its not usable though). Backtrace: Application: Plasma Workspace (plasma), signal SIGABRT [Current thread is 1 (Thread 0xb51cf700 (LWP 3942))] Thread 3 (Thread 0xa9c95b90 (LWP 3947)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb64aac35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb650a872 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #3 0xb79010d2 in ?? () from /usr/lib/libQtNetwork.so.4 #4 0xb650985e in ?? () from /usr/lib/libQtCore.so.4 #5 0xb64a71b5 in start_thread () from /lib/libpthread.so.0 #6 0xb62e938e in clone () from /lib/libc.so.6 Thread 2 (Thread 0xa9433b90 (LWP 3949)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb64aac35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb650a872 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4 #3 0xa9d3d72a in ?? () from /usr/lib/kde4/plasma_wallpaper_image.so #4 0xb650985e in ?? () from /usr/lib/libQtCore.so.4 #5 0xb64a71b5 in start_thread () from /lib/libpthread.so.0 #6 0xb62e938e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb51cf700 (LWP 3942)): [KCrash Handler] #6 0xffffe430 in __kernel_vsyscall () #7 0xb6242990 in raise () from /lib/libc.so.6 #8 0xb62442c8 in abort () from /lib/libc.so.6 #9 0xb6284683 in ?? () from /lib/libc.so.6 #10 0xb6285edb in free () from /lib/libc.so.6 #11 0xb6466ec1 in operator delete(void*) () from /usr/lib/libstdc++.so.6 #12 0xb65f8395 in QEventLoop::~QEventLoop() () from /usr/lib/libQtCore.so.4 #13 0xb6607c1f in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4 #14 0xb6610763 in QObject::~QObject() () from /usr/lib/libQtCore.so.4 #15 0xb73223c1 in KJob::~KJob() () from /usr/lib/libkdecore.so.5 #16 0xb73211f8 in KCompositeJob::~KCompositeJob() () from /usr/lib/libkdecore.so.5 #17 0xb7a42548 in KIO::Job::~Job() () from /usr/lib/libkio.so.5 #18 0xb7a1ae8d in KIO::CopyJob::~CopyJob() () from /usr/lib/libkio.so.5 #19 0xb660790c in qDeleteInEventHandler(QObject*) () from /usr/lib/libQtCore.so.4 #20 0xb66092b3 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4 #21 0xb68698fc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #22 0xb687175e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #23 0xb76508fd in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #24 0xb65f9961 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #25 0xb65fa5d5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4 #26 0xb65fa7cd in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4 #27 0xb662436f in ?? () from /usr/lib/libQtCore.so.4 #28 0xb55df9a8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #29 0xb55e3063 in ?? () from /usr/lib/libglib-2.0.so.0 #30 0xb55e3221 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #31 0xb6623fb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #32 0xb6902785 in ?? () from /usr/lib/libQtGui.so.4 #33 0xb65f801a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #34 0xb65f81da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #35 0xb7ad2c6b in KIO::NetAccess::enter_loop() () from /usr/lib/libkio.so.5 #36 0xb7ad332f in KIO::NetAccess::synchronousRunInternal(KIO::Job*, QWidget*, QByteArray*, KUrl*, QMap<QString, QString>*) () from /usr/lib/libkio.so.5 #37 0xb7ad39e1 in KIO::NetAccess::synchronousRun(KIO::Job*, QWidget*, QByteArray*, KUrl*, QMap<QString, QString>*) () from /usr/lib/libkio.so.5 #38 0xb7c5a499 in KFileWidget::slotOk() () from /usr/lib/libkfile.so.4 #39 0xb7c5677c in ?? () from /usr/lib/libkfile.so.4 #40 0xb7c591ba in KFileWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkfile.so.4 #41 0xb660e580 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #42 0xb660f302 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #43 0xb7c36e93 in KDirOperator::fileSelected(KFileItem const&) () from /usr/lib/libkfile.so.4 #44 0xb7c37c69 in KDirOperator::selectFile(KFileItem const&) () from /usr/lib/libkfile.so.4 #45 0xb7c37d26 in KDirOperator::Private::_k_slotDoubleClicked(QModelIndex const&) () from /usr/lib/libkfile.so.4 #46 0xb7c43122 in KDirOperator::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkfile.so.4 #47 0xb660e580 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #48 0xb660f302 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #49 0xb6d29fe3 in QAbstractItemView::doubleClicked(QModelIndex const&) () from /usr/lib/libQtGui.so.4 #50 0xb6d2bdb1 in QAbstractItemView::mouseDoubleClickEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #51 0xb68c18b2 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #52 0xb6bf7a83 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4 #53 0xb6c8e1bf in QAbstractScrollArea::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #54 0xb6d38f3f in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #55 0xb6c90765 in ?? () from /usr/lib/libQtGui.so.4 #56 0xb65f8b3a in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #57 0xb68698da in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #58 0xb6872111 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #59 0xb76508fd in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #60 0xb65f9961 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #61 0xb687139e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&) () from /usr/lib/libQtGui.so.4 #62 0xb68db716 in ?? () from /usr/lib/libQtGui.so.4 #63 0xb68daac5 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #64 0xb690308a in ?? () from /usr/lib/libQtGui.so.4 #65 0xb55df9a8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #66 0xb55e3063 in ?? () from /usr/lib/libglib-2.0.so.0 #67 0xb55e3221 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #68 0xb6623fb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #69 0xb6902785 in ?? () from /usr/lib/libQtGui.so.4 #70 0xb65f801a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #71 0xb65f81da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #72 0xb7322251 in KJob::exec() () from /usr/lib/libkdecore.so.5 #73 0xa8c1c287 in ?? () from /usr/lib/kde4/plasma_packagestructure_dashboard.so #74 0xb7f14636 in ?? () from /usr/lib/libkdeinit4_plasma.so #75 0xb7f14c8b in ?? () from /usr/lib/libkdeinit4_plasma.so #76 0xb660e580 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #77 0xb660f302 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #78 0xb7c50427 in KFileWidget::accepted() () from /usr/lib/libkfile.so.4 #79 0xb7c5b29b in KFileWidget::slotOk() () from /usr/lib/libkfile.so.4 #80 0xb7c5677c in ?? () from /usr/lib/libkfile.so.4 #81 0xb7c591ba in KFileWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkfile.so.4 #82 0xb660e580 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #83 0xb660f302 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #84 0xb7c36e93 in KDirOperator::fileSelected(KFileItem const&) () from /usr/lib/libkfile.so.4 #85 0xb7c37c69 in KDirOperator::selectFile(KFileItem const&) () from /usr/lib/libkfile.so.4 #86 0xb7c37dd4 in KDirOperator::Private::_k_slotActivated(QModelIndex const&) () from /usr/lib/libkfile.so.4 #87 0xb7c4313c in KDirOperator::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkfile.so.4 #88 0xb660e580 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #89 0xb660f302 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #90 0xb6d29f93 in QAbstractItemView::activated(QModelIndex const&) () from /usr/lib/libQtGui.so.4 #91 0xb6d37240 in QAbstractItemView::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #92 0xb6d4d0bf in QListView::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #93 0xb68c1a62 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #94 0xb6bf7a83 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4 #95 0xb6c8e1bf in QAbstractScrollArea::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #96 0xb6d38f3f in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #97 0xb6c90765 in ?? () from /usr/lib/libQtGui.so.4 #98 0xb65f8b3a in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #99 0xb68698da in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #100 0xb6872111 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #101 0xb76508fd in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #102 0xb65f9961 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #103 0xb687139e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&) () from /usr/lib/libQtGui.so.4 #104 0xb68db716 in ?? () from /usr/lib/libQtGui.so.4 #105 0xb68daac5 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #106 0xb690308a in ?? () from /usr/lib/libQtGui.so.4 #107 0xb55df9a8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #108 0xb55e3063 in ?? () from /usr/lib/libglib-2.0.so.0 #109 0xb55e3221 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #110 0xb6623fb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #111 0xb6902785 in ?? () from /usr/lib/libQtGui.so.4 #112 0xb65f801a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #113 0xb65f81da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #114 0xb65fa895 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #115 0xb6869777 in QApplication::exec() () from /usr/lib/libQtGui.so.4 #116 0xb7eef2c6 in kdemain () from /usr/lib/libkdeinit4_plasma.so #117 0x08048782 in _start ()
Looks like a KIO job related crash. As you can reproduce the crash at will, may you read http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports and post a complete backtrace here? Thanks :)
I've already posted steps to reproduce and full back trace. What is missing?
He meant "installing debug symbols". But the backtrace is clear enough to me: unwanted re-entrancy from KJob::exec() because it handled a mouse event, against expectations. Is there any chance you can test a patch? I'll attach it.
Created attachment 30695 [details] no gui handling from KJob::exec
SVN commit 918117 by dfaure: Ouch, don't handle GUI events from KJob::exec, it leads to unexpected re-entrancy and crashes. Reviewed by Kevin. Bug 182138 not actually re-tested though. BUG: 182138 M +1 -1 kjob.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=918117
I'm using rpm packages from opensuse factory repository and don't prefer to compile from source but I can give it a try if it is not much time consuming. Which package I have to recompile? By the way it is reproducible in 4.2.0 final also.
*** Bug 182226 has been marked as a duplicate of this bug. ***
In fact I committed the fix because it seems safe enough to me. So the easiest way to test it is to wait for updated packages from the opensuse factory.
*** Bug 182296 has been marked as a duplicate of this bug. ***
*** Bug 185444 has been marked as a duplicate of this bug. ***
*** Bug 186485 has been marked as a duplicate of this bug. ***