Bug 229340

Summary: Digikam Crashes When Saving PNG Files, now 1.2.0 also
Product: [Applications] digikam Reporter: Scott <sajmmiller>
Component: Plugin-DImg-PNGAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, giuseppe.vinci, jkopare, kde.org, kde, kovariadam, sajmmiller, tliebscher, uwe.haider
Priority: NOR    
Version: 1.1.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 1.2.0
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Scott 2010-03-04 01:22:12 UTC
Application: digikam (1.1.0)
KDE Platform Version: 4.4.1 (KDE 4.4.1)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-ARCH x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
Digikam immediately crashes when trying to save a file from the editor in .png format. Same behavior when the file opened and edited is a .jpg saved as a .png.

The crash can be reproduced every time.

 -- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f67173d47c0 (LWP 2102))]

Thread 13 (Thread 0x7f67015db710 (LWP 2103)):
#0  0x00007f670f91507c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f6711ada11b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00000000006c447b in ?? ()
#3  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#5  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f66fbfff710 (LWP 2104)):
#0  0x00007f670b3f31d8 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#1  0x00007f670b3f3920 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#2  0x00007f670b3f3d50 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f6711bf6c66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007f6711bcc0c2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007f6711bcc49c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007f6711ad6759 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#9  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f66fb7fe710 (LWP 2105)):
#0  0x00007f6710db7483 in poll () from /lib/libc.so.6
#1  0x00007f670b3f3a0c in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#2  0x00007f670b3f3d50 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f6711bf6c66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007f6711bcc0c2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007f6711bcc49c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007f6711ad6759 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#9  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f66faffd710 (LWP 2106)):
#0  0x00007f670f91507c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f6711ada11b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007f67148d39c2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#3  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#5  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f66fa7fc710 (LWP 2107)):
#0  0x00007f6710db7483 in poll () from /lib/libc.so.6
#1  0x00007f670b3f3a0c in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#2  0x00007f670b3f3d50 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f6711bf6c66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007f6711bcc0c2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007f6711bcc49c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007f6711ad6759 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#9  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f66f9ffb710 (LWP 2108)):
#0  0x00007f6710db7483 in poll () from /lib/libc.so.6
#1  0x00007f670b3f3a0c in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#2  0x00007f670b3f3d50 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f6711bf6c66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007f6711bcc0c2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007f6711bcc49c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007f6711ad6759 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#9  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f66f97fa710 (LWP 2109)):
#0  0x00007f670f91507c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f6711ada11b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007f67148d39c2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#3  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#5  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f66f0acc710 (LWP 2111)):
#0  0x00007f670f91507c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f6711ada11b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007f67148d39c2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#3  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#5  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f66edfe1710 (LWP 2118)):
#0  0x00007f670f91507c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f6711ada11b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007f67148d39c2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#3  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#5  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f66e6ffd710 (LWP 2119)):
#0  0x00007f670f91507c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f6711ada11b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007f67148d39c2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#3  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#5  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f66e5ffb710 (LWP 2147)):
[KCrash Handler]
#5  0x00007f6710d6c7c2 in strlen () from /lib/libc.so.6
#6  0x00007f67101899fe in png_set_text_2 () from /usr/lib/libpng14.so.14
#7  0x00007f6710189c29 in png_set_text () from /usr/lib/libpng14.so.14
#8  0x00007f67148218f2 in Digikam::PNGLoader::save(QString const&, Digikam::DImgLoaderObserver*) () from /usr/lib/libdigikamcore.so.1
#9  0x00007f67148122dc in Digikam::DImg::save(QString const&, QString const&, Digikam::DImgLoaderObserver*) () from /usr/lib/libdigikamcore.so.1
#10 0x00007f67148e5b8e in Digikam::SavingTask::execute() () from /usr/lib/libdigikamcore.so.1
#11 0x00007f67148d398c in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#12 0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#13 0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#14 0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#15 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f66e67fc710 (LWP 2148)):
#0  0x00007f670f91507c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f6711ada11b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007f67148d39c2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#3  0x00007f6711ad9155 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f670f91081a in start_thread () from /lib/libpthread.so.0
#5  0x00007f6710dbfc7d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f67173d47c0 (LWP 2102)):
#0  0x00007f6710db7483 in poll () from /lib/libc.so.6
#1  0x00007f67099fc80a in _xcb_conn_wait () from /usr/lib/libxcb.so.1
#2  0x00007f67099fcda7 in _xcb_out_send () from /usr/lib/libxcb.so.1
#3  0x00007f67099fd055 in xcb_writev () from /usr/lib/libxcb.so.1
#4  0x00007f670fe96dca in _XSend () from /usr/lib/libX11.so.6
#5  0x00007f670fe96f09 in _XReply () from /usr/lib/libX11.so.6
#6  0x00007f670fe734d5 in XGetImage () from /usr/lib/libX11.so.6
#7  0x00007f6712864350 in QX11PixmapData::toImage() const () from /usr/lib/libQtGui.so.4
#8  0x00007f671284c320 in QPixmap::toImage() const () from /usr/lib/libQtGui.so.4
#9  0x00007f6712a64906 in QCommonStyle::generatedIconPixmap(QIcon::Mode, QPixmap const&, QStyleOption const*) const () from /usr/lib/libQtGui.so.4
#10 0x00007f671346b119 in KStyle::generatedIconPixmap(QIcon::Mode, QPixmap const&, QStyleOption const*) const () from /usr/lib/libkdeui.so.5
#11 0x00007f6712b6ad43 in QLabel::paintEvent(QPaintEvent*) () from /usr/lib/libQtGui.so.4
#12 0x00007f67127c1592 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#13 0x00007f6712b65f86 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4
#14 0x00007f671276b5ec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#15 0x00007f6712771bdb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0x00007f671345ed36 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#17 0x00007f6711bcd79c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#18 0x00007f67127c9bfd in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#19 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#20 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#21 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#22 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#23 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#24 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#25 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#26 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#27 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#28 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#29 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#30 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#31 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#32 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#33 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#34 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#35 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#36 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#37 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#38 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#39 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#40 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#41 0x00007f67127ca898 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#42 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#43 0x00007f67127ca6c9 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/libQtGui.so.4
#44 0x00007f67127c995a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#45 0x00007f6712981fb5 in ?? () from /usr/lib/libQtGui.so.4
#46 0x00007f67127baf90 in QWidgetPrivate::syncBackingStore() () from /usr/lib/libQtGui.so.4
#47 0x00007f67127c1c95 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#48 0x00007f6712b817bb in QMainWindow::event(QEvent*) () from /usr/lib/libQtGui.so.4
#49 0x00007f6713575343 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5
#50 0x00007f671276b5ec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#51 0x00007f6712771bdb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#52 0x00007f671345ed36 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#53 0x00007f6711bcd79c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#54 0x00007f6711bcff17 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#55 0x00007f6711bf70d3 in ?? () from /usr/lib/libQtCore.so.4
#56 0x00007f670b3f026e in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#57 0x00007f670b3f3c28 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#58 0x00007f670b3f3d50 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#59 0x00007f6711bf6c13 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#60 0x00007f6712819d6e in ?? () from /usr/lib/libQtGui.so.4
#61 0x00007f6711bcc0c2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#62 0x00007f6711bcc49c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#63 0x00007f6711bd01db in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#64 0x00000000007663bb in ?? ()
#65 0x00007f6710d0fb6d in __libc_start_main () from /lib/libc.so.6
#66 0x000000000046c7f9 in _start ()

Reported using DrKonqi
Comment 1 caulier.gilles 2010-03-04 10:33:13 UTC
Bactrace is not suitable. Can you run digiKam in gdb as explained there :

http://www.digikam.org/drupal/contrib

digiKam debug package need to be installed too...

Gilles Caulier
Comment 2 Scott 2010-03-04 16:01:26 UTC
(In reply to comment #1)
> Bactrace is not suitable. Can you run digiKam in gdb...

Followed the linked instructions you sent and ran with gdb -- hopefully this is what you need? Thank you!

digikam(2154)/KEXIV2 KExiv2Iface::KExiv2::setImagePreview: JPEG image preview size: ( 1280  x  960 ) pixels -  195027  bytes
digikam(2154)/digikam (core) Digikam::PNGLoader::save: DImg quality level:  1
digikam(2154)/digikam (core) Digikam::PNGLoader::save: PNG compression level:  9

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffce37d710 (LWP 2201)]
0x00007ffff194d7c2 in strlen () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff194d7c2 in strlen () from /lib/libc.so.6
#1  0x00007ffff0d6a9fe in png_set_text_2 () from /usr/lib/libpng14.so.14
#2  0x00007ffff0d6ac29 in png_set_text () from /usr/lib/libpng14.so.14
#3  0x00007ffff54028f2 in Digikam::PNGLoader::save(QString const&, Digikam::DImgLoaderObserver*) ()
   from /usr/lib/libdigikamcore.so.1
#4  0x00007ffff53f32dc in Digikam::DImg::save(QString const&, QString const&, Digikam::DImgLoaderObserver*) ()
   from /usr/lib/libdigikamcore.so.1
#5  0x00007ffff54c6b8e in Digikam::SavingTask::execute() () from /usr/lib/libdigikamcore.so.1
#6  0x00007ffff54b498c in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#7  0x00007ffff26ba155 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007ffff04f181a in start_thread () from /lib/libpthread.so.0
#9  0x00007ffff19a0c7d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()
(gdb)
Comment 3 caulier.gilles 2010-03-04 17:51:42 UTC
trace said a crash into libpng 1.4. I remember a patch applied to current code from svn (next digiKam 1.2.0) into PNG image loader.

I recommend to checkout code from svn trunk and try again.

Gilles Caulier
Comment 4 Scott 2010-03-04 18:51:58 UTC
Thanks Gilles,

I tested for this bug running Digikam 1.1.0 on my Gentoo system running libpng 1.2.40 and everything works fine. So, the problem would seem to be related to the newer libpng version 1.4.0 on my Arch system.

I'll try the Digikam SVN version with libpng 1.4.0 on my Arch system as you suggest.
Comment 5 Scott 2010-03-05 20:07:14 UTC
(In reply to comment #3)
> trace said a crash into libpng 1.4. I remember a patch applied to current code
> from svn (next digiKam 1.2.0) into PNG image loader.
> 
> I recommend to checkout code from svn trunk and try again.
> 
> Gilles Caulier

Thank you Gilles. I built the SVN version as you suggested and the problem is fixed as you suspected. I appreciate your help. Now I can enjoy all the greatness that Digikam 1.1.0 has to offer. :) I'll go ahead and change the status to resolved.
Comment 6 Marcel Wiesweg 2010-03-06 14:42:37 UTC
*** Bug 229412 has been marked as a duplicate of this bug. ***
Comment 7 François Rey 2010-03-28 14:52:41 UTC
Well I'm still having this bug with latest svn code and saving as png in editor.
I'm on arch linux 64 bit, kde 4.4.1 (kdemod).
Installed digikam from svn today.
libpng 1.4.1 is installed.
If anyone tells me how to compile the arch package digikam-svn with debug symbols i'd be happy to provide more info.
Comment 8 François Rey 2010-03-28 22:00:05 UTC
Found a way to compile with debugfull.
However i'm now unable to reproduce the bug...
Will report here if I get it.
Comment 9 Scott 2010-04-02 19:35:59 UTC
I think this bug needs to be re-opened. I have it again using the Arch Linux Digikam 1.2.0 package.

I still have SVN build 1.2.0 rev 1099466 from one month ago on my system and it still works fine. So, it would appear that the bug has been reintroduced since then.

Do you want gdb output again?
Comment 10 François Rey 2010-04-02 19:55:18 UTC
Scott:
Replace extra/digikam with aur/digikam-svn and see if the bug is there again.
A few days ago I had the bug with aur/digikam-svn.
I then tried to compile with debug flag and the bug disappeared!
Compiling with debug is easily done by editing PKGBUILD and adding -DCMAKE_BUILD_TYPE=debugfull to cmake
At least I can continue my work this way and if a bug appears I'm able to submit a proper crash info.
Comment 11 Scott 2010-04-02 20:39:29 UTC
Following is the gdb backtrace running Arch Linux extra/digikam 1.2.0-2. I have not tried aur/digikam-svn yet, but will do so. (Thanks François). 

----------bt
digikam(8174)/digikam (core) Digikam::FileSaveOptionsBox::discoverFormat: Using fallback format  0 

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffcbfff710 (LWP 8217)]
0x00007ffff1861842 in strlen () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff1861842 in strlen () from /lib/libc.so.6
#1  0x00007ffff0c7ea04 in png_set_text_2 () from /usr/lib/libpng14.so.14
#2  0x00007ffff0c7ec19 in png_set_text () from /usr/lib/libpng14.so.14
#3  0x00007ffff5344042 in Digikam::PNGLoader::save(QString const&, Digikam::DImgLoaderObserver*) ()
   from /usr/lib/libdigikamcore.so.1
#4  0x00007ffff5338aaf in Digikam::DImg::save(QString const&, QString const&, Digikam::DImgLoaderObserver*) ()
   from /usr/lib/libdigikamcore.so.1
#5  0x00007ffff54830ee in Digikam::SavingTask::execute() () from /usr/lib/libdigikamcore.so.1
#6  0x00007ffff5470b3c in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#7  0x00007ffff25d2155 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007ffff040588a in start_thread () from /lib/libpthread.so.0
#9  0x00007ffff18b49ed in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()
(gdb)
Comment 12 Scott 2010-04-02 22:49:42 UTC
François and All,

The Arch Linux aur/digikam-svn version is older than the SVN version I had manually compiled a month ago, so I decided not to compile it.

Instead, I compiled the /extra/digikam 1.2.0 source (should be same source that was used to build problematic Arch binary package) using Arch abs with -DCMAKE_BUILD_TYPE=debugfull

Just like François describes, the bug disappears when compiled with full debugging enabled.

Now I'm thinking that I need to recompile the same source with debugging symbols turned off again to see if the bug went away because of compilation on my system or because of the debug settings.
Comment 13 François Rey 2010-04-02 23:00:38 UTC
What do you mean by the aur package being old.
From what I can see it's checking out the source from svn:
http://aur.archlinux.org/packages/digikam-svn/digikam-svn/PKGBUILD
Don't you confuse with the time the PKGBUILD was last updated?

To get back to this bug: is it only back in Arch linux? Are there other distros affected?
Comment 14 Scott 2010-04-02 23:32:04 UTC
(In reply to comment #13)
> What do you mean by the aur package being old.
> From what I can see it's checking out the source from svn:
> http://aur.archlinux.org/packages/digikam-svn/digikam-svn/PKGBUILD
> Don't you confuse with the time the PKGBUILD was last updated?

Yes, you are correct. My mistake--sorry. I'm new to Arch Linux and am still trying to learn how things work.
> 
> To get back to this bug: is it only back in Arch linux? Are there other distros
> affected?

I don't know. If no one else can confirm the bug in another distro, I have an old computer with Gentoo installed which I could try to update and compile digikam in an attempt to reproduce the bug. Let me know if you want me to try.

On my Arch system I've now compiled abs /extra/digikam 1.2.0 with and without debugging:

With -DCMAKE_BUILD_TYPE=debugfull (Cannot reproduce bug)
Without -DCMAKE_BUILD_TYPE=debugfull (Bug always reproducible)
Comment 15 François Rey 2010-04-02 23:57:30 UTC
>With -DCMAKE_BUILD_TYPE=debugfull (Cannot reproduce bug)
>Without -DCMAKE_BUILD_TYPE=debugfull (Bug always reproducible)
That makes it kind of hard to track then!

>Let me know if you want me to try.
Some kde developer will have to decide, I'm just a user like you.
If no other distro is affected we may want to report this against Arch.
Comment 16 Scott 2010-04-03 01:49:57 UTC
Maybe I got a decent backtrace this time showing debugging symbols enabled using the following method outlined in the Arch Wiki here:

http://wiki.archlinux.org/index.php/Debug_-_Getting_Traces

This trace was obtained from source compiled using ABS /extra/digikam 1.2.0

--------------

digikam(7193)/digikam (core) Digikam::FileSaveOptionsBox::discoverFormat: Using fallback format  0 

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd0b3d710 (LWP 7238)]
0x00007ffff1861842 in strlen () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff1861842 in strlen () from /lib/libc.so.6
#1  0x00007ffff0c7ea04 in png_set_text_2 () from /usr/lib/libpng14.so.14
#2  0x00007ffff0c7ec19 in png_set_text () from /usr/lib/libpng14.so.14
#3  0x00007ffff5344042 in Digikam::PNGLoader::save (this=<value optimized out>, filePath=<value optimized out>, 
    observer=<value optimized out>) at /extra/abs/digikam/src/digikam-1.2.0/libs/dimg/loaders/pngloader.cpp:797
#4  0x00007ffff5338aaf in Digikam::DImg::save (this=0x49f86e8, filePath=..., format=<value optimized out>, observer=0x49f86d0)
    at /extra/abs/digikam/src/digikam-1.2.0/libs/dimg/dimg.cpp:578
#5  0x00007ffff5482ffe in Digikam::SavingTask::execute (this=0x49f86c0)
    at /extra/abs/digikam/src/digikam-1.2.0/libs/threadimageio/loadsavetask.cpp:418
#6  0x00007ffff5470a4c in Digikam::LoadSaveThread::run (this=0x457e040)
    at /extra/abs/digikam/src/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:134
#7  0x00007ffff25d2155 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007ffff040588a in start_thread () from /lib/libpthread.so.0
#9  0x00007ffff18b49ed in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()
(gdb)
Comment 17 Marcel Wiesweg 2010-04-03 14:33:50 UTC
#ifdef PNG_iTXt_SUPPORTED

                // TODO : this code is not yet tested. It require libpng 1.3.0.

                case(DImg::COM):
                {
                    png_text comment;
                    comment.key         = const_cast<char*> ("Comment");
                    comment.text        = ba.data();
                    comment.itxt_length = ba.size();
                    comment.compression = PNG_ITXT_COMPRESSION_zTXt;
                    png_set_text(png_ptr, info_ptr, &(comment), 1);

                    kDebug() << "Writing digiKam comment into iTXt PNG chunk : " << ba;
                    break;
                }
#endif

What is your libpng version?
Comment 18 Scott 2010-04-03 15:24:00 UTC
(In reply to comment #17)

> What is your libpng version?

Currently 1.4.1
Was 1.4.0 when I first encountered the bug last month.
Comment 19 François Rey 2010-04-03 15:25:26 UTC
Same version here 1.4.1
Comment 20 Marcel Wiesweg 2010-04-03 15:49:30 UTC
Ok, this is the problem. I cannot test this case because I cannot easily upgrade libpng.
One thing to try is replacing PNG_ITXT_COMPRESSION_zTXt with PNG_ITXT_COMPRESSION_NONE
If this doesn't help I will comment out this section until someone finds the problem.
Comment 21 caulier.gilles 2010-04-03 15:50:43 UTC
Marcel,

Yes, i written this code embeded lead digiKam comments as UTF8 string png chunk. Code have been written when libPNG 1.2.x been in production. In this version libpng do not suport utf8 text chunk. Has now libPNG 1.4.x is out, this code is used as well.

Gilles Caulier
Comment 22 François Rey 2010-04-03 17:36:07 UTC
So would the solution be a compiler flag that controls such feature?
Then each distro would be able to compile against their version of libpng.
Arch is 1.4.1, Ubuntu 1.3, etc...

Also, why does the bug disappear when digikam is compiled with debugfull?
Are the resulting PNG safe to use?
Comment 23 Scott 2010-04-03 23:24:34 UTC
(In reply to comment #20)
> Ok, this is the problem. I cannot test this case because I cannot easily
> upgrade libpng.

I'm also wondering why -DCMAKE_BUILD_TYPE=debugfull eliminates the bug. Does it cause the problematic section of code to be skipped somehow?

> One thing to try is replacing PNG_ITXT_COMPRESSION_zTXt with
> PNG_ITXT_COMPRESSION_NONE
> If this doesn't help I will comment out this section until someone finds the
> problem.

I searched for the code string you referenced and found it in pngloader.cpp. I guess I should have been able to figure that out from the trace...this is learning experience for me. Anyway, I replaced PNG_ITXT_COMPRESSION_zTXt with PNG_ITXT_COMPRESSION_NONE, recompiled, and the bug remains.
Comment 24 Scott 2010-04-04 01:43:53 UTC
I commented out the problematic code in pngloader.cpp (listed in comment #17 above) and everything seems to work fine. 

For future reference, I'd still be very interested to know why -DCMAKE_BUILD_TYPE=debugfull bypassed the bug if anyone has the time to explain.

Thanks everyone!
Comment 25 Marcel Wiesweg 2010-04-04 15:50:21 UTC
Gilles, is it ok to comment out this part? Or does any developer have libpng 1.4 for testing?
Comment 26 caulier.gilles 2010-04-04 16:17:12 UTC
yes, it's ok.

In fact Exiv2 will write UTF8 comments to dedicated png text chunk.

Gilles
Comment 27 Johannes Wienke 2010-04-04 21:05:55 UTC
I got 1.4 running but I didn't get a crash so far.
Comment 28 Marcel Wiesweg 2010-04-04 23:34:49 UTC
SVN commit 1111120 by mwiesweg:

Comment out section causing crash

BUG:  229340

 M  +3 -2      pngloader.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1111120
Comment 29 caulier.gilles 2010-04-05 12:55:33 UTC
Nicolas,

Another little patch which can be applied against digiKam 1.2.0 tarball

Gilles Caulier
Comment 30 Johannes Wienke 2010-08-15 11:40:03 UTC
*** Bug 247908 has been marked as a duplicate of this bug. ***
Comment 31 Johannes Wienke 2010-08-15 11:42:44 UTC
*** Bug 231631 has been marked as a duplicate of this bug. ***
Comment 32 Giuseppe Vinci 2010-09-26 18:50:21 UTC
Created attachment 52006 [details]
New crash information added by DrKonqi

Crash happned as I tried to save resized part of picture
Comment 33 caulier.gilles 2010-11-08 07:27:14 UTC
*** Bug 256330 has been marked as a duplicate of this bug. ***