Summary: | digiKam froze on opening Settings | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Andrius <aegoreev> |
Component: | Setup-Metadata | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles, metzpinguin |
Priority: | NOR | ||
Version: | 5.5.0 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 7.1.0 | |
Sentry Crash Report: |
Description
Andrius
2017-01-31 17:52:59 UTC
Git commit d93eb848855e1d81f9c994a1414482f0bef0b47e by Gilles Caulier. Committed on 31/01/2017 at 19:06. Pushed by cgilles into branch 'master'. try to fix crash while parsing Exif std tags list to populate Exif viewer filter from Setup dialog M +3 -2 libs/dmetadata/metaengine_comments.cpp M +21 -8 libs/dmetadata/metaengine_exif.cpp M +13 -12 libs/dmetadata/metaengine_gps.cpp M +4 -4 libs/dmetadata/metaengine_iptc.cpp M +4 -4 libs/dmetadata/metaengine_xmp.cpp https://commits.kde.org/digikam/d93eb848855e1d81f9c994a1414482f0bef0b47e The new pre-version of 64 bits AppImage bundle 5.5.0 will be uploaded to GDrive in few minutes, including the last patch committed in this report. https://docs.google.com/document/d/1YOFkqIcoopQGZVWa3wioKz5Ue22Mi68dLYsG_YB2XSo/edit?usp=sharing Please test again with it. Gilles Caulier Youps sorry wrong url. right one : https://drive.google.com/drive/folders/0BzeiVr-byqt5Y0tIRWVWelRJenM Gilles, I have no EXIF tags listed in the Metadata tab (AppImage). Is Exiv2 broken from git? With my compiled version (still with Exiv2-0.2.5) no problems. Maik Maik, I confirm. I just tested under MacOS and it's reproducible. I will hack tomorow morning about this problem. Gilles Maik, We have a test code in digiKam core named "printtagslist" which print all Exif, Iptc, and XMP tags know by Exiv2 with description on the console. I can reproduce the dysfunction with 0.26, but not with 0.25. 2 solutions : 1/ the bug is in Exiv2 ==> UPSTREAM 2/ the code must be adapted in dmetadata to work fine with 0.26 due to API changes (perhaps). If it's the case, why old Exiv2 API is not annotated as deprecated ? Gilles Maik, I cleanup Exiv2 from trunk and recompiled all. Now the CLI test tool work as expected, but not the Setup/Metadata/View/Exif section... I continue to investiguate Gilles I found the problem why Exif viewer list is empty. Exiv2 generate a C++ exception : Thread 1 "digikam" hit Breakpoint 7, Digikam::MetaEngine::getStdExifTagsList (this=0x7fffffffaa00) at /mnt/data/5.x/core/libs/dmetadata/metaengine_exif.cpp:1106 1106 d->printExiv2ExceptionError(QString::fromLatin1("Cannot get Exif Tags list using Exiv2 "), e); (gdb) print e $51 = (Exiv2::Error &) @0x558fb50: {<Exiv2::AnyError> = {<No data fields>}, code_ = 23, count_ = 1, arg1_ = "8", arg2_ = "", arg3_ = "", msg_ = "Invalid ifdId 8"} ==> Invalid ifdId 8 This is strange because the code is exactly the same with CLI tool to print all Exiv2 know tags and the error do not appear. Gilles Arf... The error appear well with CLI tool. It's just too much verbose : -- Standard Exif Tags ------------------------------------------------------------- digikam.metaengine: Cannot get Exif Tags list using Exiv2 (Error # 23 : Invalid ifdId 8 -- Makernote Tags ----------------------------------------------------------------- Gilles Maik, I printed the tag name where the exception is generated : digikam.metaengine: Exif tag name: RelatedImageFileFormat digikam.metaengine: Exif tag name: RelatedImageWidth digikam.metaengine: Exif tag name: RelatedImageLength digikam.metaengine: Exif tag name: RelatedImageFileFormat digikam.metaengine: Exif tag name: RelatedImageWidth digikam.metaengine: Exif tag name: RelatedImageLength digikam.metaengine: Exif tag name: RelatedImageWidth digikam.metaengine: Exif tag name: RelatedImageLength digikam.metaengine: Exif tag name: RelatedImageLength digikam.metaengine: Exif tag name: MPFVersion digikam.metaengine: Cannot get Exif Tags list using Exiv2 (Error # 23 : Invalid ifdId 8 -- Makernote Tags ----------------------------------------------------------------- "MPFVersion" ... Gilles The problem come from MPF Tags declared from group at Exiv2::tags.cpp::line 2166. Typically, if i try to resume: Exiv2::ExifKey(Exiv2::ExifData::Internal::mpfTagsList()) Generate the exception... Gilles MPF doc : http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/MPF.html Gilles WildCowboy, The problem is in Exiv2 ExifTags class. We must be able to handle MPF tags with Exiv2::ExifKey as with other Exif tag groups... I wil fix digiKam to not handle MPF section for the moment, until Exiv2 is fixed. Please report this problem to Exiv2 bugzilla, as UPSTREAM. Gilles Caulier Git commit 9594cb3f9a334768aa21f827892b180ebb8c4050 by Gilles Caulier. Committed on 01/02/2017 at 14:10. Pushed by cgilles into branch 'master'. With new Exiv2 0.26, MPF Exif tags group have been introduced and generate an exception if we try to handle it M +6 -1 libs/dmetadata/metaengine_exif.cpp https://commits.kde.org/digikam/9594cb3f9a334768aa21f827892b180ebb8c4050 wildcowboy, New version of digiKam 5.5.0 pre-release AppImage bundle will be uploaded in few minites to GDrive. Please give me a feedback to see if crash is fixed. https://drive.google.com/drive/folders/0BzeiVr-byqt5Y0tIRWVWelRJenM Gilles Caulier Yes, works here fine now. Maik Thanks Maik... WildCowboy, This is very important to report this issue in Exiv2 bugzilla. There is a real bug in Exiv2 0.26-svn. My patch in DK source code is just a wrap around to prevent crash. Gilles Caulier Done. http://dev.exiv2.org/issues/1275 (In reply to caulier.gilles from comment #17) > Thanks Maik... > > WildCowboy, > > This is very important to report this issue in Exiv2 bugzilla. There is a > real bug in Exiv2 0.26-svn. My patch in DK source code is just a wrap around > to prevent crash. > > Gilles Caulier Thanks Gilles Caulier Could you follow up, please. http://dev.exiv2.org/issues/1275#change-5817 (In reply to caulier.gilles from comment #19) > Thanks > > Gilles Caulier WildCowboy, I already resume how to reproduce the exception in comment #11. It's possible that crash cannot be reproduced Exiv2 CLI tool if method explained in comment #11 is not used. Exiv2 team must take a look on my investigations on this report. I will not re-explain again the details. There is no need an image to test this crash. In digiKam it's happen when code extract all avaialble Exiftags with details, descriptions, etc... for the library database. Exiv2 tem must write a dedicated unit test code to reproduce this very simple exception case. Gilles Caulier Gilles, Could you help please? http://dev.exiv2.org/issues/1275#change-5820 (In reply to caulier.gilles from comment #21) > WildCowboy, > > I already resume how to reproduce the exception in comment #11. > It's possible that crash cannot be reproduced Exiv2 CLI tool if method > explained in comment #11 is not used. Exiv2 team must take a look on my > investigations on this report. I will not re-explain again the details. > > There is no need an image to test this crash. In digiKam it's happen when > code extract all avaialble Exiftags with details, descriptions, etc... for > the library database. > > Exiv2 tem must write a dedicated unit test code to reproduce this very > simple exception case. > > Gilles Caulier Git commit 91408e9ece701961beb09461d94b1f6fdaf6a01f by Gilles Caulier. Committed on 09/02/2017 at 15:57. Pushed by cgilles into branch 'master'. Exiv2 0.26-svn commit http://dev.exiv2.org/projects/exiv2/repository/revisions/4705 fix the MPF Exif group exception M +1 -2 libs/dmetadata/metaengine_exif.cpp https://commits.kde.org/digikam/91408e9ece701961beb09461d94b1f6fdaf6a01f *** Bug 377433 has been marked as a duplicate of this bug. *** Problem is not reproducible in 7.1.0 |