Bug 284175

Summary: digikam crash closing application
Product: [Applications] digikam Reporter: Johann-Nikolaus Andreae <johann-nikolaus>
Component: Database-VersioningAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR    
Version: 2.2.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 5.1.0
Sentry Crash Report:

Description Johann-Nikolaus Andreae 2011-10-16 11:57:42 UTC
Application: digikam (2.2.0)
KDE Platform Version: 4.7.2 (4.7.2)
Qt Version: 4.7.4
Operating System: Linux 3.1.0-rc7-3-desktop x86_64
Distribution: "openSUSE 12.1 Beta 1 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:
I close the application clicking on the X at the top of digikam.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
[Current thread is 1 (Thread 0x7f96152aa7c0 (LWP 6773))]

Thread 7 (Thread 0x7f95f7fdd700 (LWP 6792)):
#0  0x00007f960c7f7111 in __pthread_mutex_unlock_usercnt () from /lib64/libpthread.so.0
#1  0x00007f9606d00ec5 in g_main_context_query () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f9606d0193a in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f9606d01ef9 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f96105563a6 in QEventDispatcherGlib::processEvents (this=0xcf7ee0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#5  0x00007f961052a882 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007f961052aa7f in QEventLoop::exec (this=0x7f95f7fdcd90, flags=...) at kernel/qeventloop.cpp:201
#7  0x00007f96104425cf in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498
#8  0x00007f961050d94f in QInotifyFileSystemWatcherEngine::run (this=0xc55430) at io/qfilesystemwatcher_inotify.cpp:248
#9  0x00007f9610445015 in QThreadPrivate::start (arg=0xc55430) at thread/qthread_unix.cpp:331
#10 0x00007f960c7f3f05 in start_thread () from /lib64/libpthread.so.0
#11 0x00007f960ea8624d in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f95f77dc700 (LWP 6814)):
#0  0x00007f960c7f7e6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f96104454ab in wait (time=18446744073709551615, this=0xcb0ab0) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x10197a8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f9612b63d17 in Digikam::ParkingThread::run (this=0x1019790) at /usr/src/debug/digikam-2.2.0/core/libs/threads/threadmanager.cpp:119
#4  0x00007f9610445015 in QThreadPrivate::start (arg=0x1019790) at thread/qthread_unix.cpp:331
#5  0x00007f960c7f3f05 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f960ea8624d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f95e0d3e700 (LWP 9780)):
#0  0x00007fff811008a9 in ?? ()
#1  0x0000000000000001 in ?? ()
#2  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f95e153f700 (LWP 9789)):
[KCrash Handler]
#6  0x00007f960e9e1d25 in raise () from /lib64/libc.so.6
#7  0x00007f960e9e323b in abort () from /lib64/libc.so.6
#8  0x00007f961043b9e4 in qt_message_output (msgType=<optimized out>, buf=<optimized out>) at global/qglobal.cpp:2291
#9  0x00007f961043bb9f in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7f9612c6e7c8 "Fatal Error: Accessed global static '%s *%s()' after destruction. Defined at %s:%d", ap=0x7f95e153df68) at global/qglobal.cpp:2337
#10 0x00007f961043bd44 in qFatal (msg=<optimized out>) at global/qglobal.cpp:2520
#11 0x00007f961297f41a in operator-> (this=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/libs/dimg/imagehistory/dimagehistory.cpp:64
#12 operator* (this=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/libs/dimg/imagehistory/dimagehistory.cpp:64
#13 operator* (this=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/libs/dimg/imagehistory/dimagehistory.cpp:68
#14 Digikam::DImageHistory::DImageHistory (this=0x17464f0) at /usr/src/debug/digikam-2.2.0/core/libs/dimg/imagehistory/dimagehistory.cpp:69
#15 0x00007f9612965f2c in DImgPrivate (this=0x17464b0) at /usr/src/debug/digikam-2.2.0/core/libs/dimg/dimg_p.h:75
#16 Digikam::DImg::DImg (this=0x7f95e153e0e0) at /usr/src/debug/digikam-2.2.0/core/libs/dimg/dimg.cpp:92
#17 0x00007f96124f4cee in Digikam::ImageScanner::ImageScanner (this=0x7f95e153e0c0, info=<optimized out>, scanInfo=...) at /usr/src/debug/digikam-2.2.0/core/libs/database/imagescanner.cpp:59
#18 0x00007f9612494b4a in Digikam::CollectionScanner::scanModifiedFile (this=0x7f95e153e380, info=..., scanInfo=...) at /usr/src/debug/digikam-2.2.0/core/libs/database/collectionscanner.cpp:1080
#19 0x00007f9612495e9e in Digikam::CollectionScanner::scanFile (this=0x7f95e153e380, fi=..., albumId=889, imageId=358712, mode=Digikam::CollectionScanner::ModifiedScan) at /usr/src/debug/digikam-2.2.0/core/libs/database/collectionscanner.cpp:620
#20 0x00007f961249655c in Digikam::CollectionScanner::scanFile (this=0x7f95e153e380, albumRoot=..., album=<optimized out>, fileName=<optimized out>, mode=Digikam::CollectionScanner::ModifiedScan) at /usr/src/debug/digikam-2.2.0/core/libs/database/collectionscanner.cpp:577
#21 0x00007f9612496ba7 in Digikam::CollectionScanner::scanFile (this=0x7f95e153e380, filePath=<optimized out>, mode=Digikam::CollectionScanner::ModifiedScan) at /usr/src/debug/digikam-2.2.0/core/libs/database/collectionscanner.cpp:546
#22 0x00000000005cda4f in Digikam::ScanController::scanFileDirectly (this=0xcbbfc0, filePath=...) at /usr/src/debug/digikam-2.2.0/core/digikam/database/scancontroller.cpp:525
#23 0x0000000000617b70 in Digikam::MetadataManagerFileWorker::writeMetadata (this=0xe251d0, infos=..., hub=0x906bbc0) at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager.cpp:766
#24 0x0000000000617ea7 in Digikam::MetadataManagerFileWorker::qt_metacall (this=0xe251d0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x477aa60) at /usr/src/debug/digikam-2.2.0/build/core/digikam/metadatamanager_p.moc:383
#25 0x00007f9610541faa in QObject::event (this=0xe251d0, e=<optimized out>) at kernel/qobject.cpp:1226
#26 0x00007f960f682be4 in notify_helper (e=0x2ca6660, receiver=0xe251d0, this=0xb7f6d0) at kernel/qapplication.cpp:4481
#27 QApplicationPrivate::notify_helper (this=0xb7f6d0, receiver=0xe251d0, e=0x2ca6660) at kernel/qapplication.cpp:4453
#28 0x00007f960f687a71 in QApplication::notify (this=0x7fff810df100, receiver=0xe251d0, e=0x2ca6660) at kernel/qapplication.cpp:4360
#29 0x00007f9610f7ce36 in KApplication::notify (this=0x7fff810df100, receiver=0xe251d0, event=0x2ca6660) at /usr/src/debug/kdelibs-4.7.2/kdeui/kernel/kapplication.cpp:311
#30 0x00007f961052b67c in QCoreApplication::notifyInternal (this=0x7fff810df100, receiver=0xe251d0, event=0x2ca6660) at kernel/qcoreapplication.cpp:787
#31 0x00007f961052ea58 in sendEvent (event=0x2ca6660, receiver=0xe251d0) at kernel/qcoreapplication.h:215
#32 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x42f29e0) at kernel/qcoreapplication.cpp:1428
#33 0x00007f9610555ee3 in sendPostedEvents () at kernel/qcoreapplication.h:220
#34 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:277
#35 0x00007f9606d0152d in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#36 0x00007f9606d01d28 in ?? () from /usr/lib64/libglib-2.0.so.0
#37 0x00007f9606d01ef9 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#38 0x00007f961055633f in QEventDispatcherGlib::processEvents (this=0xe468c0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#39 0x00007f961052a882 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#40 0x00007f961052aa7f in QEventLoop::exec (this=0x7f95e153ed60, flags=...) at kernel/qeventloop.cpp:201
#41 0x00007f9612b63421 in Digikam::WorkerObjectRunnable::run (this=0x46335e0) at /usr/src/debug/digikam-2.2.0/core/libs/threads/threadmanager.cpp:196
#42 0x00007f9610439e05 in QThreadPoolThread::run (this=0x412a540) at concurrent/qthreadpool.cpp:106
#43 0x00007f9610445015 in QThreadPrivate::start (arg=0x412a540) at thread/qthread_unix.cpp:331
#44 0x00007f960c7f3f05 in start_thread () from /lib64/libpthread.so.0
#45 0x00007f960ea8624d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f95f0184700 (LWP 9790)):
#0  0x00007f960a858b36 in ?? () from /usr/lib64/libgomp.so.1
#1  0x00007f960a85769e in ?? () from /usr/lib64/libgomp.so.1
#2  0x00007f960c7f3f05 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f960ea8624d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f95df0fe700 (LWP 9889)):
#0  0x00007f960a858b36 in ?? () from /usr/lib64/libgomp.so.1
#1  0x00007f960a85769e in ?? () from /usr/lib64/libgomp.so.1
#2  0x00007f960c7f3f05 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f960ea8624d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f96152aa7c0 (LWP 6773)):
#0  0x00007f960c7f7e6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f96104454ab in wait (time=18446744073709551615, this=0xe14940) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0xdedd38, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f9612b64044 in Digikam::WorkerObject::wait (this=0xe1b9a0) at /usr/src/debug/digikam-2.2.0/core/libs/threads/workerobject.cpp:95
#4  0x00007f9612b646d4 in Digikam::WorkerObject::~WorkerObject (this=0xe1b9a0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/libs/threads/workerobject.cpp:75
#5  0x0000000000619050 in ~MetadataManagerDatabaseWorker (this=0xe1b9a0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager_p.h:169
#6  Digikam::MetadataManagerDatabaseWorker::~MetadataManagerDatabaseWorker (this=0xe1b9a0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager_p.h:169
#7  0x00000000006159ce in Digikam::MetadataManager::MetadataManagerPriv::~MetadataManagerPriv (this=0xe144a0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager.cpp:289
#8  0x0000000000615ad9 in Digikam::MetadataManager::MetadataManagerPriv::~MetadataManagerPriv (this=0xe144a0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager.cpp:291
#9  0x0000000000615923 in Digikam::MetadataManager::~MetadataManager (this=0xe57650, __in_chrg=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager.cpp:86
#10 0x0000000000615997 in ~MetadataManagerCreator (this=0xe57650, __in_chrg=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager.cpp:53
#11 destroy () at /usr/src/debug/digikam-2.2.0/core/digikam/metadata/metadatamanager.cpp:60
#12 0x00007f960e9e4931 in __run_exit_handlers () from /lib64/libc.so.6
#13 0x00007f960e9e49b5 in exit () from /lib64/libc.so.6
#14 0x00007f960e9ce244 in __libc_start_main () from /lib64/libc.so.6
#15 0x0000000000495855 in _start () at ../sysdeps/x86_64/elf/start.S:113

Reported using DrKonqi
Comment 1 caulier.gilles 2011-10-19 11:06:25 UTC
It crash in versioning implementation :

#11 0x00007f961297f41a in operator-> (this=<optimized out>) at
/usr/src/debug/digikam-2.2.0/core/libs/dimg/imagehistory/dimagehistory.cpp:64

It reproducible at 100% ?

Can you run digiKam through valgrind, and report the console trace here. Look in HACKING file for details.

Gilles Caulier
Comment 2 Marcel Wiesweg 2011-10-24 20:05:26 UTC
Crash occurs accessing K_GLOBAL_STATIC data from a completely normal constructor (not dereferencing any sort of pointer, just plainly default-constructing an object). Either memory corruption, binary incompatibility or some other defect.

Main question is: reproducible?
Comment 3 caulier.gilles 2011-11-03 12:42:39 UTC
digiKam 2.2.0 is out since few weeks. Crash still valid with this version ?

Gilles Caulier
Comment 4 caulier.gilles 2011-12-13 14:09:16 UTC
Johann, we wait a fresh feedback about this entry...

Gilles Caulier
Comment 5 caulier.gilles 2015-06-27 13:46:08 UTC
New digiKam 4.11.0 is available :

https://www.digikam.org/node/740

Can you reproduce the problem with this release ?

Gilles caulier
Comment 6 caulier.gilles 2015-08-22 06:39:41 UTC
digiKam 4.12.0 is out :

https://www.digikam.org/node/741

We need a fresh feedback using this release please...
Thanks in advance.
Comment 7 caulier.gilles 2016-07-15 20:54:38 UTC
With digiKam 5.0.0, this problem is not reproducible.
I close this file now. Don't hesitate to re-open if necessary.
Gilles Caulier