Summary: | Digikam almost always crash on my system (trunk) | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Alex Fiestas <afiestas> |
Component: | Plugin-Bqm-Rotate | Assignee: | 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 | |
Sentry Crash Report: |
Description
Alex Fiestas
2009-07-14 12:05:12 UTC
A lots of crash come from libc... Gilles Caulier 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! 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. Look there : https://bugs.kde.org/show_bug.cgi?id=196726#c11 Gilles Ok, I've tested the MALLOC_CHECK stuff, digikam still crashing. http://pastebin.ca/1495154 <--terminal output http://pastebin.ca/1495156 <-- backgrace Thanks! 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. 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! 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 :( ) GNU C Library stable release version 2.10.1 Yes, without MALLOC_CHECK_ digikam runs fine :/ (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. Alex, I got your jpeglossless plugin too after updating kdegraphics/libs. Solution was to update kipi-plugins as well. 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 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 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. You want mean that libjpeg has changed ? really ? which changes ? Gilles 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 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. No perspective tool do not use it. Only these parts: - DImg jpeg loader, - rotation tool from cameragui (libs/jpegutils) - jpeglossless plugin. Gilles Ok I tested freerotation, it is working fine. Andi, none editor tool use libjpeg. All are based on DImg transformation code. Gilles :) 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) 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 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... 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 Good question, I'm comparing the two functions at the moment, but they look really the same. This is weird. 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. |