Bug 267359

Summary: Crash after unmount hdd drive during process running.
Product: [Applications] digikam Reporter: jgrzebyta
Component: Database-ScanAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, caulier.gilles
Priority: NOR    
Version: 1.4.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 5.7.0
Sentry Crash Report:

Description jgrzebyta 2011-03-01 04:09:02 UTC
Application: digikam (1.4.0)
KDE Platform Version: 4.5.1 (KDE 4.5.1)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-27-generic i686
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:

When I want to unmount external hdd drive I have a message that process is still running (the program window was closed long time ago) so it cannot be unmounted. However when I want to unmount another partition of the drive it goes well but I have this error.

- Custom settings of the application:
It is nonstadard. I use it in GNOME.

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 1 (Thread 0xb6647740 (LWP 4097))]

Thread 7 (Thread 0xb625ab70 (LWP 4098)):
#0  0x004b77df in __pthread_mutex_unlock_usercnt () from /lib/libpthread.so.0
#1  0x01aa8fee in g_main_context_prepare () from /lib/libglib-2.0.so.0
#2  0x01aa9279 in ?? () from /lib/libglib-2.0.so.0
#3  0x01aa9ba7 in g_main_loop_run () from /lib/libglib-2.0.so.0
#4  0x02db49c4 in ?? () from /usr/lib/libgio-2.0.so.0
#5  0x01ad048f in ?? () from /lib/libglib-2.0.so.0
#6  0x004b3cc9 in start_thread () from /lib/libpthread.so.0
#7  0x0471b69e in clone () from /lib/libc.so.6

Thread 6 (Thread 0xb1bfeb70 (LWP 4166)):
#0  0x004e3832 in ?? () from /lib/ld-linux.so.2
#1  0x004b84dc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x035739c7 in wait (this=0x8fe61f0, mutex=0x8fe61ec, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x8fe61f0, mutex=0x8fe61ec, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0x042a72d2 in Digikam::ParkingThread::run (this=0x8fe61e0) at /build/buildd/digikam-1.4.0/libs/threads/threadmanager.cpp:101
#5  0x03572df9 in QThreadPrivate::start (arg=0x8fe61e0) at thread/qthread_unix.cpp:266
#6  0x004b3cc9 in start_thread () from /lib/libpthread.so.0
#7  0x0471b69e in clone () from /lib/libc.so.6

Thread 5 (Thread 0xb13fdb70 (LWP 4167)):
#0  0x085bee36 in clock_gettime () from /lib/librt.so.1
#1  0x035ce50b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0x036a56e5 in QTimerInfoList::updateCurrentTime (this=0x8ffe8b4) at kernel/qeventdispatcher_unix.cpp:339
#4  0x036a572a in QTimerInfoList::timerWait (this=0x8ffe8b4, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x036a37a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb13fd0ec) at kernel/qeventdispatcher_glib.cpp:136
#6  0x036a383d in timerSourcePrepare (source=0x0, timeout=0x85c2ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0x01aa8e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0x01aa9279 in ?? () from /lib/libglib-2.0.so.0
#9  0x01aa9848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0x036a359f in QEventDispatcherGlib::processEvents (this=0x8fff6b0, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0x03673609 in QEventLoop::processEvents (this=0xb13fd2c0, flags=) at kernel/qeventloop.cpp:149
#12 0x03673a8a in QEventLoop::exec (this=0xb13fd2c0, flags=...) at kernel/qeventloop.cpp:201
#13 0x0356fb7e in QThread::exec (this=0x8ffcf00) at thread/qthread.cpp:490
#14 0x03572df9 in QThreadPrivate::start (arg=0x8ffcf00) at thread/qthread_unix.cpp:266
#15 0x004b3cc9 in start_thread () from /lib/libpthread.so.0
#16 0x0471b69e in clone () from /lib/libc.so.6

Thread 4 (Thread 0xb0bfcb70 (LWP 4168)):
#0  0x036a35a1 in QEventDispatcherGlib::processEvents (this=0x8ffeea0, flags=...) at kernel/qeventdispatcher_glib.cpp:416
#1  0x03673609 in QEventLoop::processEvents (this=0xb0bfc2c0, flags=) at kernel/qeventloop.cpp:149
#2  0x03673a8a in QEventLoop::exec (this=0xb0bfc2c0, flags=...) at kernel/qeventloop.cpp:201
#3  0x0356fb7e in QThread::exec (this=0x8fff3f0) at thread/qthread.cpp:490
#4  0x03572df9 in QThreadPrivate::start (arg=0x8fff3f0) at thread/qthread_unix.cpp:266
#5  0x004b3cc9 in start_thread () from /lib/libpthread.so.0
#6  0x0471b69e in clone () from /lib/libc.so.6

Thread 3 (Thread 0xa92d3b70 (LWP 4182)):
#0  0x004e3832 in ?? () from /lib/ld-linux.so.2
#1  0x004b8884 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x03feab3f in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 0xa7ec6b70 (LWP 4184)):
#0  0x085bee36 in clock_gettime () from /lib/librt.so.1
#1  0x035ce50b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0x036a56e5 in QTimerInfoList::updateCurrentTime (this=0x94e3c74) at kernel/qeventdispatcher_unix.cpp:339
#4  0x036a572a in QTimerInfoList::timerWait (this=0x94e3c74, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x036a37a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xa7ec607c) at kernel/qeventdispatcher_glib.cpp:136
#6  0x036a383d in timerSourcePrepare (source=0x0, timeout=0x85c2ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0x01aa8e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0x01aa9279 in ?? () from /lib/libglib-2.0.so.0
#9  0x01aa9848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0x036a359f in QEventDispatcherGlib::processEvents (this=0x94e2680, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0x03673609 in QEventLoop::processEvents (this=0xa7ec6250, flags=) at kernel/qeventloop.cpp:149
#12 0x03673a8a in QEventLoop::exec (this=0xa7ec6250, flags=...) at kernel/qeventloop.cpp:201
#13 0x0356fb7e in QThread::exec (this=0x94e2288) at thread/qthread.cpp:490
#14 0x03f8781a in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#15 0x03572df9 in QThreadPrivate::start (arg=0x94e2288) at thread/qthread_unix.cpp:266
#16 0x004b3cc9 in start_thread () from /lib/libpthread.so.0
#17 0x0471b69e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb6647740 (LWP 4097)):
[KCrash Handler]
#7  KDirWatch::removeDir (this=0x0, _path=...) at ../../kdecore/io/kdirwatch.cpp:1778
#8  0x0827ad03 in Digikam::AlbumManager::removeAlbumRoot (this=0x8e83c28, location=...) at /build/buildd/digikam-1.4.0/digikam/albummanager.cpp:1148
#9  0x08283d39 in Digikam::AlbumManager::slotCollectionLocationStatusChanged (this=0x8e83c28, location=..., oldStatus=1) at /build/buildd/digikam-1.4.0/digikam/albummanager.cpp:1109
#10 0x08285d57 in Digikam::AlbumManager::qt_metacall (this=0x8e83c28, _c=QMetaObject::InvokeMetaMethod, _id=33, _a=0xbfdc81b4) at /build/buildd/digikam-1.4.0/obj-i686-linux-gnu/digikam/albummanager.moc:185
#11 0x0367a8ca in QMetaObject::metacall (object=0x8e83c28, cl=3218899201, idx=33, argv=0xbfdc81b4) at kernel/qmetaobject.cpp:237
#12 0x0368d6ad in QMetaObject::activate (sender=0x8e85e40, m=0x708264, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3280
#13 0x005f2799 in Digikam::CollectionManager::locationStatusChanged (this=0x8e85e40, _t1=..., _t2=1) at /build/buildd/digikam-1.4.0/obj-i686-linux-gnu/digikam/collectionmanager.moc:108
#14 0x005f951d in Digikam::CollectionManager::updateLocations (this=0x8e85e40) at /build/buildd/digikam-1.4.0/libs/database/collectionmanager.cpp:1376
#15 0x005fa4ed in Digikam::CollectionManager::deviceRemoved (this=0x8e85e40, udi=...) at /build/buildd/digikam-1.4.0/libs/database/collectionmanager.cpp:1266
#16 0x005fa6d5 in Digikam::CollectionManager::qt_metacall (this=0x8e85e40, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0xbfdc84a8) at /build/buildd/digikam-1.4.0/obj-i686-linux-gnu/digikam/collectionmanager.moc:93
#17 0x0367a8ca in QMetaObject::metacall (object=0x8e85e40, cl=3218899201, idx=8, argv=0xbfdc84a8) at kernel/qmetaobject.cpp:237
#18 0x0368d6ad in QMetaObject::activate (sender=0x8e86e90, m=0xd756c8, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3280
#19 0x00d0e293 in Solid::DeviceNotifier::deviceRemoved (this=0x8e86e90, _t1=...) at ./devicenotifier.moc:94
#20 0x00d1148c in Solid::DeviceManagerPrivate::_k_deviceRemoved (this=0x8e86e90, udi=...) at ../../../solid/solid/devicemanager.cpp:206
#21 0x00d11915 in Solid::DeviceManagerPrivate::qt_metacall (this=0x8e86e90, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfdc8648) at ./devicemanager_p.moc:80
#22 0x0367a8ca in QMetaObject::metacall (object=0x8e86e90, cl=3218899201, idx=7, argv=0xbfdc8648) at kernel/qmetaobject.cpp:237
#23 0x0368d6ad in QMetaObject::activate (sender=0x8e51960, m=0xd76780, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3280
#24 0x00d261a3 in Solid::Ifaces::DeviceManager::deviceRemoved (this=0x8e51960, _t1=...) at ./ifaces/devicemanager.moc:94
#25 0x00d53aca in Solid::Backends::Hal::HalManager::slotDeviceRemoved (this=0x8e51960, udi=...) at ../../../solid/solid/backends/hal/halmanager.cpp:250
#26 0x00d53b6a in Solid::Backends::Hal::HalManager::qt_metacall (this=0x8e51960, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfdc87fc) at ./backends/hal/halmanager.moc:78
#27 0x00e729dc in QDBusConnectionPrivate::deliverCall (this=0x8e887c0, object=0x8e51960, msg=..., metaTypes=..., slotIdx=7) at qdbusintegrator.cpp:919
#28 0x00e7e1f7 in QDBusCallDeliveryEvent::placeMetaCall (this=0x98b02b0, object=0x8e51960) at qdbusintegrator_p.h:103
#29 0x036876a2 in QObject::event (this=0x8e51960, e=0x0) at kernel/qobject.cpp:1219
#30 0x0223afdc in QApplicationPrivate::notify_helper (this=0x8cf5190, receiver=0x8e51960, e=0x98b02b0) at kernel/qapplication.cpp:4396
#31 0x0224104e in QApplication::notify (this=0xbfdc913c, receiver=0x8e51960, e=0x98b02b0) at kernel/qapplication.cpp:3798
#32 0x0764268a in KApplication::notify (this=0xbfdc913c, receiver=0x8e51960, event=0x98b02b0) at ../../kdeui/kernel/kapplication.cpp:310
#33 0x03674b3b in QCoreApplication::notifyInternal (this=0xbfdc913c, receiver=0x8e51960, event=0x98b02b0) at kernel/qcoreapplication.cpp:732
#34 0x03677d8b in sendEvent (receiver=0x0, event_type=0, data=0x8cc82b8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#35 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8cc82b8) at kernel/qcoreapplication.cpp:1373
#36 0x03677f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#37 0x036a3a74 in sendPostedEvents (s=0x8cf6d90) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#38 postEventSourceDispatch (s=0x8cf6d90) at kernel/qeventdispatcher_glib.cpp:277
#39 0x01aa5855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#40 0x01aa9668 in ?? () from /lib/libglib-2.0.so.0
#41 0x01aa9848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#42 0x036a3565 in QEventDispatcherGlib::processEvents (this=0x8cc7d68, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#43 0x022fcbe5 in QGuiEventDispatcherGlib::processEvents (this=0x8cc7d68, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#44 0x03673609 in QEventLoop::processEvents (this=0xbfdc9024, flags=) at kernel/qeventloop.cpp:149
#45 0x03673a8a in QEventLoop::exec (this=0xbfdc9024, flags=...) at kernel/qeventloop.cpp:201
#46 0x0367800f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#47 0x02239e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#48 0x083c06b3 in main (argc=5, argv=0xbfdc95a4) at /build/buildd/digikam-1.4.0/digikam/main.cpp:195

This bug may be a duplicate of or related to bug 259005.

Possible duplicates by query: bug 259005, bug 256867, bug 252436.

Reported using DrKonqi
Comment 1 Dario Andres 2011-03-08 21:28:23 UTC
[Comment from a bug triager]
This issue is being tracked at bug 256867, and it should be fixed on Digikam 1.6.0 and later.
Merging. Thanks

*** This bug has been marked as a duplicate of bug 256867 ***
Comment 2 caulier.gilles 2017-07-19 03:43:48 UTC
Problem not reproducible since digiKam 5.0.0 as KDirWatch has been ported to
QFileSystemWatcher