Bug 200159

Summary: Digikam almost always crash on my system (trunk)
Product: [Applications] digikam Reporter: Alex Fiestas <afiestas>
Component: Plugin-Bqm-RotateAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED NOT A BUG    
Severity: crash CC: caulier.gilles, mpyne
Priority: NOR    
Version: 1.0.0   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 7.6.0

Description Alex Fiestas 2009-07-14 12:05:12 UTC
Application that crashed: digikam
Version of the application: 1.0.0-beta3 (rev.: 996173)
KDE Version: 4.3.60 (KDE 4.3.60 (KDE 4.4 >= 20090706))
Qt Version: 4.5.1
Operating System: Linux 2.6.30-ARCH x86_64

What I was doing when the application crashed:
Since I upgrade to kde 4.3 (I'm in trunk right now) digikam almost always crash at startup, showfoto some times crash too with so similar bt.

I don't know what exactly is failing, I've tried removing configurations etc, but the bug is persistent.

Thanks and great job!

 -- Backtrace:
Application: digiKam (digikam), signal: Aborted
[Current thread is 0 (LWP 9475)]

Thread 15 (Thread 0x7f5246c4c910 (LWP 9476)):
#0  0x00007f5252a79dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f5252ce983b in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00000000006baf2b in Digikam::ScanController::run (this=0x29476b0) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/scancontroller.cpp:455
#3  0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#5  0x00007f525204116d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7f524323d910 (LWP 9477)):
#0  0x00007f5252dfd240 in ?? () from /usr/lib/libQtCore.so.4
#1  0x00007f5252dfa22d in ?? () from /usr/lib/libQtCore.so.4
#2  0x00007f524f63ed8a in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#3  0x00007f524f63f161 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#4  0x00007f524f63f690 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0x00007f5252dfa0ae in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#6  0x00007f5252dcf562 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#7  0x00007f5252dcf934 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#8  0x00007f5252ce598b in QThread::exec () from /usr/lib/libQtCore.so.4
#9  0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#10 0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#11 0x00007f525204116d in clone () from /lib/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7f5242a3c910 (LWP 9478)):
#0  0x00007f52520389b3 in poll () from /lib/libc.so.6
#1  0x00007f524f63f34c in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#2  0x00007f524f63f690 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f5252dfa0ae in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#4  0x00007f5252dcf562 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#5  0x00007f5252dcf934 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#6  0x00007f5252ce598b in QThread::exec () from /usr/lib/libQtCore.so.4
#7  0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#9  0x00007f525204116d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f52421bb910 (LWP 9479)):
#0  0x00007f5252a79dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f5252ce983b in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00007f525669f042 in Digikam::LoadSaveThread::run (this=0x2914660) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/libs/threadimageio/loadsavethread.cpp:136
#3  0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#5  0x00007f525204116d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f52419ba910 (LWP 9480)):
#0  0x00007f5252ce8466 in QThreadData::current () from /usr/lib/libQtCore.so.4
#1  0x00007f5252dfa409 in ?? () from /usr/lib/libQtCore.so.4
#2  0x00007f524f63ea7a in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#3  0x00007f524f63f260 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#4  0x00007f524f63f690 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0x00007f5252dfa0ae in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#6  0x00007f5252dcf562 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#7  0x00007f5252dcf934 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#8  0x00007f5252ce598b in QThread::exec () from /usr/lib/libQtCore.so.4
#9  0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#10 0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#11 0x00007f525204116d in clone () from /lib/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f52411b9910 (LWP 9481)):
#0  0xffffffffff600177 in ?? ()
#1  0x00007fff33f9e671 in ?? ()
#2  0x00007f524f8c8e4f in clock_gettime () from /lib/librt.so.1
#3  0x00007f5252dfba5d in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f5252dfbc61 in ?? () from /usr/lib/libQtCore.so.4
#5  0x00007f5252dfd233 in ?? () from /usr/lib/libQtCore.so.4
#6  0x00007f5252dfa22d in ?? () from /usr/lib/libQtCore.so.4
#7  0x00007f524f63ed8a in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#8  0x00007f524f63f161 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#9  0x00007f524f63f690 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#10 0x00007f5252dfa0ae in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#11 0x00007f5252dcf562 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#12 0x00007f5252dcf934 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#13 0x00007f5252ce598b in QThread::exec () from /usr/lib/libQtCore.so.4
#14 0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#15 0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#16 0x00007f525204116d in clone () from /lib/libc.so.6
#17 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f52409b8910 (LWP 9482)):
#0  0x00007f5252a79dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f5252ce983b in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00007f525669f042 in Digikam::LoadSaveThread::run (this=0x29920e0) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/libs/threadimageio/loadsavethread.cpp:136
#3  0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#5  0x00007f525204116d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f52391b4910 (LWP 9483)):
#0  0x00007f5252a7a05d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f523e278581 in metronom_sync_loop () from /usr/lib/libxine.so.1
#2  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#3  0x00007f525204116d in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f5237741910 (LWP 9485)):
#0  0x00007f525203aa62 in select () from /lib/libc.so.6
#1  0x00007f523e2a04a4 in xine_usec_sleep () from /usr/lib/libxine.so.1
#2  0x00007f523e28609b in video_out_loop () from /usr/lib/libxine.so.1
#3  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#4  0x00007f525204116d in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f5236f40910 (LWP 9486)):
#0  0xffffffffff600177 in ?? ()
#1  0x00007fff33f9e671 in ?? ()
#2  0x00007f524f8c8e4f in clock_gettime () from /lib/librt.so.1
#3  0x00007f5252dfba5d in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f5252dfbc61 in ?? () from /usr/lib/libQtCore.so.4
#5  0x00007f5252dfd233 in ?? () from /usr/lib/libQtCore.so.4
#6  0x00007f5252dfa22d in ?? () from /usr/lib/libQtCore.so.4
#7  0x00007f524f63ed8a in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#8  0x00007f524f63f161 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#9  0x00007f524f63f690 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#10 0x00007f5252dfa0ae in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#11 0x00007f5252dcf562 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#12 0x00007f5252dcf934 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#13 0x00007f5252ce598b in QThread::exec () from /usr/lib/libQtCore.so.4
#14 0x00007f523e4d2afe in Phonon::Xine::XineThread::run (this=0x3272870) at /home/nasete/cod3s/cpp/kde/source/kdesupport/phonon/xine/xinethread.cpp:143
#15 0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#16 0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#17 0x00007f525204116d in clone () from /lib/libc.so.6
#18 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f5236536910 (LWP 9489)):
#0  0x00007f52520389b3 in poll () from /lib/libc.so.6
#1  0x00007f523653b839 in ao_alsa_handle_event_thread () from /usr/lib/xine/plugins/1.26/xineplug_ao_out_alsa.so
#2  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#3  0x00007f525204116d in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f5235d35910 (LWP 9490)):
#0  0x00007f5252a79dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f523e2895c3 in ao_loop () from /usr/lib/libxine.so.1
#2  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#3  0x00007f525204116d in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f5231173910 (LWP 9506)):
#0  0x00007f5252a79dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f5252ce983b in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00007f525669f042 in Digikam::LoadSaveThread::run (this=0x64204d0) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/libs/threadimageio/loadsavethread.cpp:136
#3  0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#5  0x00007f525204116d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f523340c910 (LWP 9507)):
#0  0x00007f5251fe7e24 in top_check () from /lib/libc.so.6
#1  0x00007f5251fea4bc in malloc_check () from /lib/libc.so.6
#2  0x00007f5252ceada1 in QByteArray::QByteArray () from /usr/lib/libQtCore.so.4
#3  0x00007f5252ce0f7f in qt_error_string () from /usr/lib/libQtCore.so.4
#4  0x00007f5252da47cc in ?? () from /usr/lib/libQtCore.so.4
#5  0x00007f5252dac1ae in ?? () from /usr/lib/libQtCore.so.4
#6  0x00007f5252d66370 in QFile::readData () from /usr/lib/libQtCore.so.4
#7  0x00007f5252d6d1d0 in QIODevice::read () from /usr/lib/libQtCore.so.4
#8  0x00007f5252d592c5 in QDataStream::operator>> () from /usr/lib/libQtCore.so.4
#9  0x00007f5255c73263 in Marble::PlacemarkLoader::loadFile (this=0x6b7b1d0, filename=<value optimized out>, placemarkContainer=0x6bd8c90)
    at /home/nasete/cod3s/cpp/kde/source/kdeedu/marble/src/lib/PlacemarkLoader.cpp:305
#10 0x00007f5255c73a5d in Marble::PlacemarkLoader::run (this=0x6b7b1d0) at /home/nasete/cod3s/cpp/kde/source/kdeedu/marble/src/lib/PlacemarkLoader.cpp:111
#11 0x00007f5252ce8791 in ?? () from /usr/lib/libQtCore.so.4
#12 0x00007f5252a7557a in start_thread () from /lib/libpthread.so.0
#13 0x00007f525204116d in clone () from /lib/libc.so.6
#14 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f52593b4760 (LWP 9475)):
[KCrash Handler]
#5  0x00007f5251fa7f15 in raise () from /lib/libc.so.6
#6  0x00007f5251fa9340 in abort () from /lib/libc.so.6
#7  0x00007f5251fe194d in __libc_message () from /lib/libc.so.6
#8  0x00007f5251fe6dd6 in malloc_printerr () from /lib/libc.so.6
#9  0x00007f5252d2be0c in QString::free () from /usr/lib/libQtCore.so.4
#10 0x00007f5254d57de5 in KIconThemeDir::iconPath (this=<value optimized out>, name=@0x7fff33f2ca00) at /usr/include/QtCore/qstring.h:866
#11 0x00007f5254d57fa6 in KIconTheme::iconPath (this=<value optimized out>, name=<value optimized out>, size=<value optimized out>, match=KIconLoader::MatchBest)
    at /home/nasete/cod3s/cpp/kde/source/kdelibs/kdeui/icons/kicontheme.cpp:488
#12 0x00007f5254d4ecdd in KIconLoaderPrivate::findMatchingIcon (this=<value optimized out>, name=<value optimized out>, size=<value optimized out>)
    at /home/nasete/cod3s/cpp/kde/source/kdelibs/kdeui/icons/kiconloader.cpp:874
#13 0x00007f5254d4eed8 in KIconLoaderPrivate::findMatchingIconWithGenericFallbacks (this=0x2503, name=@0x6, size=-1) at /home/nasete/cod3s/cpp/kde/source/kdelibs/kdeui/icons/kiconloader.cpp:719
#14 0x00007f5254d53d35 in KIconLoader::loadIcon (this=0x289b300, _name=<value optimized out>, group=<value optimized out>, size=22, state=<value optimized out>, overlays=@0x7fff33f2d210, 
    path_store=0x0, canReturnNull=false) at /home/nasete/cod3s/cpp/kde/source/kdelibs/kdeui/icons/kiconloader.cpp:1180
#15 0x00000000006337be in Digikam::AlbumThumbnailLoader::loadIcon (this=<value optimized out>, name=@0x7fff33f2d250, size=22)
    at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/albumthumbnailloader.cpp:178
#16 0x0000000000633b4f in Digikam::AlbumThumbnailLoader::getStandardTagIcon (this=0x5175e50, relativeSize=<value optimized out>)
    at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/albumthumbnailloader.cpp:121
#17 0x00000000006d21ef in TagFilterView (this=0x75e13a0, parent=<value optimized out>) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/tagfilterview.cpp:293
#18 0x0000000000669490 in DigikamView (this=0x28cd5f0, parent=<value optimized out>) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/digikamview.cpp:258
#19 0x0000000000650702 in Digikam::DigikamApp::setupView (this=0x291b320) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/digikamapp.cpp:466
#20 0x000000000065e950 in DigikamApp (this=0x291b320) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/digikamapp.cpp:205
#21 0x00000000007313a5 in main (argc=<value optimized out>, argv=<value optimized out>) at /home/nasete/cod3s/cpp/kde/source/extragear/graphics/digikam/digikam/main.cpp:161

Reported using DrKonqi
Comment 1 caulier.gilles 2009-07-14 13:29:25 UTC
A lots of crash come from libc...

Gilles Caulier
Comment 2 Alex Fiestas 2009-07-14 13:57:26 UTC
Not good so :/
I'm using ArchLinux with testing repo, maybe it helps to be able to reproduce it.
I'll try to install a clean archlinux+testing+kdemod and see what happens.

Thanks for the quickly response!
Comment 3 Marcel Wiesweg 2009-07-14 22:06:17 UTC
Gilles this reminds me of these crashes lately that were caused by setting a special environment variable for malloc. Dont find the bug numbers right now. I think we closed the reports somehow.
Comment 4 caulier.gilles 2009-07-14 22:28:46 UTC
Look there :

https://bugs.kde.org/show_bug.cgi?id=196726#c11

Gilles
Comment 5 Alex Fiestas 2009-07-14 23:22:31 UTC
Ok, I've tested the MALLOC_CHECK stuff, digikam still crashing.

http://pastebin.ca/1495154 <--terminal output
http://pastebin.ca/1495156 <-- backgrace

Thanks!
Comment 6 Marcel Wiesweg 2009-07-15 20:37:06 UTC
This crash now comes from the JPEGlossless plugin. If you have always this backtrace there may be a problem with the installed kipiplugins package.
If the backtrace is different for each crash, there is a more general problem.

Please note that you are running unstable trunk KDE4.4 alpha. It may be worth to install a stable KDE4.3rc2.
Comment 7 Alex Fiestas 2009-07-15 23:25:05 UTC
Wow! finally I can continue with my photos collection! thanks!

Ps:JPEGlossless is crashing my digikam also in a kde 4.3rc1 system, should I report a bug?

Thanks!
Comment 8 Michael Pyne 2009-07-16 03:59:40 UTC
To the bug reporter:  I see you're using a x86_64 system.  Do you have glibc 2.10.1 installed (you can tell by running /lib/libc.so.6 at a terminal and checking the version output on the first line)?

If you do, I think you are experiencing bug 196207.  If this the case you can confirm by testing any of the following workarounds:

At the terminal before running digikam, run "unset MALLOC_CHECK_" (without the quotes, and note the trailing underscore).

Or, at the terminal before running digikam, run "export QT_NO_GLIB=1" to disable the glib-based Qt event loop and use a native Qt event loop instead.  If you can't reproduce this crash after taking either of those steps you're probably seeing what I believe to be a glibc bug (one I haven't found a reproducable simple test case for :( )
Comment 9 Alex Fiestas 2009-07-16 11:30:54 UTC
GNU C Library stable release version 2.10.1
Yes, without MALLOC_CHECK_ digikam runs fine :/
Comment 10 Andi Clemens 2009-07-16 11:50:41 UTC
(In reply to comment #7)
> Ps:JPEGlossless is crashing my digikam also in a kde 4.3rc1 system, should I
> report a bug?

I can not crash digiKam with KDE 4.2.4 and MALLOC_CHECK_=3, so I guess it is "save" to say that the JPEGLossLess-plugin is not causing the crash, but either kdelibs or glibc.
Comment 11 Marcel Wiesweg 2009-07-16 19:15:06 UTC
Alex, I got your jpeglossless plugin too after updating kdegraphics/libs.
Solution was to update kipi-plugins as well.
Comment 12 Andi Clemens 2009-07-17 09:35:43 UTC
Ok now I have this crash, too.
I updated to a package bugfix release (KDE 4.2.4-2) and now I can't start digiKam anymore.
I rebuild all libs (from trunk) and kipiplugins as well as digiKam, but it is not working.

Since your backtrace is not valid anymore (I can't see the link), I'll post mine here:

(gdb) bt
#0  0xb582314c in ?? () from /usr/lib/libQtCore.so.4
#1  0xb5ce3a48 in ?? () from /usr/lib/libQtGui.so.4
#2  0xb581cfc6 in QVariant::~QVariant () from /usr/lib/libQtCore.so.4
#3  0xa55a53c7 in ActionThread (this=0xb9cbc58, interface=0xb766eb0, parent=0xb893248) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/kipi-plugins/jpeglossless/actionthread.cpp:96
#4  0xa559c2ea in Plugin_JPEGLossless::setup (this=0xb893248, widget=0x8a16158) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/kipi-plugins/jpeglossless/plugin_jpeglossless.cpp:170
#5  0x082287cc in Digikam::DigikamApp::slotKipiPluginPlug (this=0x8a16158) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/digikamapp.cpp:2298
#6  0x08239cad in Digikam::DigikamApp::qt_metacall (this=0x8a16158, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0xbfbd5bfc) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/digikamapp.moc:210
#7  0xb581598c in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#8  0xb58165c2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#9  0xb782e0e7 in KIPI::PluginLoader::replug (this=0xb7711a8) at /home/andi/Programmieren/KDE/digiKam/libs_KDE4/libs/libkipi/libkipi/pluginloader.moc:97
#10 0xb782e799 in KIPI::PluginLoader::loadPlugins (this=0xb7711a8) at /home/andi/Programmieren/KDE/digiKam/libs_KDE4/libs/libkipi/libkipi/pluginloader.cpp:271
#11 0x08228aae in Digikam::DigikamApp::loadPlugins (this=0x8a16158) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/digikamapp.cpp:2241
#12 0x08238b77 in DigikamApp (this=0x8a16158) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/digikamapp.cpp:235
#13 0x082e1ab1 in main (argc=1, argv=0xbfbd6074) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/main.cpp:161


The only thing to solve this is to remove JPEGLossLess.

Gilles,

while removing this plugin I have found a "bug": we don't disable the overlay icons in iconview.
So if KIPIplugins are not installed at all, the user will still see the rotate icons which is wrong I guess.

Andi
Comment 13 caulier.gilles 2009-07-17 10:03:31 UTC
Andi,

Right i can see the problem in code about jpeglossless avaibility and overlay icons. To deal with plugin action in icon view is not trivial

I think to use JPEGLossless plugin here is a wrong way. In fact I think we must to disable this plugin in digiKam and make a dedicated code in digiKam core. We have lossless jpeg code in core (used by camera gui). For non JPEG format, we can use DImg as well.

Also, in BQM, Rotation tool don't take a care about lossless jpeg transformations. It's weird. Implementing a solution in digiKam core will solve this issue.

Gilles
Comment 14 Andi Clemens 2009-07-17 10:39:31 UTC
I guess my problem with JpegLossLess comes from the upgrade of libjpeg (6b-6 -> 7-1).

A lot of applications seems to crash now, because it is not ABI compatible (not even API, although it should).

Recompiling worked for me as I said before, but unfortunately it crashes with the above backtrace.
I'm pretty sure that this upgrade is causing the issue.
Comment 15 caulier.gilles 2009-07-17 10:46:43 UTC
You want mean that libjpeg has changed ? really ? which changes ?

Gilles
Comment 16 caulier.gilles 2009-07-17 10:55:52 UTC
look changes there :

CHANGE LOG for Independent JPEG Group's JPEG software


Version 7  27-Jun-2009
----------------------

New scaled DCTs implemented.
djpeg now supports scalings N/8 with all N from 1 to 16.
cjpeg now supports scalings 8/N with all N from 1 to 16.
Scaled DCTs with size larger than 8 are now also used for resolving the
common 2x2 chroma subsampling case without additional spatial resampling.
Separate spatial resampling for those kind of files is now only necessary
for N>8 scaling cases.
Furthermore, separate scaled DCT functions are provided for direct resolving
of the common asymmetric subsampling cases (2x1 and 1x2) without additional
spatial resampling.

cjpeg -quality option has been extended for support of separate quality
settings for luminance and chrominance (or in general, for every provided
quantization table slot).
New API function jpeg_default_qtables() and q_scale_factor array in library.

Added -nosmooth option to cjpeg, complementary to djpeg.
New variable "do_fancy_downsampling" in library, complement to fancy
upsampling.  Fancy upsampling now uses direct DCT scaling with sizes
larger than 8.  The old method is not reversible and has been removed.

Support arithmetic entropy encoding and decoding.
Added files jaricom.c, jcarith.c, jdarith.c.

Straighten the file structure:
Removed files jidctred.c, jcphuff.c, jchuff.h, jdphuff.c, jdhuff.h.

jpegtran has a new "lossless" cropping feature.

Implement -perfect option in jpegtran, new API function
jtransform_perfect_transform() in transupp. (DP 204_perfect.dpatch)

Better error messages for jpegtran fopen failure.
(DP 203_jpegtran_errmsg.dpatch)

Fix byte order issue with 16bit PPM/PGM files in rdppm.c/wrppm.c:
according to Netpbm, the de facto standard implementation of the PNM formats,
the most significant byte is first. (DP 203_rdppm.dpatch)

Add -raw option to rdjpgcom not to mangle the output.
(DP 205_rdjpgcom_raw.dpatch)

Make rdjpgcom locale aware. (DP 201_rdjpgcom_locale.dpatch)

Add extern "C" to jpeglib.h.
This avoids the need to put extern "C" { ... } around #include "jpeglib.h"
in your C++ application.  Defining the symbol DONT_USE_EXTERN_C in the
configuration prevents this. (DP 202_jpeglib.h_c++.dpatch)

// ---------------------------------------------------------------------

we MUST take a care about transupp.c code in digiKam core and JPEGLossless plugin. There is a risk to see jpeg transformations broken. Code stil compilation and run perfectly on your computer ?

Gilles
Comment 17 Andi Clemens 2009-07-17 11:07:23 UTC
Like I said, JPEGLossLess is not starting at all and crashes digiKam.
digiKam seems to work ok, I tested "Perspective Adjustment" right now, if this is handled by the lib?

So at the moment I see only problems with JPEGLossLess. It compiles, but doesn't run.
Comment 18 caulier.gilles 2009-07-17 12:09:07 UTC
No perspective tool do not use it.

Only these parts:

- DImg jpeg loader,
- rotation tool from cameragui (libs/jpegutils)
- jpeglossless plugin.

Gilles
Comment 19 Andi Clemens 2009-07-17 12:40:41 UTC
Ok I tested freerotation, it is working fine.
Comment 20 caulier.gilles 2009-07-17 12:48:12 UTC
Andi, none editor tool use libjpeg. All are based on DImg transformation code.

Gilles
Comment 21 Andi Clemens 2009-07-17 13:01:03 UTC
:)
I somehow just read "rotation tool"....
But rotation in CameraUI is working, too.

So to sum it up:

- DImg jpeg loader => WORKING
- rotation tool from cameragui (libs/jpegutils) => WORKING
- jpeglossless plugin => BROKEN (will crash application on startup)
Comment 22 Andi Clemens 2009-07-17 14:02:09 UTC
SVN commit 998312 by aclemens:

When messing with pointers, always check if they are valid.
This gives another backtrace now, which seems to confirm my guess that
the libjpeg update is responsible for the crash.

CCBUG:200159

 M  +2 -1      actionthread.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=998312
Comment 23 Andi Clemens 2009-07-17 14:03:41 UTC
Ok digiKam starts now, but when I use the plugin, it crashes with the following backtrace:

(gdb) bt
#0  0xb53c2984 in jpeg_destroy () from /usr/lib/libjpeg.so.7
#1  0xb53b95ad in jpeg_destroy_compress () from /usr/lib/libjpeg.so.7
#2  0xa6f31bce in KIPIJPEGLossLessPlugin::transformJPEG (src=@0xcefdb60, destGiven=@0xa9b53230, userAction=@0xa9b531a8, err=@0xa9b532f8, updateFileTimeStamp=false) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/kipi-plugins/jpeglo
ssless/jpegtransform.cpp:177
#3  0xa6f34e98 in KIPIJPEGLossLessPlugin::ImageRotate::rotateJPEG (this=0xa9b532dc, src=@0xcefdb60, dest=@0xa9b53230, angle=KIPIJPEGLossLessPlugin::Rot90, err=@0xa9b532f8, updateFileTimeStamp=<value optimized out>) at /home/andi/Program
mieren/KDE/digiKam/digikam_KDE4/kipi-plugins/jpeglossless/imagerotate.cpp:162
#4  0xa6f34fb0 in KIPIJPEGLossLessPlugin::ImageRotate::rotate (this=0xa9b532dc, src=@0xcefdb60, angle=KIPIJPEGLossLessPlugin::Rot90, err=@0xa9b532f8, updateFileTimeStamp=<value optimized out>) at /home/andi/Programmieren/KDE/digiKam/dig
ikam_KDE4/kipi-plugins/jpeglossless/imagerotate.cpp:98
#5  0xa6f376dd in KIPIJPEGLossLessPlugin::ActionThread::run (this=0xcb7bfb8) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/kipi-plugins/jpeglossless/actionthread.cpp:205
#6  0xb5723032 in ?? () from /usr/lib/libQtCore.so.4
#7  0xb569b68c in start_thread () from /lib/libpthread.so.0
#8  0xb54e6e2e in clone () from /lib/libc.so.6


I will reopen this report now...
Comment 24 caulier.gilles 2009-07-17 14:13:21 UTC
Why jpeg_destroy crash plugin here:

http://lxr.kde.org/source/extragear/graphics/kipi-plugins/jpeglossless/jpegtransform.cpp#177

It's exactly the same code in digiKam core :

http://lxr.kde.org/source/extragear/graphics/digikam/libs/jpegutils/jpegutils.cpp#444

What's the difference...

Gilles
Comment 25 Andi Clemens 2009-07-17 14:19:16 UTC
Good question, I'm comparing the two functions at the moment, but they look really the same.
This is weird.
Comment 26 Andi Clemens 2009-07-17 19:58:12 UTC
After removing and installing libjpeg again, it seems to work for me.
Strange. Since no one else confirmed this issue, I will close the report again and mark it as invalid as it was before.