Bug 190886 - Plasma got stuck on device unmount
Summary: Plasma got stuck on device unmount
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-28 00:14 UTC by Clemens Eisserer
Modified: 2009-04-28 00:58 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Clemens Eisserer 2009-04-28 00:14:36 UTC
Version:            (using KDE 4.2.2)
OS:                Linux
Installed from:    Fedora RPMs

When I tried to unmount a device which had a lot of pending writes using the Device-Plasmoid, plasma got stuck.

I heard the drive writing the pending stuff, but then the whole plasma desktop became unresponsive. After I killed X, and restarted I was able to unmount the device normally. The device is ok, its new and dmesg didn't show anything uncommon.

I created a stacktrace using pstack:

Thread 4 (Thread 0xace44b70 (LWP 2136)):
#0  0x0016e422 in __kernel_vsyscall ()
#1  0x00c1e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x0358eef7 in QWaitCondition::wait(QMutex*, unsigned long) ()
#3  0x0397cd8a in QHostInfoAgent::run() () from /usr/lib/libQtNetwork.so.4
#4  0x0358de8e in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#5  0x00c19965 in start_thread () from /lib/libpthread.so.0
#6  0x00b4df9e in clone () from /lib/libc.so.6
Thread 3 (Thread 0xac2ffb70 (LWP 2137)):
#0  0x0016e422 in __kernel_vsyscall ()
#1  0x00c1e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x0358eef7 in QWaitCondition::wait(QMutex*, unsigned long) ()
#3  0x011901ea in RenderThread::run() ()
#4  0x0358de8e in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#5  0x00c19965 in start_thread () from /lib/libpthread.so.0
#6  0x00b4df9e in clone () from /lib/libc.so.6
Thread 2 (Thread 0xa5d34b70 (LWP 2241)):
#0  0x0016e422 in __kernel_vsyscall ()
#1  0x00b46531 in select () from /lib/libc.so.6
#2  0x0365e345 in QProcessManager::run() () from /usr/lib/libQtCore.so.4
#3  0x0358de8e in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#4  0x00c19965 in start_thread () from /lib/libpthread.so.0
#5  0x00b4df9e in clone () from /lib/libc.so.6
Thread 1 (Thread 0xb7f08780 (LWP 2135)):
#0  0x0016e422 in __kernel_vsyscall ()
#1  0x00c1e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x0358d512 in QMutexPrivate::wait(int) () from /usr/lib/libQtCore.so.4
#3  0x03588ac2 in QMutex::lock() () from /usr/lib/libQtCore.so.4
#4  0x038a7778 in QDBusConnectionPrivate::doDispatch() ()
#5  0x038e95e6 in QDBusConnectionPrivate::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtDBus.so.4
#6  0x0368f3ab in QMetaCallEvent::placeMetaCall(QObject*) ()
#7  0x03690a9e in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#8  0x04f4acfc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
#9  0x04f52124 in QApplication::notify(QObject*, QEvent*) ()
#10 0x059bd4ea in KApplication::notify(QObject*, QEvent*) ()
#11 0x036806db in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
#12 0x036811a8 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#13 0x0368137d in QCoreApplication::sendPostedEvents(QObject*, int) ()
#14 0x036abf9f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) ()
#15 0x00ca61e8 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#16 0x00ca97f8 in g_main_context_iterate () from /lib/libglib-2.0.so.0
#17 0x00ca996a in g_main_context_iteration () from /lib/libglib-2.0.so.0
#18 0x036abbcc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#19 0x04fea825 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtGui.so.4
#20 0x0367ec69 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#21 0x0367f0b2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
#22 0x05469d33 in QDialog::exec() () from /usr/lib/libQtGui.so.4
#23 0x0593c944 in KMessageBox::createKMessageBox(KDialog*, QIcon const&, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&, QMessageBox::Icon) () from /usr/lib/libkdeui.so.5
#24 0x0593dd9d in KMessageBox::createKMessageBox(KDialog*, QMessageBox::Icon, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&) () from /usr/lib/libkdeui.so.5
#25 0x0593eba1 in KMessageBox::errorListWId(unsigned long, QString const&, QStringList const&, QString const&, QFlags<KMessageBox::Option>) ()
#26 0x0593edbf in KMessageBox::error(QWidget*, QString const&, QString const&, QFlags<KMessageBox::Option>) () from /usr/lib/libkdeui.so.5
#27 0x005241fe in Notifier::NotifierDialog::storageTeardownDone(Solid::ErrorType, QVariant) () from /usr/lib/kde4/plasma_applet_devicenotifier.so
#28 0x00524558 in Notifier::NotifierDialog::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/kde4/plasma_applet_devicenotifier.so
#29 0x03696948 in QMetaObject::activate(QObject*, int, int, void**) ()
#30 0x036975e2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#31 0x03a307df in Solid::StorageAccess::teardownDone(Solid::ErrorType, QVariant, QString const&) () from /usr/lib/libsolid.so.4
#32 0x03a30ef8 in Solid::StorageAccess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libsolid.so.4
#33 0x03696948 in QMetaObject::activate(QObject*, int, int, void**) ()
#34 0x036975e2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#35 0x03a6981f in Solid::Backends::Hal::StorageAccess::teardownDone(Solid::ErrorType, QVariant, QString const&) () from /usr/lib/libsolid.so.4
#36 0x03a6e468 in Solid::Backends::Hal::StorageAccess::slotDBusError(QDBusError const&) () from /usr/lib/libsolid.so.4
#37 0x03a6ea1d in Solid::Backends::Hal::StorageAccess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libsolid.so.4
#38 0x03696948 in QMetaObject::activate(QObject*, int, int, void**) ()
#39 0x036975e2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#40 0x038e9719 in QDBusPendingCallWatcherHelper::error(QDBusError const&, QDBusMessage const&) () from /usr/lib/libQtDBus.so.4
#41 0x038b0ddc in QDBusConnectionPrivate::processFinishedCall(QDBusPendingCallPrivate*) () from /usr/lib/libQtDBus.so.4
#42 0x004c11a1 in _dbus_pending_call_complete () from /lib/libdbus-1.so.3
#43 0x004b10b6 in complete_pending_call_and_unlock () from /lib/libdbus-1.so.3
#44 0x004b3682 in dbus_connection_dispatch () from /lib/libdbus-1.so.3
#45 0x038a7793 in QDBusConnectionPrivate::doDispatch() ()
#46 0x038a789d in QDBusConnectionPrivate::socketRead(int) ()
#47 0x038e9607 in QDBusConnectionPrivate::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtDBus.so.4
#48 0x03696948 in QMetaObject::activate(QObject*, int, int, void**) ()
#49 0x036975e2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#50 0x036d17e3 in QSocketNotifier::activated(int) ()
#51 0x0369b407 in QSocketNotifier::event(QEvent*) ()
#52 0x04f4acfc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
#53 0x04f52124 in QApplication::notify(QObject*, QEvent*) ()
#54 0x059bd4ea in KApplication::notify(QObject*, QEvent*) ()
#55 0x036806db in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
#56 0x036abe6a in socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/libQtCore.so.4
#57 0x00ca61e8 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#58 0x00ca97f8 in g_main_context_iterate () from /lib/libglib-2.0.so.0
#59 0x00ca996a in g_main_context_iteration () from /lib/libglib-2.0.so.0
#60 0x036abbcc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#61 0x04fea825 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtGui.so.4
#62 0x0367ec69 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#63 0x0367f0b2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
#64 0x0368143f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#65 0x04f4ab77 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#66 0x03b57746 in kdemain () from /usr/lib/libkdeinit4_plasma.so
#67 0x080486eb in main ()
Comment 1 Dario Andres 2009-04-28 00:46:34 UTC
Thanks a lot. This is reported at bug 187242

*** This bug has been marked as a duplicate of bug 187242 ***
Comment 2 Aaron J. Seigo 2009-04-28 00:58:19 UTC
SVN commit 960112 by aseigo:

don't show a modal dialog when we're in the middle of d-bussing
BUG:190886


 M  +8 -3      notifierdialog.cpp  
 M  +6 -1      notifierdialog.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=960112