Bug 207710

Summary: Crash while loading large file (Digikam::DImgScale::dimgScaleAARGB, Digikam::DImg::smoothScaleSection, Digikam::DImgInterface::paintOnDevice)
Product: [Applications] digikam Reporter: E. Kastelijn <kde2>
Component: DImg-ProcessingAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: 1977-Hamlet, alfamale, axel.krebs, bugs.kde, caulier.gilles, daniel, gstumpf020, helder.meneses, kde_bugs, marcel.wiesweg, mark, mrintala43, sputnikshock, x.larcher
Priority: HI    
Version: 1.4.0   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 1.1.0
Sentry Crash Report:
Bug Depends on:    
Bug Blocks: 218256    
Attachments: New crash information added by DrKonqi
fix overflow in DImgScale::dimgCalc*Points functions for large images

Description E. Kastelijn 2009-09-17 20:22:22 UTC
Application that crashed: showfoto
Version of the application: 0.10.0
KDE Version: 4.3.1 (KDE 4.3.1)
Qt Version: 4.5.2
Operating System: Linux 2.6.30.5-43.fc11.i586 i686
Distribution: "Fedora release 11 (Leonidas)"

 -- Backtrace:
Application: showFoto (showfoto), signal: Segmentation fault
[Current thread is 1 (Thread 0xb7fc7780 (LWP 10357))]

Thread 5 (Thread 0xb6901b70 (LWP 10358)):
#0  0x00416422 in __kernel_vsyscall ()
#1  0x002defa5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0x04e53337 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#4  0x032a223a in Digikam::LoadSaveThread::run (this=0x85c9658) at /usr/src/debug/digikam-0.10.0/libs/threadimageio/loadsavethread.cpp:131
#5  0x04e522f2 in QThreadPrivate::start (arg=0x85c9658) at thread/qthread_unix.cpp:188
#6  0x002da935 in start_thread (arg=0xb6901b70) at pthread_create.c:297
#7  0x0057994e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xb5dffb70 (LWP 10359)):
#0  0x00416422 in __kernel_vsyscall ()
#1  0x002defa5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0x04e53337 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#4  0x032a223a in Digikam::LoadSaveThread::run (this=0x8637d60) at /usr/src/debug/digikam-0.10.0/libs/threadimageio/loadsavethread.cpp:131
#5  0x04e522f2 in QThreadPrivate::start (arg=0x8637d60) at thread/qthread_unix.cpp:188
#6  0x002da935 in start_thread (arg=0xb5dffb70) at pthread_create.c:297
#7  0x0057994e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xb51ffb70 (LWP 10360)):
#0  0x00416422 in __kernel_vsyscall ()
#1  0x002defa5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0x04e53337 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#4  0x032a223a in Digikam::LoadSaveThread::run (this=0x8426990) at /usr/src/debug/digikam-0.10.0/libs/threadimageio/loadsavethread.cpp:131
#5  0x04e522f2 in QThreadPrivate::start (arg=0x8426990) at thread/qthread_unix.cpp:188
#6  0x002da935 in start_thread (arg=0xb51ffb70) at pthread_create.c:297
#7  0x0057994e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xb3bfeb70 (LWP 10370)):
#0  0x0030af86 in *__GI_clock_gettime (clock_id=3207156, tp=0xb3bfdf58) at ../sysdeps/unix/clock_gettime.c:100
#1  0x04f6f1b3 in QTimerInfoList::getTime (this=0xb006d1dc, t=@0xb006d200) at kernel/qeventdispatcher_unix.cpp:339
#2  0x04f6f3a1 in QTimerInfoList::updateCurrentTime (this=0xb006d1dc) at kernel/qeventdispatcher_unix.cpp:297
#3  0x04f6fe2c in QTimerInfoList::timerWait (this=0xb006d1dc, tm=@0xb3bfdfe4) at kernel/qeventdispatcher_unix.cpp:420
#4  0x04f6d7d0 in timerSourcePrepare (source=0xb006d1a8, timeout=0xb3bfe04c) at kernel/qeventdispatcher_glib.cpp:141
#5  0x04c47240 in IA__g_main_context_prepare (context=0xb5201368, priority=0xb3bfe0cc) at gmain.c:2144
#6  0x04c47601 in g_main_context_iterate (context=0xb5201368, block=<value optimized out>, dispatch=1, self=0xb006d398) at gmain.c:2435
#7  0x04c47b13 in IA__g_main_context_iteration (context=0xb5201368, may_block=1) at gmain.c:2518
#8  0x04f6d627 in QEventDispatcherGlib::processEvents (this=0xb5200dd8, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:329
#9  0x04f410d9 in QEventLoop::processEvents (this=0xb3bfe214, flags={i = 36}) at kernel/qeventloop.cpp:149
#10 0x04f4152a in QEventLoop::exec (this=0xb3bfe214, flags={i = 0}) at kernel/qeventloop.cpp:201
#11 0x04e4eff3 in QThread::exec (this=0x8aa8950) at thread/qthread.cpp:487
#12 0x00a2fcdc in Marble::GpsdThread::run (this=0x8aa8950) at /usr/src/debug/kdeedu-4.3.1/marble/src/plugins/positionprovider/gpsd/GpsdThread.cpp:27
#13 0x04e522f2 in QThreadPrivate::start (arg=0x8aa8950) at thread/qthread_unix.cpp:188
#14 0x002da935 in start_thread (arg=0xb3bfeb70) at pthread_create.c:297
#15 0x0057994e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb7fc7780 (LWP 10357)):
[KCrash Handler]
#6  Digikam::DImgScale::dimgScaleAARGB (isi=0x936db88, dest=0x94bd860, dxx=0, dyy=0, dx=0, dy=0, dw=128, dh=51, dow=128, sow=48363) at /usr/src/debug/digikam-0.10.0/libs/dimg/dimgscale.cpp:1212
#7  0x0320f3ce in Digikam::DImg::smoothScaleSection (this=0x8646af4, sx=0, sy=0, sw=8123, sh=8123, dw=128, dh=51) at /usr/src/debug/digikam-0.10.0/libs/dimg/dimgscale.cpp:261
#8  0x03384143 in Digikam::DImgInterface::paintOnDevice (this=0x84f5298, p=0x84da700, sx=0, sy=0, sw=8123, sh=8123, dx=0, dy=0, dw=128, dh=128)
    at /usr/src/debug/digikam-0.10.0/utilities/imageeditor/canvas/dimginterface.cpp:837
#9  0x0338de7f in Digikam::Canvas::paintViewport (this=0x8645828, er=@0xbf9442b0, antialias=<value optimized out>) at /usr/src/debug/digikam-0.10.0/utilities/imageeditor/canvas/canvas.cpp:595
#10 0x0338e699 in Digikam::Canvas::viewportPaintEvent (this=0x8645828, e=0xbf9446e4) at /usr/src/debug/digikam-0.10.0/utilities/imageeditor/canvas/canvas.cpp:491
#11 0x044e6772 in Q3ScrollView::eventFilter(QObject*, QEvent*) () from /usr/lib/libQt3Support.so.4
#12 0x04f41c9a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x83b1668, receiver=0x8636c70, event=0xbf9446e4) at kernel/qcoreapplication.cpp:726
#13 0x0554994c in QApplicationPrivate::notify_helper (this=0x83b1668, receiver=0x8636c70, e=0xbf9446e4) at kernel/qapplication.cpp:4052
#14 0x0555103a in QApplication::notify (this=0xbf945308, receiver=0x8636c70, e=0xbf9446e4) at kernel/qapplication.cpp:4021
#15 0x02dc760a in KApplication::notify (this=0xbf945308, receiver=0x8636c70, event=0xbf9446e4) at /usr/src/debug/kdelibs-4.3.1/kdeui/kernel/kapplication.cpp:302
#16 0x04f42b0b in QCoreApplication::notifyInternal (this=0xbf945308, receiver=0x8636c70, event=0xbf9446e4) at kernel/qcoreapplication.cpp:610
#17 0x055a69cd in QCoreApplication::sendSpontaneousEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:216
#18 QWidgetPrivate::drawWidget (event=<value optimized out>, receiver=<value optimized out>) at kernel/qwidget.cpp:5079
#19 0x057335a3 in QWidgetBackingStore::sync (this=0x84bac48) at painting/qbackingstore.cpp:1261
#20 0x05597c26 in QWidgetPrivate::syncBackingStore (this=0x847aa60) at kernel/qwidget.cpp:1603
#21 0x0559ed9d in QWidget::event (this=0x84bbef0, event=0x9335360) at kernel/qwidget.cpp:7827
#22 0x0596a127 in QMainWindow::event (this=0x84bbef0, event=0x9335360) at widgets/qmainwindow.cpp:1399
#23 0x02ead4bc in KMainWindow::event (this=0x84bbef0, ev=0x9335360) at /usr/src/debug/kdelibs-4.3.1/kdeui/widgets/kmainwindow.cpp:1094
#24 0x02ef3d1f in KXmlGuiWindow::event (this=0x84bbef0, ev=0x9335360) at /usr/src/debug/kdelibs-4.3.1/kdeui/xmlgui/kxmlguiwindow.cpp:131
#25 0x05549974 in QApplicationPrivate::notify_helper (this=0x83b1668, receiver=0x84bbef0, e=0x9335360) at kernel/qapplication.cpp:4056
#26 0x0555103a in QApplication::notify (this=0xbf945308, receiver=0x84bbef0, e=0x9335360) at kernel/qapplication.cpp:4021
#27 0x02dc760a in KApplication::notify (this=0xbf945308, receiver=0x84bbef0, event=0x9335360) at /usr/src/debug/kdelibs-4.3.1/kdeui/kernel/kapplication.cpp:302
#28 0x04f42b0b in QCoreApplication::notifyInternal (this=0xbf945308, receiver=0x84bbef0, event=0x9335360) at kernel/qcoreapplication.cpp:610
#29 0x04f43732 in QCoreApplication::sendEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.h:213
#30 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.cpp:1247
#31 0x04f438ed in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140
#32 0x04f6d9bf in QCoreApplication::sendPostedEvents () at kernel/qcoreapplication.h:218
#33 postEventSourceDispatch () at kernel/qeventdispatcher_glib.cpp:210
#34 0x04c44308 in g_main_dispatch (context=<value optimized out>) at gmain.c:1824
#35 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2377
#36 0x04c479e0 in g_main_context_iterate (context=0x83b3a90, block=<value optimized out>, dispatch=1, self=0x83b1500) at gmain.c:2455
#37 0x04c47b13 in IA__g_main_context_iteration (context=0x83b3a90, may_block=1) at gmain.c:2518
#38 0x04f6d5ec in QEventDispatcherGlib::processEvents (this=0x838cdd0, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#39 0x055e8cb5 in QGuiEventDispatcherGlib::processEvents (this=0x838cdd0, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#40 0x04f410d9 in QEventLoop::processEvents (this=0xbf945274, flags={i = 36}) at kernel/qeventloop.cpp:149
#41 0x04f4152a in QEventLoop::exec (this=0xbf945274, flags={i = 0}) at kernel/qeventloop.cpp:201
#42 0x04f439af in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#43 0x055497f7 in QApplication::exec () at kernel/qapplication.cpp:3525
#44 0x08075aa9 in main (argc=6, argv=0xbf945604) at /usr/src/debug/digikam-0.10.0/showfoto/main.cpp:87

Reported using DrKonqi
Comment 1 Andi Clemens 2009-10-21 14:41:34 UTC
I can confirm this crash when using GDB and the following steps:

1) open showFoto, Liquid Rescale
2) set some width or whatever parameter
3) set breakpoint at dimgscale.cpp:156
4) when breakpoint is hit, set scaleInfo->xup_yup == 0 (to simulate the above backtrace)
5) resume GDB
6) it will crash

Either xup_yup=0 is always invalid in this case and something set this to a wrong parameter, or the code in dimgscale is wrong.
Maybe different xup_yup values will give different crashes?
At least it shouldn't contain 1,2 or 3, to reach the else path where the above crash happened.
Comment 2 Marcel Wiesweg 2009-10-22 19:24:05 UTC
E.Kastelijn, can you reproduce the crash?

Andi: xup_yup should be 0 here because the image is scaled down in both dimensions.
I am irritated at the src scanline size of 48363 when the image is apparently 8123x8123.
Comment 3 E. Kastelijn 2009-10-23 06:48:50 UTC
Hi Marcel,

Thank you for looking at this problem.

To answer your question: Yes, I am able to reproduce my problem.
I only need to load a certain (stitched) photo to reproduce the crash.
This is the photo I used:
http://www.kastelijn.nu/egon/groothoek.jpg

If you want to know what the photo looks like: GwenView is able to read and display the file.

kind regards,

   Egon

Here is my trace:
=============================================================
Application: showFoto (showfoto), signal: Segmentation fault
[Current thread is 1 (Thread 0xb7fcd780 (LWP 3303))]

Thread 5 (Thread 0xb6905b70 (LWP 3304)):
#0  0x00332422 in __kernel_vsyscall ()
#1  0x002defa5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0x04e53337 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#4  0x06da8dea in Digikam::LoadSaveThread::run (this=0x944aac0) at /usr/src/debug/digikam-0.10.0/libs/threadimageio/loadsavethread.cpp:131
#5  0x04e522f2 in QThreadPrivate::start (arg=0x944aac0) at thread/qthread_unix.cpp:188
#6  0x002da935 in start_thread (arg=0xb6905b70) at pthread_create.c:297
#7  0x0020f94e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xb5dffb70 (LWP 3305)):
#0  0x00332422 in __kernel_vsyscall ()
#1  0x002defa5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0x04e53337 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#4  0x06da8dea in Digikam::LoadSaveThread::run (this=0x9370040) at /usr/src/debug/digikam-0.10.0/libs/threadimageio/loadsavethread.cpp:131
#5  0x04e522f2 in QThreadPrivate::start (arg=0x9370040) at thread/qthread_unix.cpp:188
#6  0x002da935 in start_thread (arg=0xb5dffb70) at pthread_create.c:297
#7  0x0020f94e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xb51ffb70 (LWP 3306)):
#0  0x00332422 in __kernel_vsyscall ()
#1  0x002defa5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0x04e53337 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#4  0x06da8dea in Digikam::LoadSaveThread::run (this=0x939f450) at /usr/src/debug/digikam-0.10.0/libs/threadimageio/loadsavethread.cpp:131
#5  0x04e522f2 in QThreadPrivate::start (arg=0x939f450) at thread/qthread_unix.cpp:188
#6  0x002da935 in start_thread (arg=0xb51ffb70) at pthread_create.c:297
#7  0x0020f94e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xb45ffb70 (LWP 3316)):
#0  0x0030af86 in *__GI_clock_gettime (clock_id=3207156, tp=0xb45fef58) at ../sysdeps/unix/clock_gettime.c:100
#1  0x04f6f1b3 in QTimerInfoList::getTime (this=0x996c4ec, t=@0x996c510) at kernel/qeventdispatcher_unix.cpp:339
#2  0x04f6f3a1 in QTimerInfoList::updateCurrentTime (this=0x996c4ec) at kernel/qeventdispatcher_unix.cpp:297
#3  0x04f6fe2c in QTimerInfoList::timerWait (this=0x996c4ec, tm=@0xb45fefe4) at kernel/qeventdispatcher_unix.cpp:420
#4  0x04f6d7d0 in timerSourcePrepare (source=0x996c4b8, timeout=0xb45ff04c) at kernel/qeventdispatcher_glib.cpp:141
#5  0x04c47240 in IA__g_main_context_prepare (context=0x9967e68, priority=0xb45ff0cc) at gmain.c:2144
#6  0x04c47601 in g_main_context_iterate (context=0x9967e68, block=<value optimized out>, dispatch=1, self=0x99558f0) at gmain.c:2435
#7  0x04c47b13 in IA__g_main_context_iteration (context=0x9967e68, may_block=1) at gmain.c:2518
#8  0x04f6d627 in QEventDispatcherGlib::processEvents (this=0x96cfa20, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:329
#9  0x04f410d9 in QEventLoop::processEvents (this=0xb45ff214, flags={i = 36}) at kernel/qeventloop.cpp:149
#10 0x04f4152a in QEventLoop::exec (this=0xb45ff214, flags={i = 0}) at kernel/qeventloop.cpp:201
#11 0x04e4eff3 in QThread::exec (this=0x99678f8) at thread/qthread.cpp:487
#12 0x00b78cdc in Marble::GpsdThread::run (this=0x99678f8) at /usr/src/debug/kdeedu-4.3.1/marble/src/plugins/positionprovider/gpsd/GpsdThread.cpp:27
#13 0x04e522f2 in QThreadPrivate::start (arg=0x99678f8) at thread/qthread_unix.cpp:188
#14 0x002da935 in start_thread (arg=0xb45ffb70) at pthread_create.c:297
#15 0x0020f94e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb7fcd780 (LWP 3303)):
[KCrash Handler]
#6  Digikam::DImgScale::dimgScaleAARGB (isi=0x9be5550, dest=0xa495d98, dxx=0, dyy=0, dx=0, dy=0, dw=128, dh=31, dow=128, sow=48273) at /usr/src/debug/digikam-0.10.0/libs/dimg/dimgscale.cpp:1212
#7  0x06d1640e in Digikam::DImg::smoothScaleSection (this=0x943b474, sx=0, sy=0, sw=8108, sh=8108, dw=128, dh=31) at /usr/src/debug/digikam-0.10.0/libs/dimg/dimgscale.cpp:261
#8  0x06e8a5c3 in Digikam::DImgInterface::paintOnDevice (this=0x943b420, p=0xa373660, sx=0, sy=0, sw=8108, sh=8108, dx=0, dy=0, dw=128, dh=128)
    at /usr/src/debug/digikam-0.10.0/utilities/imageeditor/canvas/dimginterface.cpp:837
#9  0x06e9428f in Digikam::Canvas::paintViewport (this=0x931f7c0, er=@0xbfa470d0, antialias=<value optimized out>) at /usr/src/debug/digikam-0.10.0/utilities/imageeditor/canvas/canvas.cpp:595
#10 0x06e94a99 in Digikam::Canvas::viewportPaintEvent (this=0x931f7c0, e=0xbfa47504) at /usr/src/debug/digikam-0.10.0/utilities/imageeditor/canvas/canvas.cpp:491
#11 0x044e6772 in Q3ScrollView::eventFilter(QObject*, QEvent*) () from /usr/lib/libQt3Support.so.4
#12 0x04f41c9a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x923d3a8, receiver=0x944ce70, event=0xbfa47504) at kernel/qcoreapplication.cpp:726
#13 0x0554994c in QApplicationPrivate::notify_helper (this=0x923d3a8, receiver=0x944ce70, e=0xbfa47504) at kernel/qapplication.cpp:4052
#14 0x0555103a in QApplication::notify (this=0xbfa48128, receiver=0x944ce70, e=0xbfa47504) at kernel/qapplication.cpp:4021
#15 0x02dc760a in KApplication::notify (this=0xbfa48128, receiver=0x944ce70, event=0xbfa47504) at /usr/src/debug/kdelibs-4.3.1/kdeui/kernel/kapplication.cpp:302
#16 0x04f42b0b in QCoreApplication::notifyInternal (this=0xbfa48128, receiver=0x944ce70, event=0xbfa47504) at kernel/qcoreapplication.cpp:610
#17 0x055a69cd in QCoreApplication::sendSpontaneousEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:216
#18 QWidgetPrivate::drawWidget (event=<value optimized out>, receiver=<value optimized out>) at kernel/qwidget.cpp:5079
#19 0x057335a3 in QWidgetBackingStore::sync (this=0x9285b50) at painting/qbackingstore.cpp:1261
#20 0x05597c26 in QWidgetPrivate::syncBackingStore (this=0x9298d08) at kernel/qwidget.cpp:1603
#21 0x0559ed9d in QWidget::event (this=0x9286370, event=0x9bf6f98) at kernel/qwidget.cpp:7827
#22 0x0596a127 in QMainWindow::event (this=0x9286370, event=0x9bf6f98) at widgets/qmainwindow.cpp:1399
#23 0x02ead4bc in KMainWindow::event (this=0x9286370, ev=0x9bf6f98) at /usr/src/debug/kdelibs-4.3.1/kdeui/widgets/kmainwindow.cpp:1094
#24 0x02ef3d1f in KXmlGuiWindow::event (this=0x9286370, ev=0x9bf6f98) at /usr/src/debug/kdelibs-4.3.1/kdeui/xmlgui/kxmlguiwindow.cpp:131
#25 0x05549974 in QApplicationPrivate::notify_helper (this=0x923d3a8, receiver=0x9286370, e=0x9bf6f98) at kernel/qapplication.cpp:4056
#26 0x0555103a in QApplication::notify (this=0xbfa48128, receiver=0x9286370, e=0x9bf6f98) at kernel/qapplication.cpp:4021
#27 0x02dc760a in KApplication::notify (this=0xbfa48128, receiver=0x9286370, event=0x9bf6f98) at /usr/src/debug/kdelibs-4.3.1/kdeui/kernel/kapplication.cpp:302
#28 0x04f42b0b in QCoreApplication::notifyInternal (this=0xbfa48128, receiver=0x9286370, event=0x9bf6f98) at kernel/qcoreapplication.cpp:610
#29 0x04f43732 in QCoreApplication::sendEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.h:213
#30 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.cpp:1247
#31 0x04f438ed in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140
#32 0x04f6d9bf in QCoreApplication::sendPostedEvents () at kernel/qcoreapplication.h:218
#33 postEventSourceDispatch () at kernel/qeventdispatcher_glib.cpp:210
#34 0x04c44308 in g_main_dispatch (context=<value optimized out>) at gmain.c:1824
#35 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2377
#36 0x04c479e0 in g_main_context_iterate (context=0x923f6f8, block=<value optimized out>, dispatch=1, self=0x923d5f0) at gmain.c:2455
#37 0x04c47b13 in IA__g_main_context_iteration (context=0x923f6f8, may_block=1) at gmain.c:2518
#38 0x04f6d5ec in QEventDispatcherGlib::processEvents (this=0x9218dd0, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#39 0x055e8cb5 in QGuiEventDispatcherGlib::processEvents (this=0x9218dd0, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#40 0x04f410d9 in QEventLoop::processEvents (this=0xbfa48094, flags={i = 36}) at kernel/qeventloop.cpp:149
#41 0x04f4152a in QEventLoop::exec (this=0xbfa48094, flags={i = 0}) at kernel/qeventloop.cpp:201
#42 0x04f439af in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#43 0x055497f7 in QApplication::exec () at kernel/qapplication.cpp:3525
#44 0x08075ae9 in main (argc=2, argv=0xbfa48424) at /usr/src/debug/digikam-0.10.0/showfoto/main.cpp:87
Comment 4 E. Kastelijn 2009-10-23 06:53:15 UTC
Addition note: I am running digikam-0.10.0-3.fc11.i586 at the moment.
Comment 5 Marcel Wiesweg 2009-10-23 15:45:33 UTC
Yes I can reproduce
Comment 6 Andi Clemens 2009-10-23 16:25:50 UTC
For me it is not crashing when running in valgrinnd, but I get a lot of invalid reads and warnings like these:
==27588== Warning: set address range perms: large range [0xcf56028, 0x23bf2618) (undefined)                                                                                                                                                 
==27588== Warning: set address range perms: large range [0x38993028, 0x4f62f618) (undefined)                                                                                                                                                
==27588== Warning: set address range perms: large range [0xcf56018, 0x23bf2628) (noaccess)
Comment 7 Marcel Wiesweg 2009-10-23 16:47:26 UTC
This is a nasty bug, I am a bit at a loss here.
We may hit a rounding error or corner case of some sort, trying to scale a 9078x1980px section to 128x27px.
Valgrind shows that for y=0 only, dimgscale.cpp:1222-24, 1229-31, 1216-18 give "invalid read" errors. No further errors for y>1.

The bug could as well be in DImgScale::dimgCalcApoints, the result of which is read by the XAP macro and then used to control the loops which access invalid adresses.

Does anyone in some way understand this scaling algorithm?
Comment 8 caulier.gilles 2009-12-25 20:22:02 UTC
digiKam 1.0.0 is out since few days...

http://www.digikam.org/drupal/node/491

Please try with this version coming with more than 400 bug-fixes.

Thanks in advance

Gilles Caulier
Comment 9 E. Kastelijn 2009-12-25 21:39:45 UTC
Hi,

I am running digikam-1.0.0-0.9.beta6.fc12.i686 at the moment, and I am unable to reproduce the problem.
Great work!

kind regards,

  Egon
Comment 10 caulier.gilles 2009-12-25 21:41:56 UTC
OK. I close it. feel free to re-open if necessary.

Gilles Caulier
Comment 11 Marcel Wiesweg 2010-03-21 20:34:03 UTC
*** Bug 231570 has been marked as a duplicate of this bug. ***
Comment 12 Marcel Wiesweg 2010-03-21 20:35:11 UTC
Reopening, crash reported again.
Comment 13 E. Kastelijn 2010-03-21 21:35:25 UTC
I can confirm the problem using the following picture:

http://www.kastelijn.nu/egon/groothoek.jpg

=================================
Application: digiKam (digikam), signal: Segmentation fault
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f3f143d28c0 (LWP 24343))]

Thread 22 (Thread 0x7f3f0c956710 (LWP 24344)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x222b810, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x222b810, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00000000006707bb in Digikam::ScanController::run (this=0x222b4a0) at /usr/src/debug/digikam-1.1.0/digikam/scancontroller.cpp:502
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x222b4a0) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 21 (Thread 0x7f3f08e0c710 (LWP 24345)):
#0  0x00000037a7ed51e3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00000037a9a3c9dc in g_main_context_poll (context=0x7f3efc0009b0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904
#2  g_main_context_iterate (context=0x7f3efc0009b0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586
#3  0x00000037a9a3cd1a in IA__g_main_context_iteration (context=0x7f3efc0009b0, may_block=1) at gmain.c:2654
#4  0x000000345337d0b6 in QEventDispatcherGlib::processEvents (this=0x7f3efc0008c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#5  0x0000003453356192 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x000000345335645c in QEventLoop::exec (this=0x7f3f08e0bcc0, flags=...) at kernel/qeventloop.cpp:201
#7  0x000000345326e8d9 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00000034532709a5 in QThreadPrivate::start (arg=0x23c3b50) at thread/qthread_unix.cpp:248
#9  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 20 (Thread 0x7f3f03fff710 (LWP 24346)):
#0  0x00000037a7ed51e3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00000037a9a3c9dc in g_main_context_poll (context=0x7f3ef40009b0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904
#2  g_main_context_iterate (context=0x7f3ef40009b0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586
#3  0x00000037a9a3cd1a in IA__g_main_context_iteration (context=0x7f3ef40009b0, may_block=1) at gmain.c:2654
#4  0x000000345337d0b6 in QEventDispatcherGlib::processEvents (this=0x7f3ef40008c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#5  0x0000003453356192 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x000000345335645c in QEventLoop::exec (this=0x7f3f03ffecc0, flags=...) at kernel/qeventloop.cpp:201
#7  0x000000345326e8d9 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00000034532709a5 in QThreadPrivate::start (arg=0x2240c20) at thread/qthread_unix.cpp:248
#9  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 19 (Thread 0x7f3f035fe710 (LWP 24347)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x24cf498, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x24cf498, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3f1590eb22 in Digikam::LoadSaveThread::run (this=0x24cf480) at /usr/src/debug/digikam-1.1.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x24cf480) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 18 (Thread 0x7f3f02bfd710 (LWP 24348)):
#0  0x00000037a7ed51e3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00000037a9a3c9dc in g_main_context_poll (context=0x7f3eec0009b0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904
#2  g_main_context_iterate (context=0x7f3eec0009b0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586
#3  0x00000037a9a3cd1a in IA__g_main_context_iteration (context=0x7f3eec0009b0, may_block=1) at gmain.c:2654
#4  0x000000345337d0b6 in QEventDispatcherGlib::processEvents (this=0x7f3eec0008c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#5  0x0000003453356192 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x000000345335645c in QEventLoop::exec (this=0x7f3f02bfccc0, flags=...) at kernel/qeventloop.cpp:201
#7  0x000000345326e8d9 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00000034532709a5 in QThreadPrivate::start (arg=0x24e4ad0) at thread/qthread_unix.cpp:248
#9  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 17 (Thread 0x7f3f021fc710 (LWP 24349)):
#0  0x00000037a8608de1 in __pthread_mutex_lock (mutex=0x7f3ef00009b8) at pthread_mutex_lock.c:61
#1  0x00000037a9a3aeed in IA__g_main_context_acquire (context=0x7f3ef00009b0) at gmain.c:2047
#2  0x00000037a9a3c772 in g_main_context_iterate (context=0x7f3ef00009b0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2535
#3  0x00000037a9a3cd1a in IA__g_main_context_iteration (context=0x7f3ef00009b0, may_block=1) at gmain.c:2654
#4  0x000000345337d0b6 in QEventDispatcherGlib::processEvents (this=0x7f3ef00008c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#5  0x0000003453356192 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x000000345335645c in QEventLoop::exec (this=0x7f3f021fbcc0, flags=...) at kernel/qeventloop.cpp:201
#7  0x000000345326e8d9 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00000034532709a5 in QThreadPrivate::start (arg=0x24e5c40) at thread/qthread_unix.cpp:248
#9  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 16 (Thread 0x7f3f017fb710 (LWP 24350)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x24fe8f8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x24fe8f8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3f1590eb22 in Digikam::LoadSaveThread::run (this=0x24fe8e0) at /usr/src/debug/digikam-1.1.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x24fe8e0) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 15 (Thread 0x7f3eea20e710 (LWP 24351)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00000037b4a134b1 in ?? () from /usr/lib64/libxine.so.1
#2  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#3  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7f3ee8bd6710 (LWP 24352)):
#0  0x00000037a7ed73e3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00000037b4a3b575 in xine_usec_sleep () from /usr/lib64/libxine.so.1
#2  0x00000037b4a20f99 in ?? () from /usr/lib64/libxine.so.1
#3  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#4  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7f3edfffe710 (LWP 24353)):
#0  0xffffffffff60013b in ?? ()
#1  0x00007f3edfffd980 in ?? ()
#2  0x00007fff2e7ff882 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 12 (Thread 0x7f3edf3f9710 (LWP 24354)):
#0  0x00000037a7ed51e3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x0000003df4e2c73f in ?? () from /usr/lib64/libpulse.so.0
#2  0x0000003df4e1cae6 in pa_mainloop_poll () from /usr/lib64/libpulse.so.0
#3  0x0000003df4e1dea9 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#4  0x0000003df4e1df60 in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#5  0x0000003df4e2c64b in ?? () from /usr/lib64/libpulse.so.0
#6  0x0000003df4a38838 in ?? () from /usr/lib64/libpulsecommon-0.9.21.so
#7  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#8  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f3ede9f8710 (LWP 24355)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00000037b4a24123 in ?? () from /usr/lib64/libxine.so.1
#2  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#3  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f3ed3ffe710 (LWP 24356)):
#0  IA__g_main_context_iteration (context=0x7f3ec40009b0, may_block=1) at gmain.c:2655
#1  0x000000345337d0b6 in QEventDispatcherGlib::processEvents (this=0x7f3ec40008c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#2  0x0000003453356192 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#3  0x000000345335645c in QEventLoop::exec (this=0x7f3ed3ffdc50, flags=...) at kernel/qeventloop.cpp:201
#4  0x000000345326e8d9 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#5  0x00007f3edd5e0d6d in Marble::GpsdThread::run (this=0x2d8bf50) at /usr/src/debug/kdeedu-4.4.1/marble/src/plugins/positionprovider/gpsd/GpsdThread.cpp:27
#6  0x00000034532709a5 in QThreadPrivate::start (arg=0x2d8bf50) at thread/qthread_unix.cpp:248
#7  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#8  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f3ed35fd710 (LWP 24357)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x2d8db58, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2d8db58, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3f1590eb22 in Digikam::LoadSaveThread::run (this=0x2d8db40) at /usr/src/debug/digikam-1.1.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x2d8db40) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f3ed2bfc710 (LWP 24364)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x307c478, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x307c478, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3f1590eb22 in Digikam::LoadSaveThread::run (this=0x307c460) at /usr/src/debug/digikam-1.1.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x307c460) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f3ec35fe710 (LWP 24365)):
#0  0xffffffffff60013b in ?? ()
#1  0x00007f3ec35fd940 in ?? ()
#2  0x00007fff2e7ff882 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 6 (Thread 0x7f3ed0df9710 (LWP 24366)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x3111868, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x3111868, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3f1590eb22 in Digikam::LoadSaveThread::run (this=0x3111850) at /usr/src/debug/digikam-1.1.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x3111850) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f3ed21fb710 (LWP 24373)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x0000003453271802 in wait (this=<value optimized out>, mutex=0x3efa650, time=30000) at thread/qwaitcondition_unix.cpp:85
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x3efa650, time=30000) at thread/qwaitcondition_unix.cpp:159
#3  0x0000003453267d11 in QThreadPoolThread::run (this=0x3eff9c0) at concurrent/qthreadpool.cpp:140
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x3eff9c0) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f3ed17fa710 (LWP 24391)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x33190a8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x33190a8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3f1590eb22 in Digikam::LoadSaveThread::run (this=0x3319090) at /usr/src/debug/digikam-1.1.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x3319090) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f3ec2bfd710 (LWP 24392)):
#0  0xffffffffff60013b in ?? ()
#1  0x00007f3ec2bfc940 in ?? ()
#2  0x00007fff2e7ff882 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0x7f3eb2d6d710 (LWP 24393)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000345327189b in wait (this=<value optimized out>, mutex=0x320c5d8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x320c5d8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3f1590eb22 in Digikam::LoadSaveThread::run (this=0x320c5c0) at /usr/src/debug/digikam-1.1.0/libs/threadimageio/loadsavethread.cpp:131
#4  0x00000034532709a5 in QThreadPrivate::start (arg=0x320c5c0) at thread/qthread_unix.cpp:248
#5  0x00000037a8606a3a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00000037a7ede67d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f3f143d28c0 (LWP 24343)):
[KCrash Handler]
#5  Digikam::DImgScale::dimgScaleAARGB (isi=<value optimized out>, dest=<value optimized out>, dxx=0, dyy=<value optimized out>, dx=<value optimized out>, dy=<value optimized out>, dw=128, dh=34, 
    dow=128, sow=48273) at /usr/src/debug/digikam-1.1.0/libs/dimg/dimgscale.cpp:1211
#6  0x00007f3f15861922 in Digikam::DImg::smoothScaleSection (this=<value optimized out>, sx=0, sy=0, sw=7391, sh=<value optimized out>, dw=<value optimized out>, dh=34)
    at /usr/src/debug/digikam-1.1.0/libs/dimg/dimgscale.cpp:261
#7  0x00007f3f159e5783 in Digikam::DImgInterface::paintOnDevice (this=0x3fc9030, p=0x3ebda30, sx=0, sy=0, sw=<value optimized out>, sh=<value optimized out>, dx=0, dy=0, dw=128, dh=128)
    at /usr/src/debug/digikam-1.1.0/utilities/imageeditor/canvas/dimginterface.cpp:700
#8  0x00007f3f159f654b in Digikam::Canvas::paintViewport (this=0x3470f00, er=<value optimized out>, antialias=<value optimized out>)
    at /usr/src/debug/digikam-1.1.0/utilities/imageeditor/canvas/canvas.cpp:647
#9  0x00007f3f159f6d17 in Digikam::Canvas::viewportPaintEvent (this=0x3470f00, e=<value optimized out>) at /usr/src/debug/digikam-1.1.0/utilities/imageeditor/canvas/canvas.cpp:540
#10 0x0000003df635de70 in Q3ScrollView::eventFilter(QObject*, QEvent*) () from /usr/lib64/libQt3Support.so.4
#11 0x0000003453356b67 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x24fc090, event=0x7fff2e791390) at kernel/qcoreapplication.cpp:819
#12 0x0000003df13aa9ac in QApplicationPrivate::notify_helper (this=0x2129230, receiver=0x24fc090, e=0x7fff2e791390) at kernel/qapplication.cpp:4296
#13 0x0000003df13b0aab in QApplication::notify (this=<value optimized out>, receiver=0x24fc090, e=0x7fff2e791390) at kernel/qapplication.cpp:4183
#14 0x0000003790406846 in KApplication::notify (this=0x7fff2e794610, receiver=0x24fc090, event=0x7fff2e791390) at /usr/src/debug/kdelibs-4.4.1/kdeui/kernel/kapplication.cpp:302
#15 0x000000345335774c in QCoreApplication::notifyInternal (this=0x7fff2e794610, receiver=0x24fc090, event=0x7fff2e791390) at kernel/qcoreapplication.cpp:704
#16 0x0000003df13fd2cc in sendSpontaneousEvent (this=0x3fb4a10, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40)
    at ../../src/corelib/kernel/qcoreapplication.h:218
#17 QWidgetPrivate::drawWidget (this=0x3fb4a10, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5339
#18 0x0000003df13fdf58 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=<value optimized out>, index=<value optimized out>, 
    rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5452
#19 0x0000003df13fd02a in QWidgetPrivate::drawWidget (this=0x3fe4840, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x3330e40) at kernel/qwidget.cpp:5388
#20 0x0000003df13fdf58 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=<value optimized out>, index=<value optimized out>, 
    rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5452
#21 0x0000003df13fd02a in QWidgetPrivate::drawWidget (this=0x3fdad50, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x3330e40) at kernel/qwidget.cpp:5388
#22 0x0000003df13fdf58 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=<value optimized out>, index=<value optimized out>, 
    rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5452
#23 0x0000003df13fd02a in QWidgetPrivate::drawWidget (this=0x264a930, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x3330e40) at kernel/qwidget.cpp:5388
#24 0x0000003df13fdf58 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=<value optimized out>, index=<value optimized out>, 
    rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5452
#25 0x0000003df13fd02a in QWidgetPrivate::drawWidget (this=0x4178050, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x3330e40) at kernel/qwidget.cpp:5388
#26 0x0000003df13fdf58 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=<value optimized out>, index=<value optimized out>, 
    rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5452
#27 0x0000003df13fdd89 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=1, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5439
#28 0x0000003df13fd02a in QWidgetPrivate::drawWidget (this=0x40d0e60, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x3330e40) at kernel/qwidget.cpp:5388
#29 0x0000003df13fdf58 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=<value optimized out>, index=<value optimized out>, 
    rgn=<value optimized out>, offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5452
#30 0x0000003df13fdd89 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=41, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5439
#31 0x0000003df13fdd89 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=66, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5439
#32 0x0000003df13fdd89 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=88, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x3330e40) at kernel/qwidget.cpp:5439
#33 0x0000003df13fd02a in QWidgetPrivate::drawWidget (this=0x3ea2940, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x3330e40) at kernel/qwidget.cpp:5388
#34 0x0000003df15a11c5 in QWidgetBackingStore::sync (this=0x3330e40) at painting/qbackingstore.cpp:1291
#35 0x0000003df13ef6e0 in QWidgetPrivate::syncBackingStore (this=0x3ea2940) at kernel/qwidget.cpp:1672
#36 0x0000003df13f5e23 in QWidget::event (this=0x372b770, event=0x43aff40) at kernel/qwidget.cpp:8291
#37 0x0000003df178996b in QMainWindow::event (this=0x372b770, event=0x43aff40) at widgets/qmainwindow.cpp:1433
#38 0x0000003790503ab3 in KXmlGuiWindow::event (this=0x372b770, ev=0x43aff40) at /usr/src/debug/kdelibs-4.4.1/kdeui/xmlgui/kxmlguiwindow.cpp:131
#39 0x0000003df13aa9dc in QApplicationPrivate::notify_helper (this=0x2129230, receiver=0x372b770, e=0x43aff40) at kernel/qapplication.cpp:4300
#40 0x0000003df13b0aab in QApplication::notify (this=<value optimized out>, receiver=0x372b770, e=0x43aff40) at kernel/qapplication.cpp:4183
#41 0x0000003790406846 in KApplication::notify (this=0x7fff2e794610, receiver=0x372b770, event=0x43aff40) at /usr/src/debug/kdelibs-4.4.1/kdeui/kernel/kapplication.cpp:302
#42 0x000000345335774c in QCoreApplication::notifyInternal (this=0x7fff2e794610, receiver=0x372b770, event=0x43aff40) at kernel/qcoreapplication.cpp:704
#43 0x0000003453358497 in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x20ef780) at kernel/qcoreapplication.h:215
#44 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x20ef780) at kernel/qcoreapplication.cpp:1345
#45 0x000000345337d523 in sendPostedEvents (s=<value optimized out>) at kernel/qcoreapplication.h:220
#46 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#47 0x00000037a9a3920e in g_main_dispatch (context=0x212bd20) at gmain.c:1960
#48 IA__g_main_context_dispatch (context=0x212bd20) at gmain.c:2513
#49 0x00000037a9a3cbf8 in g_main_context_iterate (context=0x212bd20, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2591
#50 0x00000037a9a3cd1a in IA__g_main_context_iteration (context=0x212bd20, may_block=1) at gmain.c:2654
#51 0x000000345337d063 in QEventDispatcherGlib::processEvents (this=0x20ef290, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#52 0x0000003df1449a1e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#53 0x0000003453356192 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#54 0x000000345335645c in QEventLoop::exec (this=0x7fff2e794540, flags=...) at kernel/qeventloop.cpp:201
#55 0x0000003453358749 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#56 0x00000000006f606b in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/digikam-1.1.0/digikam/main.cpp:195
Comment 14 E. Kastelijn 2010-03-21 21:44:24 UTC
Some additional information on my bug report:
kdegraphics-4.4.1-1.fc12.x86_64
digikam-1.1.0-2.fc12.x86_64
kdeedu-4.4.1-4.fc12.x86_64
kdepimlibs-4.4.1-2.fc12.x86_64
lcms-1.19-1.fc12.x86_64
lensfun-0.2.4-1.fc12.x86_64
libexif-0.6.16-4.fc12.x86_64
libgphoto2-2.4.7-2.fc12.x86_64
liblqr-1-0.4.1-1.fc12.x86_64
libusb-0.1.12-22.fc12.x86_64
Comment 15 caulier.gilles 2010-04-04 10:43:41 UTC
digiKam and Kipi-plugins 1.2.0 are out. Please check if crash is still valid there.

Thanks in advance

Gilles Caulier
Comment 16 Jens Lindenmeier 2010-04-10 12:20:10 UTC
Bug is still present in 1.2.

digikam crashes on a picture with 36.678x1.686 size.
The same picture with 32.000x1.471 resolution does not crash!

You can download the picture from here:
http://pub.lindenmeier.com/360Paris.jpg

Tested with digikam 1.2 from gentoo kde overlay on 20-Apr-2010.

Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 0 (LWP 19543)]

Thread 15 (Thread 0x7fd623852910 (LWP 19544)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fd62d44bb99 in QWaitCondition::wait (this=0xc05798, mutex=0xc05790, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00000000006d6f40 in Digikam::ScanController::run (this=0xc05490) at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/digikam/scancontroller.cpp:516
#3  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0xc05490) at thread/qthread_unix.cpp:248
#4  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7fd61bfff910 (LWP 19546)):
#0  0x00007fd62d1bf46b in __pthread_mutex_unlock_usercnt (mutex=0xc52d98, decr=1) at pthread_mutex_unlock.c:77
#1  0x00007fd628b871a0 in g_main_context_iterate (context=0xc52d90, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2903
#2  0x00007fd628b8749e in IA__g_main_context_iteration (context=0xc52d90, may_block=1) at gmain.c:2654
#3  0x00007fd62d567e96 in QEventDispatcherGlib::processEvents (this=0xca0370, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007fd62d53ce12 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 469757952}) at kernel/qeventloop.cpp:149
#5  0x00007fd62d53d1d4 in QEventLoop::exec (this=0x7fd61bfff040, flags={i = 469758048}) at kernel/qeventloop.cpp:201
#6  0x00007fd62d448327 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0xe21640) at thread/qthread_unix.cpp:248
#8  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#9  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7fd61b7fe910 (LWP 19547)):
#0  0x00007fd62b570a66 in *__GI___poll (fds=0xd34e30, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fd628b871c1 in g_main_context_iterate (context=0xc825a0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2904
#2  0x00007fd628b8749e in IA__g_main_context_iteration (context=0xc825a0, may_block=1) at gmain.c:2654
#3  0x00007fd62d567e96 in QEventDispatcherGlib::processEvents (this=0xe5f730, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007fd62d53ce12 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 461365248}) at kernel/qeventloop.cpp:149
#5  0x00007fd62d53d1d4 in QEventLoop::exec (this=0x7fd61b7fe040, flags={i = 461365344}) at kernel/qeventloop.cpp:201
#6  0x00007fd62d448327 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0xc9fb30) at thread/qthread_unix.cpp:248
#8  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#9  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7fd61affd910 (LWP 19548)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fd62d44bb99 in QWaitCondition::wait (this=0xc562d0, mutex=0xc562c8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fd62f523b4c in Digikam::LoadSaveThread::run (this=0xc562b0) at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0xc562b0) at thread/qthread_unix.cpp:248
#4  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fd61a7fc910 (LWP 19549)):
#0  0x00007fd62b570a66 in *__GI___poll (fds=0xcbc4f0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fd628b871c1 in g_main_context_iterate (context=0xc29fc0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2904
#2  0x00007fd628b8749e in IA__g_main_context_iteration (context=0xc29fc0, may_block=1) at gmain.c:2654
#3  0x00007fd62d567e96 in QEventDispatcherGlib::processEvents (this=0xc78480, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007fd62d53ce12 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 444579840}) at kernel/qeventloop.cpp:149
#5  0x00007fd62d53d1d4 in QEventLoop::exec (this=0x7fd61a7fc040, flags={i = 444579936}) at kernel/qeventloop.cpp:201
#6  0x00007fd62d448327 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0xcaf830) at thread/qthread_unix.cpp:248
#8  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#9  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fd619ffb910 (LWP 19550)):
#0  timerSourcePrepare (source=0x7fd61c01f9e0, timeout=0x7fd619ffaeb4) at kernel/qeventdispatcher_glib.cpp:159
#1  0x00007fd628b86c42 in IA__g_main_context_prepare (context=0x7fd61c0556d0, priority=0x7fd619ffaf34) at gmain.c:2280
#2  0x00007fd628b86fd9 in g_main_context_iterate (context=0x7fd61c0556d0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2571
#3  0x00007fd628b8749e in IA__g_main_context_iteration (context=0x7fd61c0556d0, may_block=1) at gmain.c:2654
#4  0x00007fd62d567e96 in QEventDispatcherGlib::processEvents (this=0x7fd61c075bd0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#5  0x00007fd62d53ce12 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 436187136}) at kernel/qeventloop.cpp:149
#6  0x00007fd62d53d1d4 in QEventLoop::exec (this=0x7fd619ffb040, flags={i = 436187232}) at kernel/qeventloop.cpp:201
#7  0x00007fd62d448327 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0xd080c0) at thread/qthread_unix.cpp:248
#9  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fd610f1a910 (LWP 19551)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:220
#1  0x00007fd613b65181 in metronom_sync_loop (this=0xfaad80) at metronom.c:851
#2  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#3  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7fd60fade910 (LWP 19552)):
#0  0x00007fd62b572f42 in select () from /lib/libc.so.6
#1  0x00007fd613b8b0ec in xine_usec_sleep (usec=<value optimized out>) at utils.c:481
#2  0x00007fd613b71b75 in video_out_loop (this_gen=<value optimized out>) at video_out.c:1246
#3  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#4  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fd60f2dd910 (LWP 19553)):
#0  0x00007fd62b570a66 in *__GI___poll (fds=0xfb2550, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fd628b871c1 in g_main_context_iterate (context=0xfb1d50, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2904
#2  0x00007fd628b8749e in IA__g_main_context_iteration (context=0xfb1d50, may_block=1) at gmain.c:2654
#3  0x00007fd62d567e96 in QEventDispatcherGlib::processEvents (this=0xfb1c60, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007fd62d53ce12 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 254660528}) at kernel/qeventloop.cpp:149
#5  0x00007fd62d53d1d4 in QEventLoop::exec (this=0x7fd60f2dcff0, flags={i = 254660624}) at kernel/qeventloop.cpp:201
#6  0x00007fd62d448327 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fd613dbe36c in Phonon::Xine::XineThread::run (this=0xfb16c0) at /var/tmp/portage/media-sound/phonon-4.3.80-r1/work/phonon-4.3.80/xine/xinethread.cpp:143
#8  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0xfb16c0) at thread/qthread_unix.cpp:248
#9  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fd60e8d2910 (LWP 19556)):
#0  0x00007fd62b570a66 in *__GI___poll (fds=0x7fd60e8d1f90, nfds=1, timeout=333) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fd60e8d7a98 in ao_alsa_handle_event_thread (data=<value optimized out>) at audio_alsa_out.c:150
#2  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#3  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fd60e0d1910 (LWP 19557)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fd613b73330 in fifo_peek_int (fifo=0x14171d0, blocking=1) at audio_out.c:348
#2  0x00007fd613b74d0c in ao_loop (this_gen=<value optimized out>) at audio_out.c:388
#3  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#4  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fd60d7b8910 (LWP 19558)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fd62d44bb99 in QWaitCondition::wait (this=0x18de010, mutex=0x18de008, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fd62f523b4c in Digikam::LoadSaveThread::run (this=0x18ddff0) at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0x18ddff0) at thread/qthread_unix.cpp:248
#4  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fd602399910 (LWP 19578)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fd62d44bb99 in QWaitCondition::wait (this=0x1436f50, mutex=0x1436f48, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fd62f523b4c in Digikam::LoadSaveThread::run (this=0x1436f30) at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0x1436f30) at thread/qthread_unix.cpp:248
#4  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fd601b98910 (LWP 19579)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fd62d44bb99 in QWaitCondition::wait (this=0x1bf1d90, mutex=0x1bf1d88, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fd62f523b4c in Digikam::LoadSaveThread::run (this=0x1bf1d70) at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007fd62d44ad15 in QThreadPrivate::start (arg=0x1bf1d70) at thread/qthread_unix.cpp:248
#4  0x00007fd62d1bc300 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007fd62b579bbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fd63205d740 (LWP 19543)):
[KCrash Handler]
#5  Digikam::DImgScale::dimgScaleAARGB (isi=0x7fd5f2cba548, dest=0x7, dxx=0, dyy=<value optimized out>, dx=<value optimized out>, dy=<value optimized out>, dw=128, dh=35, dow=<value optimized out>, 
    sow=<value optimized out>) at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/libs/dimg/dimgscale.cpp:1211
#6  0x00007fd62f3e4515 in Digikam::DImg::smoothScaleSection (this=<value optimized out>, sx=0, sy=0, sw=6009, sh=<value optimized out>, dw=128, dh=35)
    at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/libs/dimg/dimgscale.cpp:261
#7  0x00000000006b1ddb in Digikam::ImagePreviewView::paintPreview (this=0x7fd614000a00, pix=0x1b75290, sx=0, sy=0, sw=6009, sh=6009)
    at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/digikam/imagepreviewview.cpp:506
#8  0x00007fd62f5a1248 in Digikam::PreviewWidget::viewportPaintEvent (this=0x7fd614000a00, e=<value optimized out>)
    at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/libs/widgets/common/previewwidget.cpp:566
#9  0x00007fd62fcfe148 in Q3ScrollView::eventFilter (this=0x7fd614000a00, obj=0xcdf820, e=0x7fff66b1c1c0) at widgets/q3scrollview.cpp:1465
#10 0x00007fd62d53d987 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0xcdf820, event=0x7fff66b1c1c0) at kernel/qcoreapplication.cpp:819
#11 0x00007fd62c16648e in QApplicationPrivate::notify_helper (this=0xac0b90, receiver=0xcdf820, e=0x7fff66b1c1c0) at kernel/qapplication.cpp:4296
#12 0x00007fd62c16d7b0 in QApplication::notify (this=0x7fff66b1f960, receiver=0xcdf820, e=0x7fff66b1c1c0) at kernel/qapplication.cpp:4183
#13 0x00007fd62e3d2aaa in KApplication::notify (this=0x7fff66b1f960, receiver=0xcdf820, event=0x7fff66b1c1c0)
    at /var/tmp/portage/kde-base/kdelibs-4.3.5/work/kdelibs-4.3.5/kdeui/kernel/kapplication.cpp:302
#14 0x00007fd62d53e50b in QCoreApplication::notifyInternal (this=0x7fff66b1f960, receiver=0xcdf820, event=0x7fff66b1c1c0) at kernel/qcoreapplication.cpp:704
#15 0x00007fd62c1c4e00 in QWidgetPrivate::drawWidget (this=0xed6300, pdev=0xd585b8, rgn=@0x7fff66b1c540, offset=@0x7fff66b1c530, flags=<value optimized out>, sharedPainter=0x0, backingStore=0xc7ee60)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#16 0x00007fd62c1c581b in QWidgetPrivate::paintSiblingsRecursive (this=0x7fd614000eb0, pdev=0xd585b8, siblings=@0x7fd614000ec8, index=2, rgn=@0x7fff66b1c730, offset=@0x7fff66b1cd90, flags=4, 
    sharedPainter=0x0, backingStore=0xc7ee60) at kernel/qwidget.cpp:5452
#17 0x00007fd62c1c5623 in QWidgetPrivate::paintSiblingsRecursive (this=0x7fd614000eb0, pdev=0xd585b8, siblings=@0x7fd614000ec8, index=5, rgn=@0x7fff66b1c920, offset=@0x7fff66b1cd90, flags=4, 
    sharedPainter=0x0, backingStore=0xc7ee60) at kernel/qwidget.cpp:5439
#18 0x00007fd62c1c5623 in QWidgetPrivate::paintSiblingsRecursive (this=0x7fd614000eb0, pdev=0xd585b8, siblings=@0x7fd614000ec8, index=11, rgn=@0x7fff66b1cda0, offset=@0x7fff66b1cd90, flags=4, 
    sharedPainter=0x0, backingStore=0xc7ee60) at kernel/qwidget.cpp:5439
#19 0x00007fd62c1c488e in QWidgetPrivate::drawWidget (this=0x7fd614000eb0, pdev=0xd585b8, rgn=@0x7fff66b1cda0, offset=@0x7fff66b1cd90, flags=4, sharedPainter=0x0, backingStore=0xc7ee60)
    at kernel/qwidget.cpp:5388
#20 0x00007fd62c1c581b in QWidgetPrivate::paintSiblingsRecursive (this=0xcb0470, pdev=0xd585b8, siblings=@0xcb0488, index=8, rgn=@0x7fff66b1d220, offset=@0x7fff66b1d210, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5452
#21 0x00007fd62c1c488e in QWidgetPrivate::drawWidget (this=0xcb0470, pdev=0xd585b8, rgn=@0x7fff66b1d220, offset=@0x7fff66b1d210, flags=4, sharedPainter=0x0, backingStore=0xc7ee60)
    at kernel/qwidget.cpp:5388
#22 0x00007fd62c1c581b in QWidgetPrivate::paintSiblingsRecursive (this=0xcbf530, pdev=0xd585b8, siblings=@0xcbf548, index=2, rgn=@0x7fff66b1d410, offset=@0x7fff66b1d880, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5452
#23 0x00007fd62c1c5623 in QWidgetPrivate::paintSiblingsRecursive (this=0xcbf530, pdev=0xd585b8, siblings=@0xcbf548, index=3, rgn=@0x7fff66b1d890, offset=@0x7fff66b1d880, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5439
#24 0x00007fd62c1c488e in QWidgetPrivate::drawWidget (this=0xcbf530, pdev=0xd585b8, rgn=@0x7fff66b1d890, offset=@0x7fff66b1d880, flags=4, sharedPainter=0x0, backingStore=0xc7ee60)
    at kernel/qwidget.cpp:5388
#25 0x00007fd62c1c581b in QWidgetPrivate::paintSiblingsRecursive (this=0xecdf70, pdev=0xd585b8, siblings=@0xecdf88, index=1, rgn=@0x7fff66b1dd10, offset=@0x7fff66b1dd00, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5452
#26 0x00007fd62c1c488e in QWidgetPrivate::drawWidget (this=0xecdf70, pdev=0xd585b8, rgn=@0x7fff66b1dd10, offset=@0x7fff66b1dd00, flags=4, sharedPainter=0x0, backingStore=0xc7ee60)
    at kernel/qwidget.cpp:5388
#27 0x00007fd62c1c581b in QWidgetPrivate::paintSiblingsRecursive (this=0xecc230, pdev=0xd585b8, siblings=@0xecc248, index=5, rgn=@0x7fff66b1e190, offset=@0x7fff66b1e180, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5452
#28 0x00007fd62c1c488e in QWidgetPrivate::drawWidget (this=0xecc230, pdev=0xd585b8, rgn=@0x7fff66b1e190, offset=@0x7fff66b1e180, flags=4, sharedPainter=0x0, backingStore=0xc7ee60)
    at kernel/qwidget.cpp:5388
#29 0x00007fd62c1c581b in QWidgetPrivate::paintSiblingsRecursive (this=0xd1ca60, pdev=0xd585b8, siblings=@0xd1ca78, index=11, rgn=@0x7fff66b1e380, offset=@0xc7eea4, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5452
#30 0x00007fd62c1c5623 in QWidgetPrivate::paintSiblingsRecursive (this=0xd1ca60, pdev=0xd585b8, siblings=@0xd1ca78, index=123, rgn=@0x7fff66b1e570, offset=@0xc7eea4, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5439
#31 0x00007fd62c1c5623 in QWidgetPrivate::paintSiblingsRecursive (this=0xd1ca60, pdev=0xd585b8, siblings=@0xd1ca78, index=140, rgn=@0x7fff66b1eb80, offset=@0xc7eea4, flags=4, sharedPainter=0x0, 
    backingStore=0xc7ee60) at kernel/qwidget.cpp:5439
#32 0x00007fd62c1c488e in QWidgetPrivate::drawWidget (this=0xd1ca60, pdev=0xd585b8, rgn=@0x7fff66b1eb80, offset=@0xc7eea4, flags=4, sharedPainter=0x0, backingStore=0xc7ee60)
    at kernel/qwidget.cpp:5388
#33 0x00007fd62c383f88 in QWidgetBackingStore::sync (this=0xc7ee60) at painting/qbackingstore.cpp:1291
#34 0x00007fd62c1b6758 in QWidgetPrivate::syncBackingStore (this=0xd1ca60) at kernel/qwidget.cpp:1672
#35 0x00007fd62c1bd70e in QWidget::event (this=0xcdb1c0, event=0x1b93da0) at kernel/qwidget.cpp:8291
#36 0x00007fd62c56d2eb in QMainWindow::event (this=0xcdb1c0, event=0x1b93da0) at widgets/qmainwindow.cpp:1433
#37 0x00007fd62e4de055 in KXmlGuiWindow::event (this=0x7fd5f2cba548, ev=0x1d884d0) at /var/tmp/portage/kde-base/kdelibs-4.3.5/work/kdelibs-4.3.5/kdeui/xmlgui/kxmlguiwindow.cpp:131
#38 0x00007fd62c1664b5 in QApplicationPrivate::notify_helper (this=0xac0b90, receiver=0xcdb1c0, e=0x1b93da0) at kernel/qapplication.cpp:4300
#39 0x00007fd62c16d7b0 in QApplication::notify (this=0x7fff66b1f960, receiver=0xcdb1c0, e=0x1b93da0) at kernel/qapplication.cpp:4183
#40 0x00007fd62e3d2aaa in KApplication::notify (this=0x7fff66b1f960, receiver=0xcdb1c0, event=0x1b93da0)
    at /var/tmp/portage/kde-base/kdelibs-4.3.5/work/kdelibs-4.3.5/kdeui/kernel/kapplication.cpp:302
#41 0x00007fd62d53e50b in QCoreApplication::notifyInternal (this=0x7fff66b1f960, receiver=0xcdb1c0, event=0x1b93da0) at kernel/qcoreapplication.cpp:704
#42 0x00007fd62d53f3fb in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xaa8d80) at kernel/qcoreapplication.h:215
#43 0x00007fd62d568333 in postEventSourceDispatch (s=<value optimized out>) at kernel/qcoreapplication.h:220
#44 0x00007fd628b83c49 in IA__g_main_context_dispatch (context=0xac2d40) at gmain.c:1960
#45 0x00007fd628b872e8 in g_main_context_iterate (context=0xac2d40, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2591
#46 0x00007fd628b8749e in IA__g_main_context_iteration (context=0xac2d40, may_block=1) at gmain.c:2654
#47 0x00007fd62d567e7c in QEventDispatcherGlib::processEvents (this=0xac0b50, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#48 0x00007fd62c216568 in QGuiEventDispatcherGlib::processEvents (this=0x7fd5f2cba548, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#49 0x00007fd62d53ce12 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1722939456}) at kernel/qeventloop.cpp:149
#50 0x00007fd62d53d1d4 in QEventLoop::exec (this=0x7fff66b1f880, flags={i = 1722939536}) at kernel/qeventloop.cpp:201
#51 0x00007fd62d53f666 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#52 0x000000000077662a in main (argc=1, argv=0x7fff66b20868) at /var/tmp/portage/media-gfx/digikam-1.2.0/work/digikam-1.2.0/digikam/main.cpp:193
Comment 17 Marcel Wiesweg 2010-06-12 16:00:08 UTC
*** Bug 241536 has been marked as a duplicate of this bug. ***
Comment 18 Jens Wilmer 2010-07-08 14:35:41 UTC
Created attachment 48689 [details]
New crash information added by DrKonqi

reproducible crash when rebuilding fingerprints. There are corrupted Images due to an ubuntu kernel failure silently corrupting the raid until all backups where affected
Comment 19 Johannes Wienke 2010-08-02 10:13:30 UTC
*** Bug 246488 has been marked as a duplicate of this bug. ***
Comment 20 Johannes Wienke 2010-08-02 12:54:57 UTC
*** Bug 246500 has been marked as a duplicate of this bug. ***
Comment 21 Johannes Wienke 2010-08-02 12:56:14 UTC
We really need to get these scaling crashes fixed. I've increased the priority.
Comment 22 Johannes Wienke 2010-08-03 21:29:52 UTC
*** Bug 246635 has been marked as a duplicate of this bug. ***
Comment 23 caulier.gilles 2010-08-17 11:12:27 UTC
Using : http://pub.lindenmeier.com/360Paris.jpg

Loading to showfoto and swith on Fit To Screen zoom option crash the program :

#0  0xb7be24a4 in Digikam::DImgScale::dimgScaleAARGB (isi=0x91b9e38, dest=0x93dbbf8, dxx=0, dyy=0, dx=0, dy=0, dw=128, dh=
    35, dow=128, sow=36678) at /home/gilles/Documents/Devel/SVN/trunk/graphics/digikam/libs/dimg/dimgscale.cpp:1211
#1  0xb7bdeea4 in Digikam::DImg::smoothScaleSection (this=0x81f0004, sx=0, sy=0, sw=6153, sh=1686, dw=128, dh=35)
    at /home/gilles/Documents/Devel/SVN/trunk/graphics/digikam/libs/dimg/dimgscale.cpp:261
#2  0xb7e6f18b in Digikam::DImgInterface::paintOnDevice (this=0x82119a0, p=0x849cb28, sx=0, sy=0, sw=6153, sh=6153, dx=0, dy=
    0, dw=128, dh=128)
    at /home/gilles/Documents/Devel/SVN/trunk/graphics/digikam/utilities/imageeditor/canvas/dimginterface.cpp:687
#3  0xb7e7816c in Digikam::Canvas::paintViewport (this=0x8260890, er=..., antialias=true)
    at /home/gilles/Documents/Devel/SVN/trunk/graphics/digikam/utilities/imageeditor/canvas/canvas.cpp:647
#4  0xb7e7719c in Digikam::Canvas::viewportPaintEvent (this=0x8260890, e=0xbfffc3d4)

The image is very large. It's a panoramic view. I suspect a rounding problem there when scaling down is processed.

Gilles Caulier
Comment 24 Marcel Wiesweg 2010-09-01 16:35:41 UTC
*** Bug 249605 has been marked as a duplicate of this bug. ***
Comment 25 Daniel Scharrer 2010-09-03 20:55:16 UTC
Created attachment 51288 [details]
fix overflow in DImgScale::dimgCalc*Points functions for large images

The dimgCalcYPoints dimgCalcYPoints16 dimgCalcXPoints and dimgCalcApoints functions in libdigikamcore.so (digikam/libs/dimg/dimgscale.cpp) incorrectly assume that the width and height can be represented by a (signed) int after being shifted 16 bits to the left. On x86 and amd64 platforms this only leaves 15 Bits: larger width/height values will be shifted into the sign bit. Hence for images with a width or height greater than 1<<15=32768 the increment will be negative and hell breaks loose.

This can however be fixed by using a 64-bit type for the temporary values (see attached patch). The attached patch shouldn't impact performance on 32-bit platforms too much, as the changes only affect loops over the image (section) width OR over the height, but not nested loops over all pixels.

With a patched libdigikamcore.so, showFoto will not crash while scaling down large images to display them.
Comment 26 caulier.gilles 2010-09-03 20:58:03 UTC
Thanks a LOTS Daniel for your patch. It's very appreciate. 

Marcel, can you take a look to this patch.

I will take a look too this week end. If it fine for you, i will apply it to svn.

Gilles Caulier
Comment 27 Daniel Scharrer 2010-09-03 21:03:12 UTC
No problem. I forgot to mention that the "scaling up" part of DImgScale::dimgCalcApoints still looks fishy to me, especially the "(val >> 8) - ((val >> 8) & 0xffffff00)" part. Someone who understands the code better than me should probably have a look at that.
Comment 28 caulier.gilles 2010-09-03 21:07:04 UTC
The code have been taken from imlib2 project few year ago by an old digiKam developper. Nobody in the team understand properly this code.

I can found the original source code if you want

Gilles
Comment 29 caulier.gilles 2010-09-03 21:19:16 UTC
Daniel,

Current code of scaled algorithm from imlib2 is there :

http://trac.enlightenment.org/e/browser/trunk/imlib2/src/lib/scale.c

Code have been adapted to support 16 bits color depth images.

Gilles Caulier
Comment 30 Daniel Scharrer 2010-09-03 22:03:56 UTC
Ok, I'll try to understand the code some more.

Meanwhile, the patch I sent definitely fixes the crash when scaling DOWN large images. (The imlib2 version still seems to have the same problem.)
Comment 31 Marcel Wiesweg 2010-09-04 12:25:39 UTC
Awesome, thanks a lot.

> No problem. I forgot to mention that the "scaling up" part of
> DImgScale::dimgCalcApoints still looks fishy to me, especially the "(val >> 8)
> - ((val >> 8) & 0xffffff00)" part. 
> Someone who understands the code better than
> me should probably have a look at that.

By now, you are officially declared the one and only "he who understands dimgscale.cpp"
Comment 32 caulier.gilles 2010-09-05 19:47:04 UTC
SVN commit 1171917 by cgilles:

apply patch #51288 from Daniel Scharrer to avoid crash in DImg scale with panorama images
BUGS: 207710


 M  +12 -11    dimgscale.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1171917
Comment 33 caulier.gilles 2010-09-13 11:36:37 UTC
*** Bug 218256 has been marked as a duplicate of this bug. ***
Comment 34 caulier.gilles 2010-09-21 15:19:45 UTC
*** Bug 251932 has been marked as a duplicate of this bug. ***
Comment 35 caulier.gilles 2010-10-06 13:25:51 UTC
*** Bug 253382 has been marked as a duplicate of this bug. ***
Comment 36 Christoph Feck 2011-01-23 03:54:34 UTC
*** Bug 264035 has been marked as a duplicate of this bug. ***
Comment 37 caulier.gilles 2011-02-07 12:19:33 UTC
*** Bug 265670 has been marked as a duplicate of this bug. ***
Comment 38 caulier.gilles 2011-06-29 20:07:36 UTC
*** Bug 276770 has been marked as a duplicate of this bug. ***