Bug 249605 - digiKam and showFoto crash while scaling down large image for display
Summary: digiKam and showFoto crash while scaling down large image for display
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Showfoto-Usability (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-31 12:31 UTC by Daniel Scharrer
Modified: 2022-02-05 04:33 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 7.6.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Scharrer 2010-08-31 12:31:30 UTC
Application: showfoto (1.2.0)
KDE Platform Version: 4.4.5 (KDE 4.4.5)
Qt Version: 4.6.3
Operating System: Linux 2.6.35-gentoo-r5 x86_64
Distribution: "Gentoo Base System release 2.0.1"

-- Information about the crash:
When opening a 45096x5347 (241.13Mpx) pixel file  and zooming out (e.g. by enabling "fit to window") showFoto crashes. The image can be displayed without problems when zoomed in 100%. Opening the image in digiKam also produces a crash with a similar backtrace.

Note that the image's width is greater greater than what can be represented by a signed (16-bit) short.

I've uploaded a 1.8 MiB (JPEG quality=0) version of this file that reproduces the crash to http://www.stud.uni-karlsruhe.de/~uocet/t2.jpg
WARNING: this IS a 241 Megapixel file! showFoto will need about a gigabyte of RAM

The crash can be reproduced every time.

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

Thread 5 (Thread 0x7f57bf8f2710 (LWP 5000)):
#0  0x00007f57d7dab2bc in pthread_cond_wait () from /lib/libpthread.so.0
#1  0x00007f57d80370cb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f57da74e7e4 in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#3  0x00007f57d80360d5 in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f57d7da6914 in start_thread () from /lib/libpthread.so.0
#5  0x00007f57d616527d in clone () from /lib/libc.so.6

Thread 4 (Thread 0x7f57bf0f1710 (LWP 5001)):
#0  0x00007f57d7dab2bc in pthread_cond_wait () from /lib/libpthread.so.0
#1  0x00007f57d80370cb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f57da74e7e4 in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#3  0x00007f57d80360d5 in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f57d7da6914 in start_thread () from /lib/libpthread.so.0
#5  0x00007f57d616527d in clone () from /lib/libc.so.6

Thread 3 (Thread 0x7f57bcdbe710 (LWP 5002)):
#0  0x00007f57d7dab2bc in pthread_cond_wait () from /lib/libpthread.so.0
#1  0x00007f57d80370cb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f57da74e7e4 in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#3  0x00007f57d80360d5 in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f57d7da6914 in start_thread () from /lib/libpthread.so.0
#5  0x00007f57d616527d in clone () from /lib/libc.so.6

Thread 2 (Thread 0x7f57b57fa710 (LWP 5009)):
#0  0x00007f57d7dab2bc in pthread_cond_wait () from /lib/libpthread.so.0
#1  0x00007f57d80370cb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f57da74e7e4 in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#3  0x00007f57d80360d5 in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f57d7da6914 in start_thread () from /lib/libpthread.so.0
#5  0x00007f57d616527d in clone () from /lib/libc.so.6

Thread 1 (Thread 0x7f57dad367e0 (LWP 4999)):
[KCrash Handler]
#5  0x00007f57da620ccf in Digikam::DImgScale::dimgScaleAARGB(Digikam::DImgScale::__dimg_scale_info*, unsigned int*, int, int, int, int, int, int, int, int) () from /usr/lib64/libdigikamcore.so.1
#6  0x00007f57da624244 in Digikam::DImg::smoothScaleSection(int, int, int, int, int, int) () from /usr/lib64/libdigikamcore.so.1
#7  0x00007f57da866953 in Digikam::DImgInterface::paintOnDevice(QPaintDevice*, int, int, int, int, int, int, int, int, int) () from /usr/lib64/libdigikamcore.so.1
#8  0x00007f57da872807 in Digikam::Canvas::paintViewport(QRect const&, bool) () from /usr/lib64/libdigikamcore.so.1
#9  0x00007f57da872fd4 in Digikam::Canvas::viewportPaintEvent(QPaintEvent*) () from /usr/lib64/libdigikamcore.so.1
#10 0x00007f57d956bf38 in Q3ScrollView::eventFilter(QObject*, QEvent*) () from /usr/lib64/qt4/libQt3Support.so.4
#11 0x00007f57d8122efe in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#12 0x00007f57d6d54bcc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#13 0x00007f57d6d5b1eb in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#14 0x00007f57d8fd9b28 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#15 0x00007f57d8123acb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00007f57d6db323d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
#17 0x00007f57d6db3f48 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/qt4/libQtGui.so.4
#18 0x00007f57d6db2fc0 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
#19 0x00007f57d6db3f48 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/qt4/libQtGui.so.4
#20 0x00007f57d6db2fc0 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
#21 0x00007f57d6db3f48 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/qt4/libQtGui.so.4
#22 0x00007f57d6db2fc0 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
#23 0x00007f57d6db3f48 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/qt4/libQtGui.so.4
#24 0x00007f57d6db2fc0 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007f57d6db3f48 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007f57d6db2fc0 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
#27 0x00007f57d6db3f48 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/qt4/libQtGui.so.4
#28 0x00007f57d6db3d3e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/qt4/libQtGui.so.4
#29 0x00007f57d6db2fc0 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
#30 0x00007f57d6f7085c in QWidgetBackingStore::sync() () from /usr/lib64/qt4/libQtGui.so.4
#31 0x00007f57d6da49d8 in QWidgetPrivate::syncBackingStore() () from /usr/lib64/qt4/libQtGui.so.4
#32 0x00007f57d6dab58a in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#33 0x00007f57d7155e6b in QMainWindow::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#34 0x00007f57d90f1535 in KXmlGuiWindow::event(QEvent*) () from /usr/lib64/libkdeui.so.5
#35 0x00007f57d6d54bec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#36 0x00007f57d6d5b1eb in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#37 0x00007f57d8fd9b28 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#38 0x00007f57d8123acb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#39 0x00007f57d6f6dc3f in sendUpdateRequest(QWidget*, bool) () from /usr/lib64/qt4/libQtGui.so.4
#40 0x00007f57d6f7104e in QWidgetBackingStore::markDirty(QRect const&, QWidget*, bool, bool) () from /usr/lib64/qt4/libQtGui.so.4
#41 0x00007f57d6da7187 in QWidget::repaint(QRect const&) () from /usr/lib64/qt4/libQtGui.so.4
#42 0x00007f57d6da7253 in QWidget::repaint() () from /usr/lib64/qt4/libQtGui.so.4
#43 0x00007f57d70f489d in QAbstractButtonPrivate::click() () from /usr/lib64/qt4/libQtGui.so.4
#44 0x00007f57d70f4aec in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#45 0x00007f57d71be7ca in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#46 0x00007f57d6dab27a in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#47 0x00007f57d6d54bec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#48 0x00007f57d6d5b9bd in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#49 0x00007f57d8fd9b28 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#50 0x00007f57d8123acb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#51 0x00007f57d6d5ab41 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/qt4/libQtGui.so.4
#52 0x00007f57d6ddb303 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib64/qt4/libQtGui.so.4
#53 0x00007f57d6dd9ff9 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#54 0x00007f57d6e03b1a in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtGui.so.4
#55 0x00007f57d199907b in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#56 0x00007f57d199ce08 in g_main_context_iterate () from /usr/lib64/libglib-2.0.so.0
#57 0x00007f57d199cfc2 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#58 0x00007f57d814d05e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#59 0x00007f57d6e03726 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#60 0x00007f57d81223f2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#61 0x00007f57d81227bd in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#62 0x00007f57d81273fb in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#63 0x0000000000439012 in main ()

Reported using DrKonqi
Comment 1 caulier.gilles 2010-08-31 14:33:45 UTC
Install digiKam 1.4.0 and try again...

Gilles Caulier
Comment 2 Marcel Wiesweg 2010-09-01 16:35:41 UTC
unfortunately, known and not yet fixed

*** This bug has been marked as a duplicate of bug 207710 ***
Comment 3 caulier.gilles 2022-01-20 06:43:00 UTC
Fixed with https://bugs.kde.org/show_bug.cgi?id=207710