Bug 257744 - Crash on importing large collection with XCF files
Summary: Crash on importing large collection with XCF files
Status: RESOLVED FIXED
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: kimgio (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Christoph Feck
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-23 23:46 UTC by Daniel Benden
Modified: 2018-08-26 12:23 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 1.7.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Benden 2010-11-23 23:46:57 UTC
Application: digikam (1.5.0)
KDE Platform Version: 4.5.3 (KDE 4.5.3)
Qt Version: 4.7.0
Operating System: Linux 2.6.35.6-48.fc14.x86_64 x86_64
Distribution: "Fedora release 14 (Laughlin)"

-- Information about the crash:
trying to import a large (about 140G) archive of photographs with digikam. Digikam starts importing the archive but crashes when it has scanned about 90%.

The crash can be reproduced every time.

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

Thread 2 (Thread 0x7fb00b687700 (LWP 11338)):
[KCrash Handler]
#6  0x0000003487e34085 in raise () from /lib64/libc.so.6
#7  0x0000003487e35a36 in abort () from /lib64/libc.so.6
#8  0x0000003487e7159b in __libc_message () from /lib64/libc.so.6
#9  0x0000003487e78e53 in _int_free () from /lib64/libc.so.6
#10 0x00007fb00b890ffa in XCFImageFormat::loadTileRLE (this=<value optimized out>, xcf_io=<value optimized out>, tile=0x7fb00b68174c "\377", image_size=0, data_length=<value optimized out>, bpp=<value optimized out>) at /usr/src/debug/kdelibs-4.5.3/kimgio/xcf.cpp:936
#11 0x00007fb00b893179 in XCFImageFormat::loadLevel (this=0x7fb00b6857ef, xcf_io=..., layer=..., bpp=33620224) at /usr/src/debug/kdelibs-4.5.3/kimgio/xcf.cpp:766
#12 0x00007fb00b893306 in XCFImageFormat::loadHierarchy (this=0x7fb00b6857ef, xcf_io=..., layer=...) at /usr/src/debug/kdelibs-4.5.3/kimgio/xcf.cpp:719
#13 0x00007fb00b897c26 in XCFImageFormat::loadLayer (this=0x7fb00b6857ef, xcf_io=..., xcf_image=...) at /usr/src/debug/kdelibs-4.5.3/kimgio/xcf.cpp:381
#14 0x00007fb00b89803d in XCFImageFormat::readXCF (this=0x7fb00b6857ef, device=<value optimized out>, outImage=0x7fb00b685980) at /usr/src/debug/kdelibs-4.5.3/kimgio/xcf.cpp:156
#15 0x00007fb00b89841c in XCFHandler::read (this=0x7fb004b593a0, image=0x7fb00b685980) at /usr/src/debug/kdelibs-4.5.3/kimgio/xcf.cpp:2320
#16 0x000000349687b01b in QImageReader::read (this=0x7fb00b6859e0, image=0x7fb00b685980) at image/qimagereader.cpp:1205
#17 0x000000349687b59c in QImageReader::read (this=0x7fb00b6859e0) at image/qimagereader.cpp:1155
#18 0x000000349686cffe in QImage::load (this=0x7fb00b685ad0, fileName=..., format=<value optimized out>) at image/qimage.cpp:4949
#19 0x000000349686d195 in QImage::QImage (this=0x7fb00b685ad0, fileName=..., format=0x0) at image/qimage.cpp:1024
#20 0x00000031beb309ae in Digikam::QImageLoader::load (this=0x7fb00b685e80, filePath=..., observer=0x0) at /usr/src/debug/digikam-1.5.0/libs/dimg/loaders/qimageloader.cpp:54
#21 0x00000031beb1b6ae in Digikam::DImg::load (this=0x7fb00b6864a0, filePath=..., loadFlagsInt=1, observer=0x0, rawDecodingSettings=<value optimized out>) at /usr/src/debug/digikam-1.5.0/libs/dimg/dimg.cpp:482
#22 0x00000031beb1d323 in Digikam::DImg::loadImageInfo (this=0x7fb00b6864a0, filePath=..., loadMetadata=<value optimized out>, loadICCData=<value optimized out>, loadUniqueHash=<value optimized out>) at /usr/src/debug/digikam-1.5.0/libs/dimg/dimg.cpp:331
#23 0x00000031c00acd23 in Digikam::ImageScanner::loadFromDisk (this=0x7fb00b686480) at /usr/src/debug/digikam-1.5.0/libs/database/imagescanner.cpp:593
#24 0x00000031c00b2028 in Digikam::ImageScanner::newFile (this=0x7fb00b686480, albumId=576) at /usr/src/debug/digikam-1.5.0/libs/database/imagescanner.cpp:99
#25 0x00000031c0063e79 in Digikam::CollectionScanner::scanNewFile (this=<value optimized out>, info=<value optimized out>, albumId=576) at /usr/src/debug/digikam-1.5.0/libs/database/collectionscanner.cpp:768
#26 0x00000031c0065b76 in Digikam::CollectionScanner::scanAlbum (this=0x7fb00b686c70, location=..., album=...) at /usr/src/debug/digikam-1.5.0/libs/database/collectionscanner.cpp:673
#27 0x00000031c0065844 in Digikam::CollectionScanner::scanAlbum (this=0x7fb00b686c70, location=..., album=...) at /usr/src/debug/digikam-1.5.0/libs/database/collectionscanner.cpp:691
#28 0x00000031c0066427 in Digikam::CollectionScanner::scanAlbumRoot (this=0x7fb00b686c70, location=...) at /usr/src/debug/digikam-1.5.0/libs/database/collectionscanner.cpp:485
#29 0x00000031c00666f0 in Digikam::CollectionScanner::completeScan (this=0x7fb00b686c70) at /usr/src/debug/digikam-1.5.0/libs/database/collectionscanner.cpp:254
#30 0x00000000006b3baf in Digikam::ScanController::run (this=0x29f4fe0) at /usr/src/debug/digikam-1.5.0/digikam/scancontroller.cpp:540
#31 0x0000003493a7264e in QThreadPrivate::start (arg=0x29f4fe0) at thread/qthread_unix.cpp:266
#32 0x0000003488a06d5b in start_thread () from /lib64/libpthread.so.0
#33 0x0000003487ee4aad in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fb0172318c0 (LWP 11337)):
#0  0x0000003488a0b8c4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000003493a72d3b in wait (this=<value optimized out>, mutex=0x29f1fe0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x29f1fe0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x0000003493a71df0 in QThread::wait (this=<value optimized out>, time=18446744073709551615) at thread/qthread_unix.cpp:652
#4  0x00000000006b0fbf in Digikam::ScanController::shutDown (this=0x29f4fe0) at /usr/src/debug/digikam-1.5.0/digikam/scancontroller.cpp:290
#5  0x00000000006b2fad in Digikam::ScanController::~ScanController (this=0x29f4fe0, __in_chrg=<value optimized out>) at /usr/src/debug/digikam-1.5.0/digikam/scancontroller.cpp:273
#6  0x00000000006b31c7 in ~ScanControllerCreator () at /usr/src/debug/digikam-1.5.0/digikam/scancontroller.cpp:221
#7  destroy () at /usr/src/debug/digikam-1.5.0/digikam/scancontroller.cpp:222
#8  0x0000003487e379e1 in exit () from /lib64/libc.so.6
#9  0x0000003496820578 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:745
#10 0x00000031b7c1f1d8 in KApplication::xioErrhandler (this=0x7fff7b7f2130, dpy=0x28c88f0) at /usr/src/debug/kdelibs-4.5.3/kdeui/kernel/kapplication.cpp:416
#11 0x000000348ae4686e in _XIOError (dpy=0x28c88f0) at XlibInt.c:3140
#12 0x000000348ae4d8bd in _XEventsQueued (dpy=0x28c88f0, mode=<value optimized out>) at xcb_io.c:306
#13 0x000000348ae365df in XEventsQueued (dpy=0x28c88f0, mode=2) at Pending.c:43
#14 0x000000349685853c in x11EventSourceCheck (s=0x28a5220) at kernel/qguieventdispatcher_glib.cpp:85
#15 0x0000003489a41ab8 in g_main_context_check (context=0x28a4120, max_priority=2147483647, fds=<value optimized out>, n_fds=<value optimized out>) at gmain.c:2658
#16 0x0000003489a42392 in g_main_context_iterate (context=0x28a4120, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2777
#17 0x0000003489a428ad in g_main_context_iteration (context=0x28a4120, may_block=1) at gmain.c:2843
#18 0x0000003493b868af in QEventDispatcherGlib::processEvents (this=0x28622a0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#19 0x00000034968586ee in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#20 0x0000003493b5ab42 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#21 0x0000003493b5ad8c in QEventLoop::exec (this=0x2a00110, flags=...) at kernel/qeventloop.cpp:201
#22 0x00000000006b1349 in Digikam::ScanController::completeCollectionScan (this=0x29f4fe0, splash=<value optimized out>) at /usr/src/debug/digikam-1.5.0/digikam/scancontroller.cpp:377
#23 0x0000000000669f43 in Digikam::DigikamApp::DigikamApp (this=0x2a3bc20, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /usr/src/debug/digikam-1.5.0/digikam/digikamapp.cpp:197
#24 0x00000000007248ab in main (argc=42588144, argv=0x7fff7b7f28a8) at /usr/src/debug/digikam-1.5.0/digikam/main.cpp:172

Possible duplicates by query: bug 242518.

Reported using DrKonqi
Comment 1 Christoph Feck 2010-11-24 02:12:33 UTC
Crash in XCF (GIMP image format) loader.
Comment 2 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
Comment 3 Christoph Feck 2010-11-24 23:34:21 UTC
SVN commit 1200392 by cfeck:

Do not free unallocated data in case of corruption (backport r1200391)

CCBUG: 257744


 M  +4 -2      xcf.cpp  


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