Bug 215458 - Also on OpenSuse, the error occurs. Can you please give me a hint what to do?
Summary: Also on OpenSuse, the error occurs. Can you please give me a hint what to do?
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: DImg-Plugins (show other bugs)
Version: 0.10.0
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-20 18:20 UTC by Robert
Modified: 2022-02-05 22:41 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.2.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert 2009-11-20 18:20:53 UTC
Application that crashed: digikam
Version of the application: 0.10.0
KDE Version: 4.3.3 (KDE 4.3.3) "release 2"
Qt Version: 4.5.3
Operating System: Linux 2.6.31.5-0.1-default x86_64
Distribution: "openSUSE 11.2 (x86_64)"

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

Thread 2 (Thread 0x7f9143cfe910 (LWP 9368)):
[KCrash Handler]
#5  0x00007f914e2144e5 in raise () from /lib64/libc.so.6
#6  0x00007f914e2159b0 in abort () from /lib64/libc.so.6
#7  0x00007f914e20d24a in __assert_fail () from /lib64/libc.so.6
#8  0x00007f914c188e50 in jpc_dec_tiledecode (dec=<value optimized out>, tile=<value optimized out>) at jpc_dec.c:1077
#9  0x00007f914c189fcd in jpc_dec_process_sod (dec=<value optimized out>, ms=<value optimized out>) at jpc_dec.c:620
#10 0x00007f914c18af52 in jpc_dec_decode (dec=<value optimized out>) at jpc_dec.c:390
#11 jpc_decode (dec=<value optimized out>) at jpc_dec.c:254
#12 0x00007f914c178e5d in jas_image_decode (in=0xa6af40, fmt=<value optimized out>, optstr=0x0) at jas_image.c:372
#13 0x00007f9151a9ca5d in Digikam::JP2KLoader::load(QString const&, Digikam::DImgLoaderObserver*) () from /usr/lib64/libdigikamcore.so.1
#14 0x00007f9151a8156c in Digikam::DImg::load(QString const&, int, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding) () from /usr/lib64/libdigikamcore.so.1
#15 0x00007f9151a83246 in Digikam::DImg::loadImageInfo(QString const&, bool, bool, bool) () from /usr/lib64/libdigikamcore.so.1
#16 0x00007f91517111c3 in Digikam::ImageScanner::loadFromDisk (this=0x7f9143cfcac0) at /usr/src/debug/digikam-0.10.0/libs/database/imagescanner.cpp:603
#17 0x00007f9151717058 in Digikam::ImageScanner::newFile (this=0x2497, albumId=9368) at /usr/src/debug/digikam-0.10.0/libs/database/imagescanner.cpp:89
#18 0x00007f9151709f2b in Digikam::CollectionScanner::scanNewFile (this=0x7f9143cfe000, info=..., albumId=3442) at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:592
#19 0x00007f915170b2ba in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:545
#20 0x00007f915170b1db in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:556
#21 0x00007f915170b1db in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:556
#22 0x00007f915170b1db in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:556
#23 0x00007f915170b1db in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:556
#24 0x00007f915170b1db in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:556
#25 0x00007f915170bcb7 in Digikam::CollectionScanner::scanAlbumRoot (this=0x7f9143cfe000, location=...) at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:345
#26 0x00007f915170bf87 in Digikam::CollectionScanner::completeScan (this=0x7f9143cfe000) at /usr/src/debug/digikam-0.10.0/libs/database/collectionscanner.cpp:192
#27 0x00000000006438b3 in ?? ()
#28 0x00007f914ed15485 in ?? () from /usr/lib64/libQtCore.so.4
#29 0x00007f914dfcc65d in start_thread () from /lib64/libpthread.so.0
#30 0x00007f914e2b314d in clone () from /lib64/libc.so.6
#31 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f9154583750 (LWP 9367)):
#0  0x00007f914dfd1049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f914ed1653b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f914ed15524 in QThread::wait(unsigned long) () from /usr/lib64/libQtCore.so.4
#3  0x0000000000643617 in ?? ()
#4  0x000000000064708b in ?? ()
#5  0x0000000000647227 in ?? ()
#6  0x00007f914e217065 in ?? () from /lib64/libc.so.6
#7  0x00007f914e2170b5 in exit () from /lib64/libc.so.6
#8  0x00007f914f9d0628 in ?? () from /usr/lib64/libQtGui.so.4
#9  0x00007f91507b6908 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib64/libkdeui.so.5
#10 0x00007f914d1782be in _XIOError () from /usr/lib64/libX11.so.6
#11 0x00007f914d17fc95 in ?? () from /usr/lib64/libX11.so.6
#12 0x00007f914d180547 in _XEventsQueued () from /usr/lib64/libX11.so.6
#13 0x00007f914d16924b in XEventsQueued () from /usr/lib64/libX11.so.6
#14 0x00007f914fa084dc in ?? () from /usr/lib64/libQtGui.so.4
#15 0x00007f9148bfbcba in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#16 0x00007f9148bfc4a0 in ?? () from /usr/lib64/libglib-2.0.so.0
#17 0x00007f9148bfc8d0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#18 0x00007f914ee233a3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#19 0x00007f914fa0831e in ?? () from /usr/lib64/libQtGui.so.4
#20 0x00007f914edf9712 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#21 0x00007f914edf9ae4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#22 0x0000000000644ae2 in ?? ()
#23 0x0000000000608cb3 in ?? ()
#24 0x00000000006690ea in ?? ()
#25 0x00007f914e200a7d in __libc_start_main () from /lib64/libc.so.6
#26 0x0000000000458849 in _start ()

This bug may be a duplicate of or related to bug 210779

Reported using DrKonqi
Comment 1 Nicolas L. 2009-11-20 18:33:55 UTC
please install the debug packges and paste the new crash log
Comment 2 caulier.gilles 2009-11-20 18:44:45 UTC
This is JPEG2000 stuff. It sound like you have a JP2 file on your computer and libjasper go out violently. There is nothing to do in digiKam core. libjasper do not generate an exception. It's a shame. 

Gilles Caulier
Comment 3 Marcel Wiesweg 2009-11-27 18:16:08 UTC
Gilles, part of the problem is that we load the full JPEG200 image when scanning, because libjasper does not support just reading the header. My proposed short-term solution is to _not_ load the whole image, instead do not scan color format and rely on exiv2 to retrieve width and height for JPEG2k images.

Long term we should evaluate OpenJPEG, I dont know about the status of this project, but I read Krita's Cyrille Berger is developing a loader based on this library.
Comment 4 caulier.gilles 2009-11-27 18:22:34 UTC
I'm agree to not load full JP2 image during scanning.

OpenJPEG is not the only way to solve this problem. In Exiv2 a future new image info container will be created to get physical informations about the image

JP2 is already supported by Exiv2. I know... I have writen this image format support (:=)))

Another very important information about Exiv2 is the availablity of image width and height info. These properties can be already extracted using Exiv2 (look Exiv2::Image method). Libkexiv2 must be adapted as well. It's simple to do...

About OpenJPEG, i know that libray is lesser fast than Jasper, but tlike this last one sound like unmainted, OpenJPEG must be the right way to use for the far future... 

Gilles

Gilles
Comment 5 Marcel Wiesweg 2009-12-07 19:16:06 UTC
SVN commit 1059937 by mwiesweg:

Disable scanning of images with libjasper.
This means that width, height, and color format will not be available.
At least width and height are available from exiv2, but Image::pixelWidth()
and pixelHeight() are not used in libkexiv2.
So for now, the dimensions are only avaiable for when there is Exif information.

CCBUG: 215458
CCBUG: 195583

 M  +17 -0     jp2kloader.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1059937
Comment 6 Marcel Wiesweg 2009-12-07 19:19:10 UTC
The crash should no longer happen now. Newly created is the bug that scanning image information from JPEG2000 images is disabled. Merging with 195583.

*** This bug has been marked as a duplicate of bug 195583 ***
Comment 7 caulier.gilles 2019-07-28 01:49:18 UTC
Fixed with bug #195583