[Digikam-devel] [Bug 249605] New: digiKam and showFoto crash while scaling down large image for display

Daniel Scharrer dscharrer at gmail.com
Tue Aug 31 11:31:32 BST 2010


https://bugs.kde.org/show_bug.cgi?id=249605

           Summary: digiKam and showFoto crash while scaling down large
                    image for display
           Product: showfoto
           Version: 1.2.0
          Platform: Gentoo Packages
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
        AssignedTo: digikam-devel at kde.org
        ReportedBy: dscharrer at gmail.com


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

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Digikam-devel mailing list