Bug 307275

Summary: digiKam crash after long "throttling-phase"
Product: [Applications] digikam Reporter: Axel Krebs <axel.krebs>
Component: Plugin-DImg-TIFFAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR    
Version: 2.8.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 6.2.0
Sentry Crash Report:
Attachments: sudden requirement of additional cache-volume?

Description Axel Krebs 2012-09-23 16:50:02 UTC
Application: digikam (2.8.0)
KDE Platform Version: 4.9.1 (Compiled from sources)
Qt Version: 4.8.2
Operating System: Linux 3.2.0-30-generic x86_64
Distribution: Ubuntu 12.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:
- just want to browse some pics.
- my thumbnails-digikam.db has 8.5 GB
- my digikam4.db has 414,6 MB
- my RAM has 8 GB size
 - I use sqlite

- Is it libtiff again? 
- Could there be other reasons?
- How can I help?

- Is there a reasonable strategy to keep databases smaller?

Axel

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
[Current thread is 1 (Thread 0x7f374e416a00 (LWP 3626))]

Thread 8 (Thread 0x7f372a153700 (LWP 3627)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f374888258b in wait (time=18446744073709551615, this=0x11578f0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x11577e8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00000000005d6a30 in Digikam::ScanController::run (this=0x1157580) at /build/buildd/digikam-2.8.0/core/digikam/database/scancontroller.cpp:698
#4  0x00007f374888207b in QThreadPrivate::start (arg=0x1157580) at thread/qthread_unix.cpp:307
#5  0x00007f37433c7e9a in start_thread (arg=0x7f372a153700) at pthread_create.c:308
#6  0x00007f3747aae4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f3729952700 (LWP 3628)):
#0  0x00007f3747aa2b03 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f3741017036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f3741017164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f37489b0906 in QEventDispatcherGlib::processEvents (this=0x7f371c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f374897fe42 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f3748980097 in QEventLoop::exec (this=0x7f3729951b50, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f374887f057 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f374895fb4f in QInotifyFileSystemWatcherEngine::run (this=0xfe6df0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f374888207b in QThreadPrivate::start (arg=0xfe6df0) at thread/qthread_unix.cpp:307
#9  0x00007f37433c7e9a in start_thread (arg=0x7f3729952700) at pthread_create.c:308
#10 0x00007f3747aae4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f37174bc700 (LWP 3683)):
#0  0x00007f3747aa2b03 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f3741017036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f3741017164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f37489b0906 in QEventDispatcherGlib::processEvents (this=0x7f37100008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f374897fe42 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f3748980097 in QEventLoop::exec (this=0x7f37174bbb50, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f374887f057 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f374895fb4f in QInotifyFileSystemWatcherEngine::run (this=0x19b4dd0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f374888207b in QThreadPrivate::start (arg=0x19b4dd0) at thread/qthread_unix.cpp:307
#9  0x00007f37433c7e9a in start_thread (arg=0x7f37174bc700) at pthread_create.c:308
#10 0x00007f3747aae4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f370b042700 (LWP 4243)):
[KCrash Handler]
#6  0x00007f374bac1933 in Digikam::TIFFLoader::load (this=0x7f370b040b30, filePath=..., observer=0x6a1dfca0) at /build/buildd/digikam-2.8.0/core/libs/dimg/loaders/tiffloader.cpp:638
#7  0x00007f374ba9cacd in Digikam::DImg::load (this=0x7f370b0412a0, filePath=..., loadFlagsInt=13, observer=0x6a1dfca0, rawDecodingSettings=...) at /build/buildd/digikam-2.8.0/core/libs/dimg/dimg.cpp:451
#8  0x00007f374ba9e18e in Digikam::DImg::load (this=0x7f370b0412a0, filePath=..., loadMetadata=<optimized out>, loadICCData=<optimized out>, loadUniqueHash=<optimized out>, loadImageHistory=<optimized out>, observer=0x6a1dfca0, rawDecodingSettings=...) at /build/buildd/digikam-2.8.0/core/libs/dimg/dimg.cpp:406
#9  0x00007f374bc82488 in Digikam::ThumbnailCreator::loadWithDImg (this=0x187aa10, path=..., profile=0x7f370b041460) at /build/buildd/digikam-2.8.0/core/libs/threadimageio/thumbnailcreator.cpp:561
#10 0x00007f374bc82fcb in Digikam::ThumbnailCreator::createThumbnail (this=0x187aa10, info=..., detailRect=..., isFace=false) at /build/buildd/digikam-2.8.0/core/libs/threadimageio/thumbnailcreator.cpp:490
#11 0x00007f374bc83630 in Digikam::ThumbnailCreator::load (this=0x187aa10, path=..., rect=..., pregenerate=true) at /build/buildd/digikam-2.8.0/core/libs/threadimageio/thumbnailcreator.cpp:260
#12 0x00007f374bc84a2d in Digikam::ThumbnailCreator::pregenerate (this=<optimized out>, path=...) at /build/buildd/digikam-2.8.0/core/libs/threadimageio/thumbnailcreator.cpp:183
#13 0x00007f374bc93120 in Digikam::ThumbnailLoadingTask::execute (this=0x6a1dfc90) at /build/buildd/digikam-2.8.0/core/libs/threadimageio/thumbnailtask.cpp:80
#14 0x00007f374bc62b5e in Digikam::LoadSaveThread::run (this=0x19a8570) at /build/buildd/digikam-2.8.0/core/libs/threadimageio/loadsavethread.cpp:136
#15 0x00007f374bca532e in Digikam::DynamicThread::DynamicThreadPriv::run (this=0x187aca0) at /build/buildd/digikam-2.8.0/core/libs/threads/dynamicthread.cpp:186
#16 0x00007f37488755a2 in QThreadPoolThread::run (this=0x694ffd40) at concurrent/qthreadpool.cpp:107
#17 0x00007f374888207b in QThreadPrivate::start (arg=0x694ffd40) at thread/qthread_unix.cpp:307
#18 0x00007f37433c7e9a in start_thread (arg=0x7f370b042700) at pthread_create.c:308
#19 0x00007f3747aae4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#20 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f370a841700 (LWP 4244)):
#0  0x00007f3743d4a3d6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#1  0x00007f3743d48efe in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#2  0x00007f37433c7e9a in start_thread (arg=0x7f370a841700) at pthread_create.c:308
#3  0x00007f3747aae4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f370c0f4700 (LWP 4245)):
#0  0x00007f3743d4a3d6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#1  0x00007f3743d48efe in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#2  0x00007f37433c7e9a in start_thread (arg=0x7f370c0f4700) at pthread_create.c:308
#3  0x00007f3747aae4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f370a040700 (LWP 4246)):
#0  0x00007f3743d4a3d6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#1  0x00007f3743d48efe in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#2  0x00007f37433c7e9a in start_thread (arg=0x7f370a040700) at pthread_create.c:308
#3  0x00007f3747aae4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f374e416a00 (LWP 3626)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f374888258b in wait (time=18446744073709551615, this=0xfc4320) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0xf81cd8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f3748874d2e in QThreadPoolPrivate::waitForDone (this=0xf81c50, msecs=-1) at concurrent/qthreadpool.cpp:298
#4  0x00007f3748876754 in QThreadPool::~QThreadPool (this=0x11888a0, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:440
#5  0x00007f3748876799 in QThreadPool::~QThreadPool (this=0x11888a0, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:442
#6  0x00007f3748993e15 in QObjectPrivate::deleteChildren (this=0x1482800) at kernel/qobject.cpp:1908
#7  0x00007f374899a07c in QObject::~QObject (this=0x115ee40, __in_chrg=<optimized out>) at kernel/qobject.cpp:927
#8  0x00007f374bca28c7 in ~ThreadManagerCreator (this=0x115ee40, __in_chrg=<optimized out>) at /build/buildd/digikam-2.8.0/core/libs/threads/threadmanager.cpp:236
#9  destroy () at /build/buildd/digikam-2.8.0/core/libs/threads/threadmanager.cpp:241
#10 0x00007f37479f7921 in __run_exit_handlers (status=1, listp=0x7f3747d72688, run_list_atexit=true) at exit.c:78
#11 0x00007f37479f79a5 in __GI_exit (status=<optimized out>) at exit.c:100
#12 0x00007f37493e7508 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:780
#13 0x00007f374a0b4768 in KApplication::xioErrhandler (this=0x7fff3e03b9d0, dpy=0xf23ea0) at ../../kdeui/kernel/kapplication.cpp:419
#14 0x00007f3745fbd41e in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#15 0x00007f3745fbae1d in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#16 0x00007f3745fac42f in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#17 0x00007f3749423b1c in x11EventSourceCheck (s=0xf152a0) at kernel/qguieventdispatcher_glib.cpp:85
#18 0x00007f3741016b43 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007f3741016fd6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f3741017164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f37489b089f in QEventDispatcherGlib::processEvents (this=0xeb2af0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#22 0x00007f3749423cde in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#23 0x00007f374897fe42 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#24 0x00007f3748980097 in QEventLoop::exec (this=0x7fff3e03b850, flags=...) at kernel/qeventloop.cpp:204
#25 0x00007f37489853e7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#26 0x000000000048f63b in main (argc=1, argv=<optimized out>) at /build/buildd/digikam-2.8.0/core/digikam/main/main.cpp:232

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

Possible duplicates by query: bug 307119, bug 307013, bug 306492, bug 301122, bug 301045.

Reported using DrKonqi
Comment 1 Axel Krebs 2012-09-23 16:56:10 UTC
digiKam version 2.8.0
Bilder: 
BMP: 2
GIF: 98
JP2: 14
JPEG: 273
JPG: 115764
NIKON-NEF: 544
PGF: 2
PNG: 1504
RAW-CR2: 632
RAW-CRW: 11258
RAW-DNG: 7
RAW-NEF: 78213
TIFF: 1749
XCF: 1
Gesamt: 210061
Videos: 
AVI: 60
MOV: 22
MPEG: 2
Gesamt: 84
Gesamtzahl der Einträge: 210145
Alben: 2125
Stichwörter: 105
Datenbanktreiber: QSQLITE
Comment 2 caulier.gilles 2012-09-23 17:00:54 UTC

*** This bug has been marked as a duplicate of bug 306492 ***
Comment 3 Axel Krebs 2012-09-23 19:55:34 UTC
Created attachment 74117 [details]
sudden requirement of additional cache-volume?

When I run my PC, I have "system-monitor" running, most of the time. 

Under normal conditions, digiKam need about 3,8 GB memory.
Even, as longs a my thumbnail-database holds about 8,4 GB space. 

When digiKam crashes, the requirement of memory increases. 
Maybe it is useful for you to have this additional observation available!?

axel
Comment 4 caulier.gilles 2012-09-23 20:02:47 UTC
No it crash always about litiff issue. There is certainly a huge memory leak when problem occurs...

Gilles Caulier
Comment 5 Axel Krebs 2012-09-26 20:28:41 UTC
Am 23.09.2012 22:02, schrieb Gilles Caulier:
> https://bugs.kde.org/show_bug.cgi?id=307275
> 
> --- Comment #4 from Gilles Caulier <caulier.gilles@gmail.com> ---
> No it crash always about litiff issue. There is certainly a huge memory leak
> when problem occurs...
> 
> Gilles Caulier
> 
Unfortunately, digiKam crashes when starting up- on two machines KUBUNTU
11.04, both ~ 8,4 GB thumbnail databases...

I am sorry, I cannot use digiKam anymore these days?

What to do, how to behavieve?

Hope for help.



Axel
Comment 6 caulier.gilles 2012-09-26 20:48:55 UTC
It always crash in libtiff. So i suspect that a tiff file is a problem.

Please try to isolate file and use bug #301045 to report a link on the web where file can be downloaded to test here...

Gilles Caulier
Comment 7 Axel Krebs 2012-09-26 21:00:51 UTC
Am 26.09.2012 22:48, schrieb Gilles Caulier:
> https://bugs.kde.org/show_bug.cgi?id=307275
> 
> --- Comment #6 from Gilles Caulier <caulier.gilles@gmail.com> ---
> It always crash in libtiff. So i suspect that a tiff file is a problem.
> 
> Please try to isolate file and use bug #301045 to report a link on the web
> where file can be downloaded to test here...
> 
> Gilles Caulier
> 
Thanks, I'll try to... tomorrow evening...
Most of the time, crash occurs, with not even having touched a
tiff-file... so: how to sepreate the responsible file?

 :-(


Axel
Comment 8 caulier.gilles 2012-09-27 06:17:37 UTC
The only way to investiguate is to create anew user in your system and create an empty digikam collection. Thake a care to set same digiKam settings than your lead digiKam collection.

After that, import Tiff files until digiKam crash...

Gilles Caulier
Comment 9 caulier.gilles 2019-07-27 19:57:57 UTC
Fixed with bug #306492