Bug 256867

Summary: dgikam crashes when deleting album
Product: [Applications] digikam Reporter: majoky
Component: Database-AlbumsAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, cfeck, jgrzebyta, mossad, rmendozao
Priority: NOR    
Version: 1.4.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 5.7.0

Description majoky 2010-11-14 03:39:21 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-22-generic x86_64
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:
when deleting an album on the harddrive digikam crashes.
reproducable.
album will show up next time digikam is started

The crash can be reproduced every time.

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

Thread 7 (Thread 0x7f977dcd3710 (LWP 3784)):
#0  0x00007f9789aec1d3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f9786977009 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f97869777b5 in g_main_loop_run () from /lib/libglib-2.0.so.0
#3  0x00007f977e40a0f4 in ?? () from /usr/lib/libgio-2.0.so.0
#4  0x00007f978699c7e4 in ?? () from /lib/libglib-2.0.so.0
#5  0x00007f978b025971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#6  0x00007f9789af891d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f976b976710 (LWP 3789)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f978b2b0e3b in wait (this=<value optimized out>, mutex=0x1863cb8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1863cb8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f978f2ca5e4 in Digikam::ParkingThread::run (this=0x1863ca0) at /build/buildd/digikam-1.4.0/libs/threads/threadmanager.cpp:101
#4  0x00007f978b2b027e in QThreadPrivate::start (arg=0x1863ca0) at thread/qthread_unix.cpp:266
#5  0x00007f978b025971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#6  0x00007f9789af891d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f976b175710 (LWP 3790)):
#0  0x00007f9789aec1d3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f9786977009 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f978697745c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f978b3d01e6 in QEventDispatcherGlib::processEvents (this=0x18a01c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#4  0x00007f978b3a2a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f978b3a2dec in QEventLoop::exec (this=0x7f976b174d90, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f978b2ad2fd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f978b2b027e in QThreadPrivate::start (arg=0x18a11a0) at thread/qthread_unix.cpp:266
#8  0x00007f978b025971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#9  0x00007f9789af891d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f976a974710 (LWP 3791)):
#0  0x00007f9789aec1d3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f9786977009 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f978697745c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f978b3d01e6 in QEventDispatcherGlib::processEvents (this=0x18a2be0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#4  0x00007f978b3a2a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f978b3a2dec in QEventLoop::exec (this=0x7f976a973d90, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f978b2ad2fd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f978b2b027e in QThreadPrivate::start (arg=0x18a07a0) at thread/qthread_unix.cpp:266
#8  0x00007f978b025971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#9  0x00007f9789af891d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f975e5ab710 (LWP 3792)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1  0x00007f976792d0d1 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f978b025971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#3  0x00007f9789af891d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f975cb71710 (LWP 3794)):
#0  __pthread_mutex_lock (mutex=0x1e0ad08) at pthread_mutex_lock.c:50
#1  0x00007f97869768bf in g_main_context_prepare () from /lib/libglib-2.0.so.0
#2  0x00007f9786976e78 in ?? () from /lib/libglib-2.0.so.0
#3  0x00007f978697745c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x00007f978b3d01e6 in QEventDispatcherGlib::processEvents (this=0x1e0ac10, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#5  0x00007f978b3a2a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#6  0x00007f978b3a2dec in QEventLoop::exec (this=0x7f975cb70d30, flags=) at kernel/qeventloop.cpp:201
#7  0x00007f978b2ad2fd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#8  0x00007f9767b892b0 in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#9  0x00007f978b2b027e in QThreadPrivate::start (arg=0x1e0a5d0) at thread/qthread_unix.cpp:266
#10 0x00007f978b025971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#11 0x00007f9789af891d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f97922a17c0 (LWP 3783)):
[KCrash Handler]
#6  KDirWatch::removeDir (this=0x0, _path=...) at ../../kdecore/io/kdirwatch.cpp:1778
#7  0x000000000063c15b in Digikam::AlbumManager::removeAlbumRoot (this=0x1691430, location=...) at /build/buildd/digikam-1.4.0/digikam/albummanager.cpp:1148
#8  0x0000000000645cd8 in Digikam::AlbumManager::slotCollectionLocationStatusChanged (this=0x1691430, location=..., oldStatus=1) at /build/buildd/digikam-1.4.0/digikam/albummanager.cpp:1109
#9  0x0000000000647d75 in Digikam::AlbumManager::qt_metacall (this=0x1691430, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff0fd1f20) at /build/buildd/digikam-1.4.0/obj-x86_64-linux-gnu/digikam/albummanager.moc:185
#10 0x00007f978b3bbb27 in QMetaObject::activate (sender=0x16f7580, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7ffff0fd1f01) at kernel/qobject.cpp:3280
#11 0x00007f978ed39053 in Digikam::CollectionManager::locationStatusChanged (this=0x0, _t1=<value optimized out>, _t2=1) at /build/buildd/digikam-1.4.0/obj-x86_64-linux-gnu/digikam/collectionmanager.moc:108
#12 0x00007f978ed3f630 in Digikam::CollectionManager::updateLocations (this=<value optimized out>) at /build/buildd/digikam-1.4.0/libs/database/collectionmanager.cpp:1312
#13 0x00007f978ed40495 in Digikam::CollectionManager::slotAlbumRootChange (this=0x16f7580, changeset=...) at /build/buildd/digikam-1.4.0/libs/database/collectionmanager.cpp:1406
#14 0x00007f978ed408e1 in Digikam::CollectionManager::qt_metacall (this=0x16f7580, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff0fd2440) at /build/buildd/digikam-1.4.0/obj-x86_64-linux-gnu/digikam/collectionmanager.moc:95
#15 0x00007f978b3bbb27 in QMetaObject::activate (sender=0x16fdbc0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7ffff0fd1f01) at kernel/qobject.cpp:3280
#16 0x00007f978ed47665 in Digikam::DatabaseWatch::albumRootChange (this=0x0, _t1=<value optimized out>) at /build/buildd/digikam-1.4.0/obj-x86_64-linux-gnu/digikam/moc_databasewatch.cpp:185
#17 0x00007f978ed47e17 in Digikam::DatabaseWatch::qt_metacall (this=0x16fdbc0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff0fd26b0) at /build/buildd/digikam-1.4.0/obj-x86_64-linux-gnu/digikam/moc_databasewatch.cpp:137
#18 0x00007f978adc60ee in QDBusConnectionPrivate::deliverCall (this=<value optimized out>, object=<value optimized out>, msg=<value optimized out>, metaTypes=..., slotIdx=<value optimized out>) at qdbusintegrator.cpp:919
#19 0x00007f978add10ef in QDBusCallDeliveryEvent::placeMetaCall (this=0x0, object=0x7ffff0fd1da0) at qdbusintegrator_p.h:103
#20 0x00007f978b3b5bde in QObject::event (this=0x16fdbc0, e=0x0) at kernel/qobject.cpp:1219
#21 0x00007f978bfb4fdc in QApplicationPrivate::notify_helper (this=0x149b740, receiver=0x16fdbc0, e=0x5b986f0) at kernel/qapplication.cpp:4396
#22 0x00007f978bfbaaed in QApplication::notify (this=0x7ffff0fd3280, receiver=0x16fdbc0, e=0x5b986f0) at kernel/qapplication.cpp:4277
#23 0x00007f978cd07156 in KApplication::notify (this=0x7ffff0fd3280, receiver=0x16fdbc0, event=0x5b986f0) at ../../kdeui/kernel/kapplication.cpp:310
#24 0x00007f978b3a3cdc in QCoreApplication::notifyInternal (this=0x7ffff0fd3280, receiver=0x16fdbc0, event=0x5b986f0) at kernel/qcoreapplication.cpp:732
#25 0x00007f978b3a6c22 in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x145cb90) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#26 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x145cb90) at kernel/qcoreapplication.cpp:1373
#27 0x00007f978b3d0653 in sendPostedEvents (s=0x149f2c0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#28 postEventSourceDispatch (s=0x149f2c0) at kernel/qeventdispatcher_glib.cpp:277
#29 0x00007f9786973342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x00007f97869772a8 in ?? () from /lib/libglib-2.0.so.0
#31 0x00007f978697745c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#32 0x00007f978b3d0193 in QEventDispatcherGlib::processEvents (this=0x145c280, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#33 0x00007f978c067a4e in QGuiEventDispatcherGlib::processEvents (this=0x0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007f978b3a2a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#35 0x00007f978b3a2dec in QEventLoop::exec (this=0x7ffff0fd30f0, flags=) at kernel/qeventloop.cpp:201
#36 0x00007f978b3a6ebb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#37 0x000000000077cc1d in main (argc=<value optimized out>, argv=<value optimized out>) at /build/buildd/digikam-1.4.0/digikam/main.cpp:195

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

Possible duplicates by query: bug 252436.

Reported using DrKonqi
Comment 1 caulier.gilles 2010-11-14 10:38:07 UTC

*** This bug has been marked as a duplicate of bug 222974 ***
Comment 2 Christoph Feck 2010-11-15 02:00:37 UTC
Not a duplicate (again). The backtrace clearly indicates that you are calling KDirWatch::removeDir with a null pointer in  Digikam::AlbumManager::removeAlbumRoot
Comment 3 Christoph Feck 2010-11-15 02:02:40 UTC
*** Bug 252436 has been marked as a duplicate of this bug. ***
Comment 4 Marcel Wiesweg 2010-11-15 10:14:54 UTC
Assume same underlying problem (better backtrace here)

*** This bug has been marked as a duplicate of bug 255054 ***
Comment 5 caulier.gilles 2010-12-06 13:34:42 UTC
*** Bug 259005 has been marked as a duplicate of this bug. ***
Comment 6 Dario Andres 2011-03-08 21:28:23 UTC
*** Bug 267359 has been marked as a duplicate of this bug. ***
Comment 7 caulier.gilles 2017-07-19 04:12:29 UTC
Problem not reproducible since digiKam 5.0.0 as KDirWatch has been ported to
QFileSystemWatcher