Bug 258922 - Digikam crashed while scrolling through images in folder
Summary: Digikam crashed while scrolling through images in folder
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Unclassified
Component: Metadata-Engine (show other bugs)
Version: 1.2.0
Platform: Debian testing Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-05 17:05 UTC by admin
Modified: 2017-08-10 19:35 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 1.8.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description admin 2010-12-05 17:05:38 UTC
Application: digikam (1.2.0)
KDE Platform Version: 4.4.5 (KDE 4.4.5)
Qt Version: 4.6.3
Operating System: Linux 2.6.32-trunk-amd64 x86_64
Distribution: Debian GNU/Linux testing (squeeze)

-- Information about the crash:
After opening a folder with 443 pictures, scrolling down a few pages causes digikam to crash.

The crash can be reproduced every time.

 -- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
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
The current source language is "auto; currently asm".
[Current thread is 1 (Thread 0x7f5ee47147c0 (LWP 7780))]

Thread 7 (Thread 0x7f5ec62ae710 (LWP 7781)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f5eddd23e6b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1c28270, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1c28270, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00000000006e1cab in Digikam::ScanController::run (this=0x1c272a0) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/digikam/scancontroller.cpp:516
#4  0x00007f5eddd22e15 in QThreadPrivate::start (arg=0x1c272a0) at thread/qthread_unix.cpp:248
#5  0x00007f5edb4c88ba in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f5edcfe202d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f5ec58a0710 (LWP 7782)):
#0  0x00007f5edcfd7113 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f5ed98142c9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f5ed981471c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f5edde3b706 in QEventDispatcherGlib::processEvents (this=0x1f2a3c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007f5edde109c2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f5edde10d9c in QEventLoop::exec (this=0x7f5ec589fdc0, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f5eddd2077b in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f5eddd22e15 in QThreadPrivate::start (arg=0x1f29980) at thread/qthread_unix.cpp:248
#8  0x00007f5edb4c88ba in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007f5edcfe202d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f5ec509f710 (LWP 7783)):
#0  0x00007f5edcfd7113 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f5ed98142c9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f5ed981471c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f5edde3b706 in QEventDispatcherGlib::processEvents (this=0x1f2bac0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007f5edde109c2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f5edde10d9c in QEventLoop::exec (this=0x7f5ec509edc0, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f5eddd2077b in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f5eddd22e15 in QThreadPrivate::start (arg=0x1f29f80) at thread/qthread_unix.cpp:248
#8  0x00007f5edb4c88ba in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007f5edcfe202d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()
The current source language is "auto; currently c".

Thread 4 (Thread 0x7f5ec481d710 (LWP 7784)):
[KCrash Handler]
#5  0x00007f5edb96de38 in ?? () from /usr/lib/libexiv2.so.9
#6  0x00007f5ee2bcb020 in KExiv2Iface::KExiv2::getImageOrientation() const () from /usr/lib/libkexiv2.so.8
#7  0x00007f5ee1702837 in Digikam::ThumbnailCreator::createThumbnail (this=0x1f9eb10, info=<value optimized out>)
    at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/thumbnailcreator.cpp:373
#8  0x00007f5ee170316f in Digikam::ThumbnailCreator::load (this=0x1f9eb10, path=...) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/thumbnailcreator.cpp:195
#9  0x00007f5ee170a553 in Digikam::ThumbnailLoadingTask::execute (this=0x589fab0) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/thumbnailtask.cpp:133
#10 0x00007f5ee16e4c96 in Digikam::LoadSaveThread::run (this=0x1f9d2c0) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:134
#11 0x00007f5eddd22e15 in QThreadPrivate::start (arg=0x1f9d2c0) at thread/qthread_unix.cpp:248
#12 0x00007f5edb4c88ba in start_thread (arg=<value optimized out>) at pthread_create.c:300
#13 0x00007f5edcfe202d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f5eaf6fb710 (LWP 7800)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f5eddd23e6b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2714468, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2714468, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f5ee16e4cc4 in Digikam::LoadSaveThread::run (this=0x2714450) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00007f5eddd22e15 in QThreadPrivate::start (arg=0x2714450) at thread/qthread_unix.cpp:248
#5  0x00007f5edb4c88ba in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f5edcfe202d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 2 (Thread 0x7f5ea7fff710 (LWP 7808)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f5eddd23e6b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2aa2df8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2aa2df8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f5ee16e4cc4 in Digikam::LoadSaveThread::run (this=0x2aa2de0) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00007f5eddd22e15 in QThreadPrivate::start (arg=0x2aa2de0) at thread/qthread_unix.cpp:248
#5  0x00007f5edb4c88ba in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f5edcfe202d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f5ee47147c0 (LWP 7780)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f5eddd23e6b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1f4ebd0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1f4ebd0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f5eddd22eac in QThread::wait (this=<value optimized out>, time=18446744073709551615) at thread/qthread_unix.cpp:619
#4  0x00007f5ee16e4d44 in Digikam::LoadSaveThread::shutdownThread (this=0x1f9d2c0) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:86
#5  0x00007f5ee1705294 in ~ThumbnailLoadThread (this=0x1f9e73c, __in_chrg=<value optimized out>) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/libs/threadimageio/thumbnailloadthread.cpp:150
#6  0x00007f5edcf495e2 in __run_exit_handlers (status=1, listp=0x7f5edd26e4a8, run_list_atexit=true) at exit.c:78
#7  0x00007f5edcf49635 in *__GI_exit (status=33154876) at exit.c:100
#8  0x00007f5eced8dfb6 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#9  0x00007f5edfcb1258 in KApplication::xioErrhandler (this=0x7fff9d395e50, dpy=0x1a1daa0) at ../../kdeui/kernel/kapplication.cpp:408
#10 0x00007f5edbf4dc9e in _XIOError () from /usr/lib/libX11.so.6
#11 0x00007f5edbf55095 in ?? () from /usr/lib/libX11.so.6
#12 0x00007f5edbf55987 in _XEventsQueued () from /usr/lib/libX11.so.6
#13 0x00007f5edbf3e2ef in XEventsQueued () from /usr/lib/libX11.so.6
#14 0x00007f5ededee35c in x11EventSourceCheck (s=0x1a0ad50) at kernel/qguieventdispatcher_glib.cpp:87
#15 0x00007f5ed981392a in g_main_context_check () from /lib/libglib-2.0.so.0
#16 0x00007f5ed98142e3 in ?? () from /lib/libglib-2.0.so.0
#17 0x00007f5ed981471c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#18 0x00007f5edde3b6b3 in QEventDispatcherGlib::processEvents (this=0x19cc2b0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#19 0x00007f5ededee19e in QGuiEventDispatcherGlib::processEvents (this=0x1f9e73c, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#20 0x00007f5edde109c2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#21 0x00007f5edde10d9c in QEventLoop::exec (this=0x7fff9d395d80, flags=) at kernel/qeventloop.cpp:201
#22 0x00007f5edde15a2b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#23 0x000000000078008b in main (argc=<value optimized out>, argv=<value optimized out>) at /home/mark/src/kde-extras/build-area/digikam-1.2.0/digikam/main.cpp:193

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

Possible duplicates by query: bug 250248, bug 247940, bug 237957, bug 235763, bug 235392.

Reported using DrKonqi
Comment 1 caulier.gilles 2010-12-05 23:29:39 UTC
Crash appear in Exiv2 library.

Go to Help/components Info, and copy & paste contents here...

Gilles Caulier
Comment 2 admin 2010-12-07 00:06:01 UTC
digiKam version 1.2.0
Exiv2 can write to Jp2: Yes
Exiv2 can write to Jpeg: Yes
Exiv2 can write to Pgf: Yes
Exiv2 can write to Png: Yes
Exiv2 can write to Tiff: Yes
Exiv2 supports XMP metadata: Yes
LibCImg: 130
LibExiv2: 0.20
LibJPEG: 62
LibJasper: 1.900.1
LibKDE: 4.4.5 (KDE 4.4.5)
LibKExiv2: 1.0.0
LibKdcraw: 1.0.0
LibLCMS: 118
LibPGF: 6.09.44
LibPNG: 1.2.44
LibQt: 4.6.3
LibRaw: 0.8.5
LibTIFF: LIBTIFF, Version 3.9.4 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc.
Marble widget: 0.9.5
Parallelized demosaicing: Yes
LibGphoto2: 2.4.6
LibKipi: 1.0.0
Comment 3 Marcel Wiesweg 2011-01-18 15:45:05 UTC
We need to identify the image causing the crash. Please run kdebugdialog, enable 50003. Then run digikam on the console, watch the output lines before the crash, if the filename appears.

Alternatively, try with exiv2 0.21.

Thanks!
Comment 4 Andreas Huggel 2011-01-19 01:43:21 UTC
Does KExiv2Iface::KExiv2::getImageOrientation() have any unchecked calls to Exiv2::Exifdatum::toLong() or similar? There isn't enough info here to say for sure but this could explain the issue: http://dev.exiv2.org/issues/748#note-1
Can you reproduce the problem with the sample images from there?

Andreas
Comment 5 Marcel Wiesweg 2011-01-19 23:59:54 UTC
Yes Andreas, thank you. These calls are safe now, but the change was applied on August 23rd, way after digikam 1.2.0, so I assume this is relevant for old code and close as fixed.

Dear bug reporter, feel free to reopen if you can reproduce with digikam >= 1.7.0.