Bug 260619

Summary: "digiKam crash when raw format is being converted"
Product: [Applications] digikam Reporter: ask_775
Component: Plugin-DImg-RAWAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, lexa
Priority: NOR    
Version: 2.0.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 2.0.0
Sentry Crash Report:

Description ask_775 2010-12-18 10:52:23 UTC
Application: digikam (1.2.0)
KDE Platform Version: 4.4.4 (KDE 4.4.4) "release 3"
Qt Version: 4.6.3
Operating System: Linux 2.6.34.7-0.5-desktop x86_64
Distribution: "openSUSE 11.3 (x86_64)"

-- Information about the crash:
program crashes when raw file is being converted to png. 

The crash can be reproduced every time.

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

Thread 15 (Thread 0x7f6de061f710 (LWP 5685)):
#0  0x00007f6def2c939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6df1acf2bb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00000000006a0e7d in Digikam::ScanController::run (this=0xc2b390) at /usr/src/debug/digikam-1.2.0/digikam/scancontroller.cpp:516
#3  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#5  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7f6ddfbc0710 (LWP 5688)):
#0  0x00007f6def2c868e in __pthread_mutex_unlock_usercnt () from /lib64/libpthread.so.0
#1  0x00007f6dea634538 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f6df1bde6d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#3  0x00007f6df1bb5292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#4  0x00007f6df1bb5495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#5  0x00007f6df1acc2cf in QThread::exec() () from /usr/lib64/libQtCore.so.4
#6  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#7  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#8  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7f6dde999710 (LWP 5689)):
#0  0x00007f6dea634538 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f6df1bde6d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#2  0x00007f6df1bb5292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#3  0x00007f6df1bb5495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#4  0x00007f6df1acc2cf in QThread::exec() () from /usr/lib64/libQtCore.so.4
#5  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#6  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#7  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f6dde198710 (LWP 5690)):
#0  0x00007f6def2c939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6df1acf2bb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f6df485e492 in Digikam::LoadSaveThread::run (this=0x14a88a0) at /usr/src/debug/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#5  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f6ddd997710 (LWP 5691)):
#0  0x00007f6df0dd16b3 in poll () from /lib64/libc.so.6
#1  0x00007f6dea633fd4 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f6dea634510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f6df1bde6d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#4  0x00007f6df1bb5292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#5  0x00007f6df1bb5495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#6  0x00007f6df1acc2cf in QThread::exec() () from /usr/lib64/libQtCore.so.4
#7  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#8  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#9  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f6ddd196710 (LWP 5692)):
#0  0x00007f6df1bddec3 in ?? () from /usr/lib64/libQtCore.so.4
#1  0x00007f6dea632f7f in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f6dea633e69 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f6dea634510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f6df1bde6d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#5  0x00007f6df1bb5292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#6  0x00007f6df1bb5495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#7  0x00007f6df1acc2cf in QThread::exec() () from /usr/lib64/libQtCore.so.4
#8  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#9  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#10 0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f6dd0fa2710 (LWP 5694)):
#0  0x00007f6def2c9709 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6dd6beb951 in metronom_sync_loop () from /usr/lib64/libxine.so.1
#2  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f6dcfb65710 (LWP 5695)):
#0  0x00007f6def2c9709 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6dd6bf998f in video_out_loop () from /usr/lib64/libxine.so.1
#2  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f6dcf364710 (LWP 5696)):
#0  0x00007f6df1bdf342 in ?? () from /usr/lib64/libQtCore.so.4
#1  0x00007f6df1bddf0c in ?? () from /usr/lib64/libQtCore.so.4
#2  0x00007f6dea632f7f in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f6dea633e69 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f6dea634510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f6df1bde6d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#6  0x00007f6df1bb5292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#7  0x00007f6df1bb5495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#8  0x00007f6df1acc2cf in QThread::exec() () from /usr/lib64/libQtCore.so.4
#9  0x00007f6dd6e493b4 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#10 0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#11 0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#12 0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#13 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f6dce959710 (LWP 5699)):
#0  0x00007f6df0dcd401 in read () from /lib64/libc.so.6
#1  0x00007f6ddc0d3795 in ?? () from /usr/lib64/libasound.so.2
#2  0x00007f6ddc0ce683 in snd_hctl_handle_events () from /usr/lib64/libasound.so.2
#3  0x00007f6ddc0d8ae9 in snd_mixer_handle_events () from /usr/lib64/libasound.so.2
#4  0x00007f6dce95ea18 in ao_alsa_handle_event_thread () from /usr/lib64/xine/plugins/1.29/xineplug_ao_out_alsa.so
#5  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#6  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f6dce158710 (LWP 5700)):
#0  0x00007f6def2c939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6dd6bfd96b in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f6dcbec4710 (LWP 5701)):
#0  0x00007f6def2c939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6df1acf2bb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f6df485e492 in Digikam::LoadSaveThread::run (this=0xfca670) at /usr/src/debug/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#5  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f6dc96bf710 (LWP 5709)):
#0  0x00007f6def2c939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6df1acf2bb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f6df485e492 in Digikam::LoadSaveThread::run (this=0x297f070) at /usr/src/debug/digikam-1.2.0/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#5  0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f6dcaec2710 (LWP 5747)):
[KCrash Handler]
#5  LibRaw::foveon_interpolate (this=0x7f6dcae94140) at /usr/src/debug/kdegraphics-4.4.4/libs/libkdcraw/libraw/internal/foveon.cpp:333
#6  0x00007f6df5866221 in LibRaw::dcraw_process (this=0x7f6dcae94140) at /usr/src/debug/kdegraphics-4.4.4/libs/libkdcraw/libraw/src/libraw_cxx.cpp:1495
#7  0x00007f6df582af34 in KDcrawIface::KDcraw::loadFromLibraw (this=0x7f6dcaec0f10, filePath=..., imageData=..., width=@0x7f6dcaec0ebc, height=@0x7f6dcaec0eb8, rgbmax=@0x7f6dcaec0eb4)
    at /usr/src/debug/kdegraphics-4.4.4/libs/libkdcraw/libkdcraw/kdcraw.cpp:663
#8  0x00007f6df47438b3 in Digikam::RAWLoader::load (this=0x7f6dcaec0f10, filePath=..., observer=0x5580410) at /usr/src/debug/digikam-1.2.0/libs/dimg/loaders/rawloader.cpp:102
#9  0x00007f6df472dabb in Digikam::DImg::load (this=0x557d6a0, filePath=..., loadFlagsInt=31, observer=0x5580410, rawDecodingSettings=<value optimized out>)
    at /usr/src/debug/digikam-1.2.0/libs/dimg/dimg.cpp:439
#10 0x00007f6df472e91b in Digikam::DImg::load (this=0x557d6a0, filePath=..., observer=0x5580410, rawDecodingSettings=...) at /usr/src/debug/digikam-1.2.0/libs/dimg/dimg.cpp:340
#11 0x000000000058f889 in Digikam::BatchTool::loadToDImg (this=0x55801a0) at /usr/src/debug/digikam-1.2.0/utilities/queuemanager/batchtool.cpp:333
#12 0x00000000005ae3ed in Digikam::Convert2PNG::toolOperations (this=0x55801a0) at /usr/src/debug/digikam-1.2.0/utilities/queuemanager/basetools/convert/convert2png.cpp:93
#13 0x000000000058fd4c in Digikam::BatchTool::apply (this=0x55801a0) at /usr/src/debug/digikam-1.2.0/utilities/queuemanager/batchtool.cpp:397
#14 0x00000000005710b0 in Digikam::ActionThread::run (this=0xfcd8e70) at /usr/src/debug/digikam-1.2.0/utilities/queuemanager/actionthread.cpp:203
#15 0x00007f6df1acebf5 in ?? () from /usr/lib64/libQtCore.so.4
#16 0x00007f6def2c4a4f in start_thread () from /lib64/libpthread.so.0
#17 0x00007f6df0dda82d in clone () from /lib64/libc.so.6
#18 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f6df73507c0 (LWP 5684)):
#0  0x00007f6def2c9709 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6df1ace9b5 in ?? () from /usr/lib64/libQtCore.so.4
#2  0x00007f6df1aceb20 in QThread::msleep(unsigned long) () from /usr/lib64/libQtCore.so.4
#3  0x00007f6dd6e5f5c2 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#4  0x00007f6dd6e5f6d9 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#5  0x00007f6df6d09cc7 in ?? () from /usr/lib64/libphonon.so.4
#6  0x00007f6df6d09e09 in ?? () from /usr/lib64/libphonon.so.4
#7  0x00007f6df0d3f4e1 in __run_exit_handlers () from /lib64/libc.so.6
#8  0x00007f6df0d3f535 in exit () from /lib64/libc.so.6
#9  0x00007f6df254dcb8 in ?? () from /usr/lib64/libQtGui.so.4
#10 0x00007f6df30fcbc8 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib64/libkdeui.so.5
#11 0x00007f6defa58a3e in _XIOError () from /usr/lib64/libX11.so.6
#12 0x00007f6defa5f5a5 in ?? () from /usr/lib64/libX11.so.6
#13 0x00007f6defa5f90c in _XEventsQueued () from /usr/lib64/libX11.so.6
#14 0x00007f6defa487ef in XEventsQueued () from /usr/lib64/libX11.so.6
#15 0x00007f6df2584fec in ?? () from /usr/lib64/libQtGui.so.4
#16 0x00007f6dea633718 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#17 0x00007f6dea633ff2 in ?? () from /usr/lib64/libglib-2.0.so.0
#18 0x00007f6dea634510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#19 0x00007f6df1bde67f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#20 0x00007f6df258514e in ?? () from /usr/lib64/libQtGui.so.4
#21 0x00007f6df1bb5292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#22 0x00007f6df1bb5495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#23 0x00007f6df1bb988b in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#24 0x000000000071960b in main (argc=381872384, argv=0x7fff16c2ee00) at /usr/src/debug/digikam-1.2.0/digikam/main.cpp:193

Reported using DrKonqi
Comment 1 caulier.gilles 2010-12-18 18:24:18 UTC
please, go to Help/Components Info and copy and paste details here.

Alex, I CC you for info. The trace is in LibRaw.

Gilles Caulier
Comment 2 Alex Tutubalin 2010-12-18 18:38:42 UTC
It looks like unsupported foveon image (from DP1 or DP2 or something).

Unfortunately, I'm unable to reproduce the crash with X3F samples I have.

So, is it possible to receive the problematic sample image? You may send it to my e-mail (lexa@lexa.ru), or, better, made it available online somewhere (e.g. on megaupload or rapidshare or other file sharing service).

Without sample I'm unable to do anything....
Comment 3 Alex Tutubalin 2010-12-19 17:33:30 UTC
Got the sample.

It looks like I'll be able to fix the crash, but it will not add Sigma DP2s support for the code.

The compression method of Sigma DPx files is different from SDxx ones and new compression is not documented well
Comment 4 caulier.gilles 2010-12-19 18:25:10 UTC
Fixinng the crash at least is fine for me...

Gilles Caulier
Comment 5 Alex Tutubalin 2010-12-20 13:48:09 UTC
The crash has fixed in LibRaw 0.12.1

Unfortunately for topic starter, support for Sigma DPxx is completely disabled. The current code is unable to support these files and no new code is available now.

Hope, dcraw will support these files sometimes in future.
Comment 6 caulier.gilles 2010-12-20 15:18:55 UTC
SVN commit 1208061 by cgilles:

update libraw to 0.12.1
BUGS: 260619


 M  +7 -0      Changelog.txt  
 M  +2 -0      demosaic-pack-GPL2/Changelog  
 M  +3 -2      demosaic-pack-GPL2/dcraw_foveon.c  
 M  +7 -3      internal/dcraw_common.cpp  
 M  +0 -2      internal/dcraw_fileio.cpp  
 M  +0 -2      internal/demosaic_packs.cpp  
 M  +1 -1      libraw/libraw_version.h  
 M  +0 -1      src/libraw_c_api.cpp  


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