Bug 300277

Summary: Digikam crashed on exit after adding tags to several hundred photos
Product: [Applications] digikam Reporter: David Smith <david>
Component: Database-VersioningAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR    
Version: 2.5.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 2.6.0
Sentry Crash Report:

Description David Smith 2012-05-18 19:43:54 UTC
Application: digikam (2.5.0)
KDE Platform Version: 4.7.4 (4.7.4)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-19-generic x86_64
Distribution: Ubuntu 11.10

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

I added a tag (the same tag) to many hundreds (but not thousands) of photos and then exiited digikam and got a crash report dialog.

Has happened a couple of times.

The crash can be reproduced some of the time.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
[Current thread is 1 (Thread 0x7f04572f3a20 (LWP 7946))]

Thread 8 (Thread 0x7f042f7da700 (LWP 7948)):
#0  0x00007f0450823473 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f0449e2bf68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f0449e2c429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f045169ef3e in QEventDispatcherGlib::processEvents (this=0x1823330, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f0451672cf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f0451672ef7 in QEventLoop::exec (this=0x7f042f7d9b30, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007f045158a27f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498
#7  0x00007f0451655cbf in QInotifyFileSystemWatcherEngine::run (this=0x1821920) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f045158cd05 in QThreadPrivate::start (arg=0x1821920) at thread/qthread_unix.cpp:331
#9  0x00007f044c19cefc in start_thread (arg=0x7f042f7da700) at pthread_create.c:304
#10 0x00007f045082f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f042efd9700 (LWP 7950)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f045158d1ab in wait (time=18446744073709551615, this=0x184ee80) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x1a12968, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f045496a997 in Digikam::ParkingThread::run (this=0x1a12950) at /build/buildd/digikam-2.5.0/core/libs/threads/threadmanager.cpp:119
#4  0x00007f045158cd05 in QThreadPrivate::start (arg=0x1a12950) at thread/qthread_unix.cpp:331
#5  0x00007f044c19cefc in start_thread (arg=0x7f042efd9700) at pthread_create.c:304
#6  0x00007f045082f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f0405ed0700 (LWP 8393)):
[KCrash Handler]
#6  0x00007f04507823a5 in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007f0450785b0b in __GI_abort () at abort.c:92
#8  0x00007f045158343b in qt_message_output (msgType=<optimized out>, buf=0x7f04280237a8 "Fatal Error: Accessed global static 'ImageHistoryPrivSharedNull *imageHistoryPrivSharedNull()' after destruction. Defined at /build/buildd/digikam-2.5.0/core/libs/dimg/imagehistory/dimagehistory.cpp:6"...) at global/qglobal.cpp:2315
#9  0x00007f04515837ef in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7f0454a7b160 "Fatal Error: Accessed global static '%s *%s()' after destruction. Defined at %s:%d", ap=0x7f0405eceea8) at global/qglobal.cpp:2361
#10 0x00007f0451583994 in qFatal (msg=<optimized out>) at global/qglobal.cpp:2544
#11 0x00007f045478381f in operator-> (this=<optimized out>) at /build/buildd/digikam-2.5.0/core/libs/dimg/imagehistory/dimagehistory.cpp:64
#12 operator* (this=<optimized out>) at /build/buildd/digikam-2.5.0/core/libs/dimg/imagehistory/dimagehistory.cpp:64
#13 Digikam::DImageHistory::DImageHistory (this=0x7f042806e300) at /build/buildd/digikam-2.5.0/core/libs/dimg/imagehistory/dimagehistory.cpp:69
#14 0x00007f0454769d6c in DImgPrivate (this=0x7f042806e2c0) at /build/buildd/digikam-2.5.0/core/libs/dimg/dimg_p.h:75
#15 Digikam::DImg::DImg (this=0x7f0405ecf020) at /build/buildd/digikam-2.5.0/core/libs/dimg/dimg.cpp:93
#16 0x00007f0454306fde in Digikam::ImageScanner::ImageScanner (this=0x7f0405ecf000, info=<optimized out>, scanInfo=...) at /build/buildd/digikam-2.5.0/core/libs/database/imagescanner.cpp:59
#17 0x00007f04542a4f0a in Digikam::CollectionScanner::scanModifiedFile (this=0x7f0405ecf2c0, info=..., scanInfo=...) at /build/buildd/digikam-2.5.0/core/libs/database/collectionscanner.cpp:1080
#18 0x00007f04542a625e in Digikam::CollectionScanner::scanFile (this=0x7f0405ecf2c0, fi=..., albumId=238, imageId=13259, mode=Digikam::CollectionScanner::ModifiedScan) at /build/buildd/digikam-2.5.0/core/libs/database/collectionscanner.cpp:620
#19 0x00007f04542a691c in Digikam::CollectionScanner::scanFile (this=0x7f0405ecf2c0, albumRoot=..., album=<optimized out>, fileName=<optimized out>, mode=Digikam::CollectionScanner::ModifiedScan) at /build/buildd/digikam-2.5.0/core/libs/database/collectionscanner.cpp:577
#20 0x00007f04542a6f67 in Digikam::CollectionScanner::scanFile (this=0x7f0405ecf2c0, filePath=<optimized out>, mode=Digikam::CollectionScanner::ModifiedScan) at /build/buildd/digikam-2.5.0/core/libs/database/collectionscanner.cpp:546
#21 0x00000000005c7b6f in Digikam::ScanController::scanFileDirectly (this=0x181cd80, filePath=...) at /build/buildd/digikam-2.5.0/core/digikam/database/scancontroller.cpp:525
#22 0x0000000000612b00 in Digikam::MetadataManagerFileWorker::writeMetadata (this=0x1c2cd00, infos=..., hub=0x2a72b60) at /build/buildd/digikam-2.5.0/core/digikam/metadata/metadatamanager.cpp:766
#23 0x0000000000612e37 in Digikam::MetadataManagerFileWorker::qt_metacall (this=0x1c2cd00, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7f042a0d05c0) at /build/buildd/digikam-2.5.0/obj-x86_64-linux-gnu/core/digikam/metadatamanager_p.moc:383
#24 0x00007f045168aa5e in QObject::event (this=0x1c2cd00, e=<optimized out>) at kernel/qobject.cpp:1217
#25 0x00007f0452074474 in notify_helper (e=0x7f0429cde740, receiver=0x1c2cd00, this=0x16e7360) at kernel/qapplication.cpp:4486
#26 QApplicationPrivate::notify_helper (this=0x16e7360, receiver=0x1c2cd00, e=0x7f0429cde740) at kernel/qapplication.cpp:4458
#27 0x00007f04520792e1 in QApplication::notify (this=0x7fff6651d120, receiver=0x1c2cd00, e=0x7f0429cde740) at kernel/qapplication.cpp:4365
#28 0x00007f0452d89466 in KApplication::notify (this=0x7fff6651d120, receiver=0x1c2cd00, event=0x7f0429cde740) at ../../kdeui/kernel/kapplication.cpp:311
#29 0x00007f0451673afc in QCoreApplication::notifyInternal (this=0x7fff6651d120, receiver=0x1c2cd00, event=0x7f0429cde740) at kernel/qcoreapplication.cpp:787
#30 0x00007f045167751f in sendEvent (event=0x7f0429cde740, receiver=0x1c2cd00) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#31 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x3d5cc20) at kernel/qcoreapplication.cpp:1428
#32 0x00007f045169ea73 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#33 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:277
#34 0x00007f0449e2ba5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f0449e2c258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f0449e2c429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f045169eed6 in QEventDispatcherGlib::processEvents (this=0x409be40, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#38 0x00007f0451672cf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#39 0x00007f0451672ef7 in QEventLoop::exec (this=0x7f0405ecfb00, flags=...) at kernel/qeventloop.cpp:201
#40 0x00007f045496a0a1 in Digikam::WorkerObjectRunnable::run (this=0x4187050) at /build/buildd/digikam-2.5.0/core/libs/threads/threadmanager.cpp:196
#41 0x00007f0451581795 in QThreadPoolThread::run (this=0x3cde240) at concurrent/qthreadpool.cpp:106
#42 0x00007f045158cd05 in QThreadPrivate::start (arg=0x3cde240) at thread/qthread_unix.cpp:331
#43 0x00007f044c19cefc in start_thread (arg=0x7f0405ed0700) at pthread_create.c:304
#44 0x00007f045082f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#45 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f042044b700 (LWP 8394)):
#0  0x00007f0450823473 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f0449e2bf68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f0449e2c429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f045169ef3e in QEventDispatcherGlib::processEvents (this=0x403f740, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f0451672cf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f0451672ef7 in QEventLoop::exec (this=0x7f042044ab00, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007f045496a0a1 in Digikam::WorkerObjectRunnable::run (this=0x29a3ce0) at /build/buildd/digikam-2.5.0/core/libs/threads/threadmanager.cpp:196
#7  0x00007f0451581795 in QThreadPoolThread::run (this=0x7f040c0821a0) at concurrent/qthreadpool.cpp:106
#8  0x00007f045158cd05 in QThreadPrivate::start (arg=0x7f040c0821a0) at thread/qthread_unix.cpp:331
#9  0x00007f044c19cefc in start_thread (arg=0x7f042044b700) at pthread_create.c:304
#10 0x00007f045082f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f0404ece700 (LWP 8396)):
#0  0x00007f044cb1d3b6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#1  0x00007f044cb1bede in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#2  0x00007f044c19cefc in start_thread (arg=0x7f0404ece700) at pthread_create.c:304
#3  0x00007f045082f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f041fc4a700 (LWP 8397)):
#0  0x00007f044cb1d3b6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#1  0x00007f044cb1bede in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#2  0x00007f044c19cefc in start_thread (arg=0x7f041fc4a700) at pthread_create.c:304
#3  0x00007f045082f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f041f449700 (LWP 8398)):
#0  0x00007f044cb1d3b6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#1  0x00007f044cb1bede in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#2  0x00007f044c19cefc in start_thread (arg=0x7f041f449700) at pthread_create.c:304
#3  0x00007f045082f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f04572f3a20 (LWP 7946)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f045158d1ab in wait (time=18446744073709551615, this=0x1c2fa10) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x1c2f958, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f045496acc4 in Digikam::WorkerObject::wait (this=0x1c29b00) at /build/buildd/digikam-2.5.0/core/libs/threads/workerobject.cpp:95
#4  0x00007f045496b354 in Digikam::WorkerObject::~WorkerObject (this=0x1c29b00, __in_chrg=<optimized out>) at /build/buildd/digikam-2.5.0/core/libs/threads/workerobject.cpp:75
#5  0x0000000000613fe0 in ~MetadataManagerDatabaseWorker (this=0x1c29b00, __in_chrg=<optimized out>) at /build/buildd/digikam-2.5.0/obj-x86_64-linux-gnu/core/digikam/../../../core/digikam/metadata/metadatamanager_p.h:169
#6  Digikam::MetadataManagerDatabaseWorker::~MetadataManagerDatabaseWorker (this=<optimized out>, __in_chrg=<optimized out>) at /build/buildd/digikam-2.5.0/obj-x86_64-linux-gnu/core/digikam/../../../core/digikam/metadata/metadatamanager_p.h:169
#7  0x000000000061095e in Digikam::MetadataManager::MetadataManagerPriv::~MetadataManagerPriv (this=0x1c2e730, __in_chrg=<optimized out>) at /build/buildd/digikam-2.5.0/core/digikam/metadata/metadatamanager.cpp:289
#8  0x0000000000610a69 in Digikam::MetadataManager::MetadataManagerPriv::~MetadataManagerPriv (this=0x1c2e730, __in_chrg=<optimized out>) at /build/buildd/digikam-2.5.0/core/digikam/metadata/metadatamanager.cpp:291
#9  0x00000000006108b3 in Digikam::MetadataManager::~MetadataManager (this=0x1c29ae0, __in_chrg=<optimized out>) at /build/buildd/digikam-2.5.0/core/digikam/metadata/metadatamanager.cpp:86
#10 0x0000000000610927 in ~MetadataManagerCreator (this=0x1c29ae0, __in_chrg=<optimized out>) at /build/buildd/digikam-2.5.0/core/digikam/metadata/metadatamanager.cpp:53
#11 destroy () at /build/buildd/digikam-2.5.0/core/digikam/metadata/metadatamanager.cpp:60
#12 0x00007f0450787821 in __run_exit_handlers (status=0, listp=0x7f0450ae65a8, run_list_atexit=true) at exit.c:78
#13 0x00007f04507878a5 in __GI_exit (status=<optimized out>) at exit.c:100
#14 0x00007f045076d314 in __libc_start_main (main=0x48aae0 <main(int, char**)>, argc=5, ubp_av=0x7fff6651d948, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff6651d938) at libc-start.c:258
#15 0x000000000048d3a5 in _start ()

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

Possible duplicates by query: bug 286605, bug 286172, bug 281038, bug 277629, bug 269746.

Reported using DrKonqi
Comment 1 Marcel Wiesweg 2012-05-19 11:01:17 UTC
Metadata manager thread still working while main thread is shutting down (tasks of writing tags were not finished)
Should be fixed with the new FileAction framework in 2.6.
Please reopen if you can still reproduce with 2.6.
Comment 2 caulier.gilles 2014-04-14 15:24:11 UTC
Marcel,

Look like a similar crash have been reported through file #333356 using digiKam 3.4.0

Gilles