Summary: | DigiKam crashing at startup Thread 2 Crashed:: Digikam::ScanController | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | benjcmin <benjcmin> |
Component: | Plugin-DImg-RAW | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles, metzpinguin |
Priority: | NOR | ||
Version: | 6.0.0 | ||
Target Milestone: | --- | ||
Platform: | macOS (DMG) | ||
OS: | macOS | ||
Latest Commit: | https://commits.kde.org/digikam/031a951f0e9225834e3dfecc4d32389652c7b780 | Version Fixed In: | 6.0.0 |
Attachments: | macOS crash report digikam 6 beta1 |
I would like to add the information, I had an early/earlier release of DigiKam 6 running on the same machine with the same collection of fotos, about 2-3 month ago. Back then I just installed it over the old 5.x version and it worked. But due to some other issues (regarding trying to use internal mySQL) I went back to 5.9 (SQlite). Can you use the package generated yesterday and available here : https://files.kde.org/digikam/ Gilles Caulier For me it looks like a crash in LibRaw. Can you possibly isolate the RAW file and make it available for testing? Maik @Gilles: I'll try that tonight. @Maik: There are a couple of Nikon (D5300) nef RAW images in my collection. How can I make one availabe for testing as it's to big to attch here. But I'll also try to exclude them when I try the other package tonight. I'll let you know my findings tonight. Thx for the support. OK, Nikon D5300 NEF is at my disposal. With which setting were the RAW recorded, 12 or 14 bit? This can be selected in the camera. Maik It's set to 12bit. FYI with the latest version 5.9.0 is working with those images. The difference between 5.9.0 and 6.0.0 is the libraw used internally to decode RAW files. This can explain the crash. Gilles Caulier So yes it seems it's coming down to the RAW files. Right now installation from package digiKam-6.0.0-beta1-20180910T183526-MacOS-x86-64.pkg is starting without problems but only with a few images and WITHOUT RAW files. But as soon as I add an RAW image file to the folder it crashs on the same thread but when I delete the RAW file it starts up fine again. Thread 2 Crashed:: Digikam::ScanController 0 libsystem_platform.dylib 0x00007fff50d74c69 _platform_bzero$VARIANT$Haswell + 41 1 libdigikamcore.6.0.0.dylib 0x0000000106528cbb LibRaw::LibRaw(unsigned int) + 219 2 libdigikamcore.6.0.0.dylib 0x00000001064a0601 Digikam::DRawDecoder::rawFileIdentify(Digikam::RawInfo&, QString const&) + 641 3 libdigikamcore.6.0.0.dylib 0x00000001061123cf Digikam::RAWLoader::load(QString const&, Digikam::DImgLoaderObserver*) + 143 4 libdigikamcore.6.0.0.dylib 0x00000001063104b7 Digikam::DImg::load(QString const&, int, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) + 4743 5 libdigikamcore.6.0.0.dylib 0x000000010630f1ba Digikam::DImg::loadImageInfo(QString const&, bool, bool, bool, bool) + 298 6 libdigikamdatabase.6.0.0.dylib 0x000000010ed90e02 Digikam::ImageScanner::loadFromDisk() + 242 7 libdigikamdatabase.6.0.0.dylib 0x000000010ed912dc Digikam::ImageScanner::newFile(int) + 28 8 libdigikamdatabase.6.0.0.dylib 0x000000010ec9c657 Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) + 727 9 libdigikamdatabase.6.0.0.dylib 0x000000010ec97fc4 Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) + 2548 10 libdigikamdatabase.6.0.0.dylib 0x000000010ec96634 Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) + 180 11 libdigikamdatabase.6.0.0.dylib 0x000000010ec99fdb Digikam::CollectionScanner::partialScan(QString const&, QString const&) + 1627 12 libdigikamdatabase.6.0.0.dylib 0x000000010ec99922 Digikam::CollectionScanner::partialScan(QString const&) + 98 13 libdigikamgui.6.0.0.dylib 0x0000000104ec25e3 Digikam::ScanController::run() + 1795 14 org.qt-project.QtCore 0x000000010e7bb8f7 0x10e790000 + 178423 15 libsystem_pthread.dylib 0x00007fff50d7a661 _pthread_body + 340 16 libsystem_pthread.dylib 0x00007fff50d7a50d _pthread_start + 377 17 libsystem_pthread.dylib 0x00007fff50d79bf9 thread_start + 13 As libraw source code is integrated as well in digiKam source code as 3rdparty component, I recommend to report this dysfunction to Libraw project as UPSTREAM. Don't forget to provide a test RAW file to reproduce the crash using libraw command line tool. You can use the github page for the report : https://github.com/LibRaw/LibRaw/issues The libraw version integrated especially in digiKam PKG bundle 6.0.0 is the last stable 0.19.0 Thanks in advance Gilles Caulier I can not reproduce the problem with my D5300 RAW files either. Neither with my native Linux version (Libraw-0.19) nor with the Windows version in VirtualBox. Maik I did some testing aswell. Crashing only occures on macOS (10.13.6). Can NOT reproduce it with DigiKam 6 latest beta and same files on: Win10 running on ParallesDesktop Unbuntu 18.4.1 running on VirtualBox So maybe not Libraw as root cause but something in the macOS package? There is nothing special while compiling the MacOS package. But Libraw has specific compilation rules, depending on host OS. So, the only solution to be sure is to use the Libraw command line tool (version 0.19) and check if it crash while demosaicing. Note : digiKam 5.9.0 use Libraw 0.18 and it do not crash. So, it's not a PKG problem, but a Libraw problem (as the backtrace report). With digiKam 6.0.0, we use the new Libraw 0.19 which introduce a lots of changes. Gilles Caulier I want to add another information backing this theory. I tried an earlier version of DigiKam6 in May and it worked. I just found it still on my Laptop (running the same version of macOS) and DigiKam Version 6.0.0-git with an Build date May 22 2018 with a Rev 927a5d90b2dde5c76563be7c04a931df71cc0951 KDE Framework 5.45.0 Libraw 0.18.11 and doens't have the crashing problem with the same RAW file. So it is coming down to Libraw 0.19.x again, I suppose. I have to see if I can post a good bug report for Libraw, haven't used it as comand line tool yet and not sure if I can reporduce the error this way. Note : In the libraw bug report, you will need to specify the settings used to process the RAW file. The complete settings passed to libraw is printed in the console. You need to run digiKam on the MacOS terminal. The binary is here : /opt/digikam/Applications/KF5/digikam.app/Contents/MacOS/digikam Gilles Caulier Note: as your crash is located in scan controller from digiKam, you cannot catch easily this kind of information. But with showfoto you can. Just open your RAW file directly in the application, started from the console. The binary must be located here : /opt/digikam/Applications/KF5/showfoto.app/Contents/MacOS/showfoto digikam.dimg: "/mnt/data/photos/RAW/HORIZONTAL/dsc_0093.nef" : RAW file identified digikam.rawengine: -- RAW DECODING SETTINGS -------------------------------- -- autoBrightness: true -- sixteenBitsImage: false -- brightness: 1 -- RAWQuality: 0 -- inputColorSpace: 0 -- outputColorSpace: 1 -- RGBInterpolate4Colors: false -- DontStretchPixels: false -- unclipColors: 0 -- whiteBalance: 1 -- customWhiteBalance: 6500 -- customWhiteBalanceGreen: 1 -- halfSizeColorImage: false -- enableBlackPoint: false -- blackPoint: 0 -- enableWhitePoint: false -- whitePoint: 0 -- NoiseReductionType: 0 -- NoiseReductionThreshold: 0 -- medianFilterPasses: 0 -- inputProfile: "" -- outputProfile: "/usr/share/digikam/profiles/srgb-d65.icm" -- deadPixelMap: "" -- whiteBalanceArea: QRect(0,0 0x0) -- dcbIterations: -1 -- dcbEnhanceFl: false -- expoCorrection: false -- expoCorrectionShift: 0.994 -- expoCorrectionHighlight: 0 --------------------------------------------------------- digikam.rawengine: LibRaw progress: Reading metadata pass 1 of 2 digikam.rawengine: LibRaw progress: Reading RAW data pass 0 of 2 digikam.general: Trying to load Embedded preview with libraw digikam.rawengine: Preview data size: 957794 digikam.rawengine: Preview data size: 957794 digikam.rawengine: Using embedded RAW preview extraction digikam.rawengine: Using embedded RAW preview extraction digikam.metaengine: Exif color-space tag is sRGB. Using default sRGB ICC profile. digikam.metaengine: Orientation => Exif.Image.Orientation => 1 digikam.rawengine: Preview data size: 957794 digikam.rawengine: Using embedded RAW preview extraction digikam.rawengine: Preview data size: 957794 digikam.rawengine: Using embedded RAW preview extraction digikam.rawengine: LibRaw progress: Reading RAW data pass 1 of 2 digikam.rawengine: Disabling LibRaw highlights adjustments digikam.rawengine: LibRaw progress: Scaling colors pass 0 of 2 Scaling with darkness 0, saturation 4095, and multipliers 1,644531 1,000000 1,585938 1,000000 digikam.rawengine: LibRaw progress: Scaling colors pass 1 of 2 digikam.rawengine: LibRaw progress: Pre-interpolating pass 0 of 2 digikam.rawengine: LibRaw progress: Pre-interpolating pass 1 of 2 Bilinear interpolation... digikam.rawengine: LibRaw progress: Interpolating pass 0 of 3 digikam.rawengine: LibRaw progress: Interpolating pass 1 of 3 digikam.rawengine: LibRaw progress: Interpolating pass 2 of 3 digikam.rawengine: LibRaw progress: Converting to RGB pass 0 of 2 Converting to sRGB colorspace... digikam.rawengine: LibRaw progress: Converting to RGB pass 1 of 2 digikam.rawengine: LibRaw: data info: width= 3900 height= 2613 rgbmax= 255 See my previous comment. It's a trace from the console running Showfoto, when i open a NEF file. Gilles Caulier Note: clang build-scan static analyzer report few important problem about libraw. I created a specific file in github about this problem : https://github.com/LibRaw/LibRaw/issues/187 Gilles Caulier Good Morning, so I tried running showfoto via terminal and then opening a NEF file via GUI. On the command line I'm getting the following output: digikam.widgets: Breeze icons resource file found dbus[13232]: Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded! KMemoryInfo: Platform identified : "Unknown" KMemoryInfo: TotalRam: -1 digikam.general: Allowing a cache size of 60 MB digikam.geoiface: "setting backend marble" digikam.showfoto: Switch to application font: QFont( ".SF NS Text,13,-1,5,50,0,0,0,0,0" ) digikam.widgets: Paths to color scheme : ("/opt/digikam/Applications/KF5/showfoto.app/Contents/Resources//digikam/colorschemes") digikam.widgets: "" :: "" QFSFileEngine::open: No file name specified digikam.geoiface: "ROADMAP" digikam.widgets: "" :: "" digikam.showfoto: Switch to application font: QFont( ".SF NS Text,13,-1,5,50,0,0,0,0,0" ) digikam.showfoto: Switch to widget style: "Fusion" digikam.geoiface: "ROADMAP" QWidgetWindow(0x7ffc3b47f400, name="mainToolBarWindow") ( QScreen(0x7ffc38c77830, name="iMac") ): Attempt to set a screen on a child window. QWidgetWindow(0x7ffc3b47f400, name="mainToolBarWindow") ( QScreen(0x7ffc38c77830, name="iMac") ): Attempt to set a screen on a child window. QWidgetWindow(0x7ffc3b47f400, name="mainToolBarWindow") ( QScreen(0x7ffc38c77830, name="iMac") ): Attempt to set a screen on a child window. QWidgetWindow(0x7ffc3b47f400, name="mainToolBarWindow") ( QScreen(0x7ffc38c77830, name="iMac") ): Attempt to set a screen on a child window. digikam.general: file formats= ("BMP Bild (*.bmp)", "CUR Bild (*.cur)", "GIF Bild (*.gif)", "ICNS Bild (*.icns)", "ICO Bild (*.ico)", "MNG Bild (*.mng)", "PBM Bild (*.pbm)", "PGM Bild (*.pgm)", "PNG Bild (*.png)", "PPM Bild (*.ppm)", "SVG Bild (*.svg)", "SVGZ Bild (*.svgz)", "TGA Bild (*.tga)", "WBMP Bild (*.wbmp)", "WEBP Bild (*.webp)", "XBM Bild (*.xbm)", "XPM Bild (*.xpm)", "TIFF-Bild (*.tiff *.tif)", "JPEG-Bild (*.jpg *.jpeg *.jpe)", "JPEG2000-Bild (*.jp2 *.j2k *.jpx *.pgx)", "Progressive-Graphics-Datei (*.pgf)", "Rohbilder (*.bay *.bmq *.cr2 *.crw *.cs1 *.dc2 *.dcr *.dng *.erf *.fff *.hdr *.k25 *.kdc *.mdc *.mos *.mrw *.nef *.orf *.pef *.pxn *.raf *.raw *.rdc *.sr2 *.srf *.x3f *.arw *.3fr *.cine *.ia *.kc2 *.mef *.nrw *.qtk *.rw2 *.sti *.rwl *.srw )", "Alle unterstützten Dateien (*.bmp *.cur *.gif *.icns *.ico *.mng *.pbm *.pgm *.png *.ppm *.svg *.svgz *.tga *.wbmp *.webp *.xbm *.xpm *.tiff *.tif *.jpg *.jpeg *.jpe *.jp2 *.j2k *.jpx *.pgx *.pgf *.bay *.bmq *.cr2 *.crw *.cs1 *.dc2 *.dcr *.dng *.erf *.fff *.hdr *.k25 *.kdc *.mdc *.mos *.mrw *.nef *.orf *.pef *.pxn *.raf *.raw *.rdc *.sr2 *.srf *.x3f *.arw *.3fr *.cine *.ia *.kc2 *.mef *.nrw *.qtk *.rw2 *.sti *.rwl *.srw )") objc[13232]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fff86108c90) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x15129fcd8). One of the two will be used. Which one is undefined. digikam.metaengine: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2016-02-14 16:38:45.000 CET Qt::TimeSpec(LocalTime)) digikam.metaengine: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2016-02-14 16:38:45.000 CET Qt::TimeSpec(LocalTime)) digikam.metaengine: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2016-02-14 16:38:45.000 CET Qt::TimeSpec(LocalTime)) digikam.metaengine: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2016-02-14 16:38:45.000 CET Qt::TimeSpec(LocalTime)) digikam.geoiface: ---- digikam.dimg: "/Users/benjcmin/Dropbox/tmp test/DSC_1796.NEF" : RAW file identified digikam.general: Trying to load Embedded preview with libraw Bus error: 10 logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. Deleting expired sessions...28 completed. [Prozess beendet] ------------------------------------------------ And in the crash report from macOS I found the following Thread 13 Crashed:: Thread (pooled) 0 libsystem_platform.dylib 0x00007fff50d74c69 _platform_bzero$VARIANT$Haswell + 41 1 libdigikamcore.6.0.0.dylib 0x0000000108125cbb LibRaw::LibRaw(unsigned int) + 219 2 libdigikamcore.6.0.0.dylib 0x000000010809b5e6 Digikam::DRawDecoder::loadEmbeddedPreview(QByteArray&, QString const&) + 630 3 libdigikamcore.6.0.0.dylib 0x000000010809a6e6 Digikam::DRawDecoder::loadEmbeddedPreview(QImage&, QString const&) + 54 4 libdigikamcore.6.0.0.dylib 0x00000001080414ea Digikam::ThumbnailCreator::createThumbnail(Digikam::ThumbnailInfo const&, QRect const&) const + 2122 5 libdigikamcore.6.0.0.dylib 0x000000010803f2c7 Digikam::ThumbnailCreator::load(Digikam::ThumbnailIdentifier const&, QRect const&, bool) const + 919 6 libdigikamcore.6.0.0.dylib 0x000000010803ef1f Digikam::ThumbnailCreator::load(Digikam::ThumbnailIdentifier const&) const + 79 7 libdigikamcore.6.0.0.dylib 0x0000000108050fe2 Digikam::ThumbnailLoadingTask::execute() + 1634 8 libdigikamcore.6.0.0.dylib 0x0000000108024424 Digikam::LoadSaveThread::run() + 372 9 libdigikamcore.6.0.0.dylib 0x00000001080244b9 non-virtual thunk to Digikam::LoadSaveThread::run() + 25 10 libdigikamcore.6.0.0.dylib 0x0000000108079773 Digikam::DynamicThread::Private::run() + 99 11 org.qt-project.QtCore 0x000000011001d6d3 0x10fff5000 + 165587 12 org.qt-project.QtCore 0x00000001100208f7 0x10fff5000 + 178423 13 libsystem_pthread.dylib 0x00007fff50d7a661 _pthread_body + 340 14 libsystem_pthread.dylib 0x00007fff50d7a50d _pthread_start + 377 15 libsystem_pthread.dylib 0x00007fff50d79bf9 thread_start + 13 Thread 13 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x000070000aaa61c8 rcx: 0x000000000004aa40 rdx: 0x000070000aaa61d0 rdi: 0x000070000aab0000 rsi: 0x0000000000000000 rbp: 0x000070000aaa6070 rsp: 0x000070000aaa6070 r8: 0x0000000000000000 r9: 0x000000000000800f r10: 0x0000000000000000 r11: 0x0000000000001e01 r12: 0x0000000108124dd0 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x000070000aaa61d0 rip: 0x00007fff50d74c69 rfl: 0x0000000000010202 cr2: 0x000070000aab0000 I'll post this aswell on GitHub for libRAW. But honestly as I'm not a developer I can't judge if this information is helpfuel. I just responded in UPSTREAM bug. It's clear: crash is in libraw preview image extraction code, not digiKam... Gilles Caulier FYI I added a link to an example file in the LibRaw bug Here it is aswell https://www.dropbox.com/sh/v7e3lcpfhen1ky2/AAAtspoPjJ0BxpDLA-R5rdtXa?dl=0 Still seems to be some confusion about wheter it's a pure LibRaw bug or some kind of combination bug as other tools seem not to crash on MaxOS with LibRaw 0.19 Git commit 031a951f0e9225834e3dfecc4d32389652c7b780 by Maik Qualmann. Committed on 27/09/2018 at 10:39. Pushed by mqualmann into branch 'master'. fix crash in LibRaw with operating systems with low stack size Related: bug 397808 FIXED-IN: 6.0.0 M +3 -1 NEWS M +67 -51 core/libs/rawengine/drawdecoder.cpp M +95 -80 core/libs/rawengine/drawdecoder_p.cpp M +2 -2 core/libs/rawengine/drawdecoder_p.h https://commits.kde.org/digikam/031a951f0e9225834e3dfecc4d32389652c7b780 Can confirm fix is working in latest beta1 build digiKam-6.0.0-beta1-20180927T175624-MacOS-x86-64 |
Created attachment 114894 [details] macOS crash report digikam 6 beta1 I tried to run DigiKam beta 1 on macos Process: digikam [891] Path: /opt/digikam/*/digikam.app/Contents/MacOS/digikam Identifier: digikam Version: 6.0.0 (6.0.0-beta1) OS Version: Mac OS X 10.13.6 (17G65) but it keeps crashing when searching for new items. I tried starting it from a diffrent user with no photos avaliable in the choosen folder and it started. But when adding fotos to the folder and rescanning it crashed again. So there seems to be something wrong with the scanning process?! As I'm a novice in this I can provide this maybe interesting part of the macos crash report: Thread 2 Crashed:: Digikam::ScanController 0 libsystem_platform.dylib 0x00007fff50d74c69 _platform_bzero$VARIANT$Haswell + 41 1 libdigikamcore.6.0.0.dylib 0x000000010b60ccbb LibRaw::LibRaw(unsigned int) + 219 2 libdigikamcore.6.0.0.dylib 0x000000010b584601 Digikam::DRawDecoder::rawFileIdentify(Digikam::RawInfo&, QString const&) + 641 3 libdigikamcore.6.0.0.dylib 0x000000010b1f63cf Digikam::RAWLoader::load(QString const&, Digikam::DImgLoaderObserver*) + 143 4 libdigikamcore.6.0.0.dylib 0x000000010b3f44b7 Digikam::DImg::load(QString const&, int, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) + 4743 5 libdigikamcore.6.0.0.dylib 0x000000010b3f31ba Digikam::DImg::loadImageInfo(QString const&, bool, bool, bool, bool) + 298 6 libdigikamdatabase.6.0.0.dylib 0x0000000113e6de02 Digikam::ImageScanner::loadFromDisk() + 242 7 libdigikamdatabase.6.0.0.dylib 0x0000000113e6e2dc Digikam::ImageScanner::newFile(int) + 28 8 libdigikamdatabase.6.0.0.dylib 0x0000000113d79657 Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) + 727 9 libdigikamdatabase.6.0.0.dylib 0x0000000113d74fc4 Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) + 2548 10 libdigikamdatabase.6.0.0.dylib 0x0000000113d7541d Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) + 3661 11 libdigikamdatabase.6.0.0.dylib 0x0000000113d73634 Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) + 180 12 libdigikamdatabase.6.0.0.dylib 0x0000000113d729d0 Digikam::CollectionScanner::completeScan() + 1136 13 libdigikamgui.6.0.0.dylib 0x0000000109fa92a8 Digikam::ScanController::run() + 968 14 org.qt-project.QtCore 0x000000011389e8f7 0x113873000 + 178423 15 libsystem_pthread.dylib 0x00007fff50d7a661 _pthread_body + 340 16 libsystem_pthread.dylib 0x00007fff50d7a50d _pthread_start + 377 17 libsystem_pthread.dylib 0x00007fff50d79bf9 thread_start + 13 the whole crash reported is attached