Summary: | GIT master: crash when clicking through images in preview, with face recognition running in background | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Matthias Andree <matthias.andree> |
Component: | Metadata-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 6.0.0 | |
Sentry Crash Report: |
Description
Matthias Andree
2014-09-15 00:51:29 UTC
I haven't found an image path printed in .xsession-errors nor on the console. If there is a way to run digikam with extended debugging information, please point me to the instructions. While trying to reproduce, I got this in the console: KCrash: Application 'digikam' crashing... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit sock_file=/home/mandree/.kde/socket-apollo/kdeinit4__0 QSocketNotifier: Invalid socket 20 and type 'Read', disabling... QSocketNotifier: Invalid socket 21 and type 'Read', disabling... QSocketNotifier: Invalid socket 21 and type 'Read', disabling... digikam: Fatal IO error: client killed (digikam:9309): GStreamer-CRITICAL **: gstsystemclock: write control failed in wakeup_async: 9:Ungültiger Dateideskriptor Fatal Error: Accessed global static 'FileReadWriteLockStaticPrivate *static_d()' after destruction. Defined at /home/mandree/VCS-other/digikam.git/core/libs/threadimageio/filereadwritelock.cpp:385 And retrying the same with strace -feopen -p $(pidof digikam) reveals the following near SIGSEGV. Apparently this happens when I am opening the preview for an .AVI image that was filmed with my Fuji F200EXR - and I need only select the album to trigger the crash: [pid 9514] open("/foto-backup/Bilder/Zillertal-2012-03/DSCF3028.AVI", O_RDONLY) = 39 [pid 9514] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} --- QSocketNotifier: Invalid socket 16 and type 'Read', disabling... QSocketNotifier: Invalid socket 19 and type 'Read', disabling... digikam: Fatal IO error: client killed Maybe related: $ LC_ALL=C exiv2 /foto-backup/Bilder/Zillertal-2012-03/DSCF3028.AVI Exiv2 exception in print action for file /foto-backup/Bilder/Zillertal-2012-03/DSCF3028.AVI: /foto-backup/Bilder/Zillertal-2012-03/DSCF3028.AVI: The file contains data of an unknown image type Any further instructions for debugging this? I am wondering if this is an unhandled exception that propagates all through the call stack... Running under GDB supervision, I get this, and I am wondering about the distinct 11 and 12 versions on /usr/lib/libexiv2.so.* below: [Switching to Thread 0x7fffaecef700 (LWP 11222)] Breakpoint 4, 0x00007ffff5c5c6b0 in Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const@plt () from /usr/lib/libkexiv2.so.11 (gdb) l 76 in ../sysdeps/unix/syscall-template.S (gdb) finish Run till exit from #0 0x00007ffff5c5c6b0 in Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const@plt () from /usr/lib/libkexiv2.so.11 Breakpoint 4, 0x00007fffeda8c0e0 in Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const () from /usr/lib/libexiv2.so.12 (gdb) finish Run till exit from #0 0x00007fffeda8c0e0 in Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const () from /usr/lib/libexiv2.so.12 Program received signal SIGSEGV, Segmentation fault. 0x00007fffeda8c0f2 in Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const () from /usr/lib/libexiv2.so.12 (gdb) finish Run till exit from #0 0x00007fffeda8c0f2 in Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const () from /usr/lib/libexiv2.so.12 digikam: Fatal IO error: client killed KCrash: Application 'digikam' crashing... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit sock_file=/home/mandree/.kde/socket-apollo/kdeinit4__0 QSocketNotifier: Invalid socket 20 and type 'Read', disabling... Fatal Error: Accessed global static 'FileReadWriteLockStaticPrivate *static_d()' after destruction. Defined at /home/mandree/VCS-other/digikam.git/core/libs/threadimageio/filereadwritelock.cpp:385 Program received signal SIGABRT, Aborted. [Switching to Thread 0x7fff30ff9700 (LWP 11223)] QSocketNotifier: Invalid socket 21 and type 'Read', disabling... 0x00007ffff0a43bb9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 More GDB tracing got me this on the crash location - is the image data supposed to be 0x0? (gdb) print this->d $2 = (KExiv2Iface::KExiv2Previews::Private * const) 0x7fffa0047920 (gdb) print *this->d $3 = {image = {_M_ptr = 0x0}, manager = 0x0, properties = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x7fffa0047b60}, d = 0x7fffa0047b60}}} (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x00007fffeda8c0f2 in Exiv2::PreviewManager::getPreviewImage(Exiv2::PreviewProperties const&) const () from /usr/lib/libexiv2.so.12 It crash in Exiv2 shared library. Please report this problem to Exiv2 bugzilla. Don't forget to found a relevant image causing this crash. Gilles Caulier Gilles, is there an exiv2 test program, either in libkexiv2, or in digikam, that should also crash on the same "image" (aka AVI movie file)? I can't get exiv2 to crash on the same file, but it constantly prints an exception on the command line, so I am wondering if digikam has an exception handler in the right spot and/or is feeding libkexiv2 proper data given the many 0s in Comment #3. >is there an exiv2 test program, ==> exiv2 CLI tool > I can't get exiv2 to crash on the same file, but it constantly prints an exception on the command line, so I am wondering if digikam has an exception handler ==> yes, it is, in libkexiv2 interface. The crash appears with preview extraction. Code is here : https://projects.kde.org/projects/kde/kdegraphics/libs/libkexiv2/repository/revisions/master/entry/libkexiv2/kexiv2previews.cpp > + -DDIGIKAMSC_USE_PRIVATE_KDEGRAPHICS=OFF \ ==> no. Use last libkexiv2 code and uninstall system wide libkexiv2. Gilles Caulier I switched ...USE_PRIVATE_KDEGRAPHICS back to on, and cmake complained that my exiv2 is too old. Would that be the cause of the trouble? If so, a version check of (k)exiv2 on digikam start-up might be in order. I will try to upgrade exiv2 later and then rebuild digikam to see if this fixes this problem. Thanks for the prompt replies. With incoming 6.0.0 release the video metadata parser will be delegate to ffmpeg instead Exiv2. This problem will not be reproducible. Gilles Caulier |