Bug 242518

Summary: Crash when loading XCF images
Product: [Unmaintained] kdelibs Reporter: David <rastiazul>
Component: kimgioAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR    
Version: 4.4   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description David 2010-06-22 21:16:55 UTC
Application: digikam (1.2.0)
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-21-generic i686
Distribution: Linux Mint 9 Isadora

-- Information about the crash:
I have many fotos in my computer and i was using digikam fine some time ago but now it doesnt open after i upgraded my OS 

The crash can be reproduced every time.

 -- Backtrace:
Application: digiKam (digikam), signal: Aborted
[Current thread is 1 (Thread 0xb7706760 (LWP 12990))]

Thread 2 (Thread 0xb60c2b70 (LWP 12994)):
[KCrash Handler]
#6  0x00802422 in __kernel_vsyscall ()
#7  0x012c5651 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0x012c8a82 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0x04c5352f in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#10 0x04c51465 in ?? () from /usr/lib/libstdc++.so.6
#11 0x04c514a2 in std::terminate() () from /usr/lib/libstdc++.so.6
#12 0x04c515e1 in __cxa_throw () from /usr/lib/libstdc++.so.6
#13 0x04c51c5f in operator new(unsigned int) () from /usr/lib/libstdc++.so.6
#14 0x04c51d3d in operator new[](unsigned int) () from /usr/lib/libstdc++.so.6
#15 0x03315742 in XCFImageFormat::loadTileRLE (this=0xb60c136f, xcf_io=..., tile=0xb60bd308 "@\323\v\266\344j\351", image_size=0, data_length=-1016, bpp=67174656) at ../../kimgio/xcf.cpp:848
#16 0x033174d4 in XCFImageFormat::loadLevel (this=0xb60c136f, xcf_io=..., layer=..., bpp=67174656) at ../../kimgio/xcf.cpp:766
#17 0x0331771e in XCFImageFormat::loadHierarchy (this=0xb60c136f, xcf_io=..., layer=...) at ../../kimgio/xcf.cpp:719
#18 0x0331cffc in XCFImageFormat::loadLayer (this=0xb60c136f, xcf_io=..., xcf_image=...) at ../../kimgio/xcf.cpp:381
#19 0x0331d4e7 in XCFImageFormat::readXCF (this=0xb60c136f, device=0xb4a48a18, outImage=0xb60c1474) at ../../kimgio/xcf.cpp:156
#20 0x0331da70 in XCFHandler::read (this=0xb4991ea0, image=0xb60c1474) at ../../kimgio/xcf.cpp:2317
#21 0x035afb5c in QImageReader::read (this=0xb60c14d8, image=0xb60c1474) at image/qimagereader.cpp:1117
#22 0x035b0107 in QImageReader::read (this=0xb60c14d8) at image/qimagereader.cpp:1067
#23 0x035a24f2 in QImage::load (this=0xb60c15bc, fileName=..., format=0x0) at image/qimage.cpp:4615
#24 0x035a276a in QImage (this=0xb60c15bc, fileName=..., format=0x0) at image/qimage.cpp:1019
#25 0x01a2c367 in Digikam::QImageLoader::load (this=0xb60c1830, filePath=..., observer=0x0) at /build/buildd/digikam-1.2.0/libs/dimg/loaders/qimageloader.cpp:54
#26 0x01a109de in Digikam::DImg::load (this=0xb60c1bf4, filePath=..., loadFlagsInt=1, observer=0x0, rawDecodingSettings=...) at /build/buildd/digikam-1.2.0/libs/dimg/dimg.cpp:485
#27 0x01a11a06 in Digikam::DImg::loadImageInfo (this=0xb60c1bf4, filePath=..., loadMetadata=false, loadICCData=false, loadUniqueHash=false) at /build/buildd/digikam-1.2.0/libs/dimg/dimg.cpp:334
#28 0x00d74f15 in Digikam::ImageScanner::loadFromDisk (this=0xb60c1be4) at /build/buildd/digikam-1.2.0/libs/database/imagescanner.cpp:594
#29 0x00d7a892 in Digikam::ImageScanner::newFile (this=0xb60c1be4, albumId=126) at /build/buildd/digikam-1.2.0/libs/database/imagescanner.cpp:98
#30 0x00d26e24 in Digikam::CollectionScanner::scanNewFile (this=0xb60c2290, info=..., albumId=126) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:756
#31 0x00d27bfa in Digikam::CollectionScanner::scanAlbum (this=0xb60c2290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:665
#32 0x00d27a7c in Digikam::CollectionScanner::scanAlbum (this=0xb60c2290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:683
#33 0x00d27a7c in Digikam::CollectionScanner::scanAlbum (this=0xb60c2290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:683
#34 0x00d27a7c in Digikam::CollectionScanner::scanAlbum (this=0xb60c2290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:683
#35 0x00d27a7c in Digikam::CollectionScanner::scanAlbum (this=0xb60c2290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:683
#36 0x00d28897 in Digikam::CollectionScanner::scanAlbumRoot (this=0xb60c2290, location=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:479
#37 0x00d28bcf in Digikam::CollectionScanner::completeScan (this=0xb60c2290) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:250
#38 0x08321f6e in Digikam::ScanController::run (this=0x86fd4a0) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:541
#39 0x014d032e in QThreadPrivate::start (arg=0x86fd4a0) at thread/qthread_unix.cpp:248
#40 0x007d296e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#41 0x01368a4e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb7706760 (LWP 12990)):
#0  0x00802422 in __kernel_vsyscall ()
#1  0x007d7015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0x014d1287 in QWaitConditionPrivate::wait (this=0x86ff0f4, mutex=0x86ff0e0, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (this=0x86ff0f4, mutex=0x86ff0e0, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#4  0x014d03c9 in QThread::wait (this=0x86fd4a0, time=4294967295) at thread/qthread_unix.cpp:619
#5  0x08322354 in Digikam::ScanController::shutDown (this=0x86fd4a0) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:290
#6  0x08323ab1 in ~ScanController (this=0x86fd4a0, __in_chrg=<value optimized out>) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:273
#7  0x08323c6a in ~ScanControllerCreator () at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:221
#8  destroy () at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:222
#9  0x012ca1bf in ?? () from /lib/tls/i686/cmov/libc.so.6
#10 0x012ca22f in exit () from /lib/tls/i686/cmov/libc.so.6
#11 0x02a53520 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#12 0x065f9bfa in KApplication::xioErrhandler (this=0xbfc16e88, dpy=0x85a7b48) at ../../kdeui/kernel/kapplication.cpp:408
#13 0x065f9c36 in kde_xio_errhandler (dpy=0x85a7b48) at ../../kdeui/kernel/kapplication.cpp:125
#14 0x06fc5c16 in _XIOError () from /usr/lib/libX11.so.6
#15 0x06fcda1a in ?? () from /usr/lib/libX11.so.6
#16 0x06fce356 in _XEventsQueued () from /usr/lib/libX11.so.6
#17 0x06fb6adf in XEventsQueued () from /usr/lib/libX11.so.6
#18 0x0358838e in x11EventSourcePrepare (s=0x85a7b48, timeout=0xbfc16afc) at kernel/qguieventdispatcher_glib.cpp:79
#19 0x052adaca in g_main_context_prepare () from /lib/libglib-2.0.so.0
#20 0x052adee9 in ?? () from /lib/libglib-2.0.so.0
#21 0x052ae4b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#22 0x015fe60f in QEventDispatcherGlib::processEvents (this=0x856a6e8, flags=...) at kernel/qeventdispatcher_glib.cpp:414
#23 0x03588135 in QGuiEventDispatcherGlib::processEvents (this=0x856a6e8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#24 0x015d1059 in QEventLoop::processEvents (this=0x86ef790, flags=) at kernel/qeventloop.cpp:149
#25 0x015d14aa in QEventLoop::exec (this=0x86ef790, flags=...) at kernel/qeventloop.cpp:201
#26 0x0832331c in Digikam::ScanController::completeCollectionScan (this=0x86fd4a0, splash=0x87fd560) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:378
#27 0x082cee72 in DigikamApp (this=0x870f200, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /build/buildd/digikam-1.2.0/digikam/digikamapp.cpp:189
#28 0x083c292a in main (argc=1, argv=0xbfc172d4) at /build/buildd/digikam-1.2.0/digikam/main.cpp:170

Reported using DrKonqi
Comment 1 Johannes Wienke 2010-06-22 21:20:22 UTC
Looks like an out of memory error.
Comment 2 Marcel Wiesweg 2010-06-22 22:29:25 UTC
Crash from XCF image loader in kimgio
Comment 3 Christoph Feck 2010-06-23 02:39:42 UTC
If you can find the .xcf file that causes the crash (it should also crash when previewed with dolphin), could you attach it?
Comment 4 Christoph Feck 2010-06-25 03:43:08 UTC
SVN commit 1142443 by cfeck:

More protection against broken XCF files

BUG: 242518

David, if the offending file is not broken, but loads fine in GIMP,
please attach it. It is possible that there is some wired format that
KDE does not handle yet.


 M  +3 -0      xcf.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1142443
Comment 5 Christoph Feck 2010-06-25 03:51:48 UTC
SVN commit 1142445 by cfeck:

More protection against broken XCF files (backport r1142443)

CCBUG: 242518
FIXED-IN: 4.4.5


 M  +3 -0      xcf.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1142445
Comment 6 David 2010-06-25 20:50:44 UTC
I found it. I saved this with cinepaint long time ago, it doesnt open with gimp.

By the way, now digikam works but it doesnt show the raw photos.

this is the file:

http://ifile.it/2qazt1b
Comment 7 David 2010-06-25 20:58:57 UTC
never mind, i was looking at wrong album
Comment 8 Christoph Feck 2010-11-24 23:33:27 UTC
SVN commit 1200391 by cfeck:

Do not free unallocated data in case of corruption

Daniel, if you manage to find the XCF (GIMP format) file that
causes the crash and it loads fine in GIMP, please attach it.
It is possible that there is some wired format that KDE does
not handle yet.

FIXED-IN: 4.5.4
BUG: 257744
CCBUG: 242518


 M  +4 -2      xcf.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1200391