Summary: | 1.1.0: crash on image download | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Wolfram Quester <wolfi> |
Component: | Import-Gphoto2 | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED UPSTREAM | ||
Severity: | crash | CC: | andresbajotierra, caulier.gilles, simon |
Priority: | NOR | ||
Version: | 1.1.0 | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 1.2.0 | |
Sentry Crash Report: |
Description
Wolfram Quester
2010-02-15 20:24:23 UTC
I just wanted to add that I can download the images without problems using gphotofs Thanks, Wolfi Is this crash reproducible? Looks like a crash in libjpeg. Yes, looks like a libjpeg-related issue. Do you know if Digikam was recompiled against the new libjpeg version ? Regards Yes, it is highly reproducible when I start downloading images. I tried several times, two cameras and different memory cards. In the meantime, I discovered that digikam an additional crash. I created the folders I wanted to download the images to, then I wanted to import the images and failed. So I mounted the camera using gphotofs, which worked. When I navigated to the albums, digikam crashed reliably. And it also crashed one time when I tried to change folders/albums. The backtraces looked very similar to me. It is well possible that the problem is within one of the libraries, which is why I pasted their versions, too. There are some changes with libjpeg going on in debian ATM, and in the meantime I updated libjpeg, but this did not help. I don't think digikam was rebuild since some days after release of version 1.1.0. Perhaps I can try to rebuild it tomorrow. Tanks, Wolfi You probably need to wait until new packages for Qt and Digikam (recompiled due this libjpeg incompatible update) arrive to your repo libgphoto2 may also be the problem here. When invalid data is supplied, libjpeg will crash when reading it. hi, don't know if its the same issue, here my valgrind output: digikam(8324)/KEXIV2 KExiv2Iface::KExiv2::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime("Sa. Jan 16 08:00:49 2010") digikam(8324)/KEXIV2 KExiv2Iface::KExiv2::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime("Sa. Jan 16 08:00:49 2010") digikam(8324)/KEXIV2 KExiv2Iface::KExiv2::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime("Sa. Jan 16 10:46:47 2010") digikam(8324)/KEXIV2 KExiv2Iface::KExiv2::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime("Sa. Jan 16 10:46:47 2010") ==8324== ==8324== Thread 14: ==8324== Use of uninitialised value of size 8 ==8324== at 0xC1E0C0C: jpeg_CreateDecompress (in /usr/lib64/libjpeg.so.8.0.0) ==8324== by 0x16694A7B: read_jpeg_image(QIODevice*, QImage*, QByteArray const&, QSize, int) (qjpeghandler.cpp:766) ==8324== by 0x16695AA7: QJpegHandler::read(QImage*) (qjpeghandler.cpp:1215) ==8324== by 0xA426EEF: QImageReader::read(QImage*) (qimagereader.cpp:1118) ==8324== by 0xA427517: QImageReader::read() (qimagereader.cpp:1068) ==8324== by 0xA411BC3: QImage::fromData(unsigned char const*, int, char const*) (qimage.cpp:4695) ==8324== by 0xA4132FC: QImage::loadFromData(unsigned char const*, int, char const*) (qimage.cpp:4653) ==8324== by 0x666DBAD: KExiv2Iface::KExiv2::getExifThumbnail(bool) const (kexiv2exif.cpp:758) ==8324== by 0x4FDB67: Digikam::UMSCamera::getThumbnail(QString const&, QString const&, QImage&) (umscamera.cpp:227) ==8324== by 0x4CD835: Digikam::CameraController::executeCommand(Digikam::CameraCommand*) (cameracontroller.cpp:447) ==8324== by 0x4CEEC4: Digikam::CameraController::run() (cameracontroller.cpp:334) ==8324== by 0x98264E9: QThreadPrivate::start(void*) (qthread_unix.cpp:244) ==8324== by 0x9CD2FC6: start_thread (in /lib64/libpthread-2.9.so) ==8324== by 0xBD0A1FC: clone (in /lib64/libc-2.9.so) ==8324== ==8324== Invalid write of size 4 ==8324== at 0xC1E0C0C: jpeg_CreateDecompress (in /usr/lib64/libjpeg.so.8.0.0) ==8324== by 0x16694A7B: read_jpeg_image(QIODevice*, QImage*, QByteArray const&, QSize, int) (qjpeghandler.cpp:766) ==8324== by 0x16695AA7: QJpegHandler::read(QImage*) (qjpeghandler.cpp:1215) ==8324== by 0xA426EEF: QImageReader::read(QImage*) (qimagereader.cpp:1118) ==8324== by 0xA427517: QImageReader::read() (qimagereader.cpp:1068) ==8324== by 0xA411BC3: QImage::fromData(unsigned char const*, int, char const*) (qimage.cpp:4695) ==8324== by 0xA4132FC: QImage::loadFromData(unsigned char const*, int, char const*) (qimage.cpp:4653) ==8324== by 0x666DBAD: KExiv2Iface::KExiv2::getExifThumbnail(bool) const (kexiv2exif.cpp:758) ==8324== by 0x4FDB67: Digikam::UMSCamera::getThumbnail(QString const&, QString const&, QImage&) (umscamera.cpp:227) ==8324== by 0x4CD835: Digikam::CameraController::executeCommand(Digikam::CameraCommand*) (cameracontroller.cpp:447) ==8324== by 0x4CEEC4: Digikam::CameraController::run() (cameracontroller.cpp:334) ==8324== by 0x98264E9: QThreadPrivate::start(void*) (qthread_unix.cpp:244) ==8324== by 0x9CD2FC6: start_thread (in /lib64/libpthread-2.9.so) ==8324== by 0xBD0A1FC: clone (in /lib64/libc-2.9.so) ==8324== Address 0x2c is not stack'd, malloc'd or (recently) free'd KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = digikam path = /usr/bin pid = 8324 sock_file=/home/user/.kde4/socket-d-partment/kdeinit4__0 [1]+ Angehalten valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes digikam i use libjpeg v8, recompiled libkexiv2 and digikam :( After some updates, libjpeg and others but not digikam, everything is working again here. So I guess, this was not a bug in digikam, but as you said in one of the libs. Thus I think we can close this one. Thanks, Wolfi |