Bug 400140 - Digikam crash when exporting on google photos
Summary: Digikam crash when exporting on google photos
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-WebService-Google (show other bugs)
Version: 6.0.0
Platform: Appimage Linux
: NOR grave
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-22 06:49 UTC by Dav
Modified: 2019-03-28 20:45 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.1.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dav 2018-10-22 06:49:39 UTC
SUMMARY


STEPS TO REPRODUCE
1. Select numerous pictures to export on google photos,including raw and jpeg files.
2. Choose an auto create folder
3. Export
4. Digikam will crash

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE VERSIONS
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION


When lauching digikam from the command line, the last lines are:

Digikam::MetaEngine::Private::printExiv2MessageHandler: Exiv2 ( 2 ) :  Exif tag Exif.Photo.MakerNote not encoded

Digikam::MetaEngine::Private::printExiv2MessageHandler: Exiv2 ( 2 ) :  Exif tag Exif.Canon.0x4005 not encoded

/tmp/.mount_digikaWv0H8e/AppRun : ligne 115 : 11328 Erreur de segmentation  (core dumped) digikam $@
Comment 1 caulier.gilles 2018-10-22 12:55:19 UTC
Please run the AppImage bundle from command line with "debug" option to get a GDB backtrace.

Gilles Caulier
Comment 2 Dav 2018-10-23 07:03:50 UTC
hi gilles,

here's the backtrace.

Thread 1 "digikam" received signal SIGSEGV, Segmentation fault.
0x00000000000000c0 in ?? ()
(gdb) bt
#0  0x00000000000000c0 in ?? ()
#1  0x000000359f6e72ab in Exiv2::Image::printStructure (this=<optimized out>)
    at /b/ext_exiv2/ext_exiv2-prefix/src/ext_exiv2/src/image.cpp:175
#2  0x000000359f6d7a28 in Exiv2::ExifParser::encode (blob=..., pData=<optimized out>, size=<optimized out>, byteOrder=<optimized out>, 
    exifData=...) at /b/ext_exiv2/ext_exiv2-prefix/src/ext_exiv2/src/exif.cpp:794
#3  0x000000359f6f89af in Exiv2::JpegBase::doWriteMetadata (this=<optimized out>, outIo=...)
    at /b/ext_exiv2/ext_exiv2-prefix/src/ext_exiv2/src/jpgimage.cpp:1068
#4  0x000000359f6f9d37 in Exiv2::JpegBase::writeMetadata (this=<optimized out>)
    at /b/ext_exiv2/ext_exiv2-prefix/src/ext_exiv2/src/jpgimage.cpp:894
#5  0x00007ffff62de271 in Digikam::MetaEngine::Private::saveOperations (this=this@entry=0x48255a0, finfo=..., image=...)
    at /b/dktemp/digikam-v6.0.0-beta2/core/libs/dmetadata/metaengine_p.cpp:333
#6  0x00007ffff62e0c33 in Digikam::MetaEngine::Private::saveToFile (this=0x48255a0, finfo=...)
    at /b/dktemp/digikam-v6.0.0-beta2/core/libs/dmetadata/metaengine_p.cpp:184
#7  0x00007ffff62d9e4a in Digikam::MetaEngine::save (this=this@entry=0x7fffffffc000, imageFilePath=..., setVersion=setVersion@entry=true)
    at /b/dktemp/digikam-v6.0.0-beta2/core/libs/dmetadata/metaengine.cpp:437
#8  0x00007ffff6315d1b in Digikam::DMetadata::save (this=this@entry=0x7fffffffc000, filePath=..., setVersion=setVersion@entry=true)
    at /b/dktemp/digikam-v6.0.0-beta2/core/libs/dmetadata/dmetadata.cpp:114
#9  0x00007ffff6937ddb in Digikam::GPTalker::addPhoto (this=0x44c1b30, photoPath=..., albumId=..., rescale=rescale@entry=false, 
    maxDim=maxDim@entry=1600, imageQuality=100)
    at /b/dktemp/digikam-v6.0.0-beta2/core/utilities/assistants/webservices/google/gphoto/gptalker.cpp:345
#10 0x00007ffff6940fa0 in Digikam::GSWindow::uploadNextPhoto (this=this@entry=0x458f9c0)
    at /b/dktemp/digikam-v6.0.0-beta2/core/utilities/assistants/webservices/google/gswindow.cpp:915
#11 0x00007ffff6940801 in Digikam::GSWindow::slotAddPhotoDone (this=0x458f9c0, err=<optimized out>, msg=...)
    at /b/dktemp/digikam-v6.0.0-beta2/core/utilities/assistants/webservices/google/gswindow.cpp:1162
#12 0x00007ffff69c22df in Digikam::GSWindow::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, 
    _a=<optimized out>) at /b/dktemp/digikam-v6.0.0-beta2/build/core/utilities/assistants/webservices/moc_gswindow.cpp:158
#13 0x000000347bab9449 in QMetaObject::activate(QObject*, int, int, void**) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#14 0x00007ffff69be8a6 in Digikam::GPTalker::signalAddPhotoDone (this=this@entry=0x44c1b30, _t1=_t1@entry=1, _t2=...)
    at /b/dktemp/digikam-v6.0.0-beta2/build/core/utilities/assistants/webservices/moc_gptalker.cpp:293
#15 0x00007ffff6932714 in Digikam::GPTalker::parseResponseAddPhoto (this=this@entry=0x44c1b30, data=...)
    at /b/dktemp/digikam-v6.0.0-beta2/core/utilities/assistants/webservices/google/gphoto/gptalker.cpp:872
#16 0x00007ffff6936452 in Digikam::GPTalker::slotFinished (this=0x44c1b30, reply=<optimized out>)
    at /b/dktemp/digikam-v6.0.0-beta2/core/utilities/assistants/webservices/google/gphoto/gptalker.cpp:656
#17 0x000000347bab9449 in QMetaObject::activate(QObject*, int, int, void**) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#18 0x000000347ea3ed82 in QNetworkAccessManager::finished(QNetworkReply*) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Network.so.5
---Type <return> to continue, or q <return> to quit---
#19 0x000000347ea3f984 in ?? () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Network.so.5
#20 0x000000347ea43789 in ?? () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Network.so.5
#21 0x000000347bab9449 in QMetaObject::activate(QObject*, int, int, void**) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#22 0x000000347eaa6007 in ?? () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Network.so.5
#23 0x000000347eb39779 in ?? () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Network.so.5
#24 0x000000347baba3a1 in QObject::event(QEvent*) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#25 0x00007fffeef0036c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Widgets.so.5
#26 0x00007fffeef07797 in QApplication::notify(QObject*, QEvent*) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Widgets.so.5
#27 0x000000347ba8ee68 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#28 0x000000347ba914fb in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#29 0x000000347bae2193 in ?? () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#30 0x00007fffec058287 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffec0584c0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffec05854c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x000000347bae173f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#34 0x000000347ba8d45a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#35 0x000000347ba95d34 in QCoreApplication::exec() () from /tmp/.mount_digikantK4Ab/usr/lib/libQt5Core.so.5
#36 0x00000000004050b1 in main (argc=1, argv=<optimized out>) at /b/dktemp/digikam-v6.0.0-beta2/core/app/main/main.cpp:290

Regards
Comment 3 caulier.gilles 2018-10-23 07:55:07 UTC
Ok. It's very interresting, as next Exiv2 0.27 (not yet released is used inside the DK AppImage).

The crash is clear : It's inside Exiv2, not DK, when metadata are written inside a JPEG file just before to upload in Google web service.

Which Google upload option did you use ? Did you resize the original image and re-encode as JPEG ? Did you upload the original ?

Gilles Caulier
Comment 4 caulier.gilles 2018-10-23 07:56:46 UTC
Try also to identify the file which crash DK while processing. The idea is to try to reproduce the problem with Exiv2 CLI tool before to report the problem to Exiv2 team.

Gilles Caulier
Comment 5 Dav 2018-10-23 08:44:58 UTC
(In reply to caulier.gilles from comment #3)
> Ok. It's very interresting, as next Exiv2 0.27 (not yet released is used
> inside the DK AppImage).
> 
> The crash is clear : It's inside Exiv2, not DK, when metadata are written
> inside a JPEG file just before to upload in Google web service.
> 
> Which Google upload option did you use ? Did you resize the original image
> and re-encode as JPEG ? Did you upload the original ?
> 
> Gilles Caulier

Hello Gilles,

No option checked.
The upload was made in an existing folder.

Cheers
Comment 6 caulier.gilles 2018-10-23 09:05:31 UTC
ok, so original file is uploaded.

Can you identify a single file where the problem is always reproducible ?

If yes, please share a copy of the original JPEG taken by camera and not post-processed.

Gilles Caulier
Comment 7 caulier.gilles 2018-10-23 09:06:49 UTC
Just to be sure, Which Exiv2 version do you see in Help/Components Info dialog from DK ?

Gilles Caulier
Comment 8 Dav 2018-10-23 20:54:30 UTC
(In reply to caulier.gilles from comment #7)
> Just to be sure, Which Exiv2 version do you see in Help/Components Info
> dialog from DK ?
> 
> Gilles Caulier

hello Gilles,

digikam version 6.0.0-beta2
CPU cores: 4
Eigen: 3.2.5
Exiv2: 0.27.0
Exiv2 can write to Jp2: Yes
Exiv2 can write to Jpeg: Yes
Exiv2 can write to Pgf: Yes
Exiv2 can write to Png: Yes
Exiv2 can write to Tiff: Yes
Exiv2 supports XMP metadata: Yes
KF5: 5.49.0
LensFun: 0.3.95-0
LibCImg: 130
LibJPEG: 80
LibJasper: 2.0.14
LibLCMS: 2080
LibLqr support: No
LibPGF: 7.15.32
LibPNG: 1.6.34
LibRaw: 0.19.0
LibTIFF: 4.0.9
Marble: 0.27.20
Parallelized demosaicing: No
Qt: 5.9.6
VKontakte support: No
AkonadiContact support: no
Baloo support: no
Calendar support: yes
DBus support: Yes
Database backend: QMYSQL
Database internal server: No
HTML Gallery support: yes
LibAVCodec: 57.89.100
LibAVFormat: 57.71.100
LibAVUtil: 55.58.100
LibGphoto2: 2.5.18
LibOpenCV: 3.4.1
LibQtAV: 1.12.0
Media player support: Yes
Panorama support: yes

Regards
Comment 9 Dav 2018-10-23 21:20:49 UTC
(In reply to caulier.gilles from comment #6)
> ok, so original file is uploaded.
> 
> Can you identify a single file where the problem is always reproducible ?
> 
> If yes, please share a copy of the original JPEG taken by camera and not
> post-processed.
> 
> Gilles Caulier

Yes, I got it.
It's not a JPEG file, but a RAW one.
How can I share it?

Regards
Comment 10 caulier.gilles 2018-10-23 22:04:29 UTC
ok, so the google export tool convert RAw to JPEG before to upload file.

Please share RAW file using a cloud webservice.

Gilles Caulier
Comment 11 Dav 2018-10-24 03:51:27 UTC
(In reply to caulier.gilles from comment #10)
> ok, so the google export tool convert RAw to JPEG before to upload file.
> 
> Please share RAW file using a cloud webservice.
> 
> Gilles Caulier

https://drive.google.com/file/d/1iY1nuXYKS26duTeiekf6-DAR5IIaF5gW/view?usp=sharing
Comment 12 caulier.gilles 2018-10-25 08:58:23 UTC
The crash appear in this section of code :

https://cgit.kde.org/digikam.git/tree/core/utilities/assistants/webservices/google/gphoto/gptalker.cpp#n316

So for a RAW file, we ask to DK PreviewEngine, to extract RAW preview with libraw, which is saved as temporary JPG file through QImage class.
After that, the JPEG metadata are adjusted using DMetadata with Exiv2.

The crash is located at this last stage.

I will write an unit-test for this kind of code using your RAW file.

Gilles Caulier
Comment 13 caulier.gilles 2018-10-25 10:22:17 UTC
Git commit 7a56854b80eb2b8d6c66956f3eb77ed5fd7492d0 by Gilles Caulier.
Committed on 25/10/2018 at 10:13.
Pushed by cgilles into branch 'master'.

Add webservice pre-processing unit-test about preview extraction and patch metadata before to upload item.

M  +13   -1    core/tests/metadataengine/CMakeLists.txt
A  +-    --    core/tests/metadataengine/data/IMG_2520.CR2
A  +102  -0    core/tests/metadataengine/patchpreviewtest.cpp     [License: GPL (v2+)]
A  +48   -0    core/tests/metadataengine/patchpreviewtest.h     [License: GPL (v2+)]

https://commits.kde.org/digikam/7a56854b80eb2b8d6c66956f3eb77ed5fd7492d0
Comment 14 caulier.gilles 2018-10-25 10:30:21 UTC
Maik,

Look this crash backtrace from the new unit test (unrelated with this entry):

[gilles@localhost metadataengine (master)]$ ./patchPreviewTest
********* Start testing of PatchPreviewTest *********
Config: Using QtTest library 5.9.4, Qt 5.9.4 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.4.0)
PASS   : PatchPreviewTest::initTestCase()
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() File to process: "/mnt/data/GIT/6.x/core/tests/metadataengine/data/IMG_2520.CR2"
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() KMemoryInfo: Platform identified :  "LINUX"
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() KMemoryInfo: TotalRam:  8306032640
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.general: Allowing a cache size of 200 MB

========= Received signal, dumping stack ==============
GNU gdb (GDB) 7.12-16.1.mga6 (Mageia release 6)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-mageia-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Attaching to process 19566
[New LWP 19567]
[New LWP 19568]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
0x00007ffb208514c3 in waitpid () from /usr/lib64/qt5/../libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.22-29.mga6.x86_64 lib64alsa2-1.1.4.1-1.mga6.x86_64 lib64ass9-0.13.6-1.mga6.x86_64 lib64astro1-17.12.2-1.1.mga6.x86_64 lib64asyncns0-0.8-9.mga6.x86_64 lib64attica5-5.42.0-1.mga6.x86_64 lib64avcodec57-3.3.8-1.mga6.tainted.x86_64 lib64avfilter6-3.3.8-1.mga6.tainted.x86_64 lib64avformat57-3.3.8-1.mga6.tainted.x86_64 lib64avresample3-3.3.8-1.mga6.tainted.x86_64 lib64avutil55-3.3.8-1.mga6.tainted.x86_64 lib64blkid1-2.28.2-2.1.mga6.x86_64 lib64bsd0-0.8.3-1.mga6.x86_64 lib64bzip2_1-1.0.6-10.mga6.x86_64 lib64cdio-paranoia2-10.2.0.93.1-8.mga6.x86_64 lib64cdio16-0.94-1.1.mga6.x86_64 lib64celt0_2-0.11.3-6.mga6.x86_64 lib64dbus1_3-1.10.16-1.mga6.x86_64 lib64dbusmenu-qt5_2-0.9.3-1.20160218.1.mga6.x86_64 lib64dc1394_22-2.2.5-2.mga6.x86_64 lib64drm2-2.4.91-1.1.mga6.x86_64 lib64expat1-2.2.1-1.mga6.x86_64 lib64fam0-0.1.10-17.mga6.x86_64 lib64ffi6-3.2.1-5.mga6.x86_64 lib64flac8-1.3.2-1.1.mga6.x86_64 lib64fontconfig1-2.12.1-2.mga6.x86_64 lib64freetype6-2.7.1-2.2.mga6.tainted.x86_64 lib64fribidi0-0.19.7-3.mga6.x86_64 lib64gcrypt20-1.7.10-1.mga6.x86_64 lib64gio2.0_0-2.54.3-1.2.mga6.x86_64 lib64glapi0-17.3.9-1.mga6.x86_64 lib64glib2.0_0-2.54.3-1.2.mga6.x86_64 lib64gmp10-6.1.2-1.mga6.x86_64 lib64gnutls30-3.5.13-1.mga6.x86_64 lib64gpg-error0-1.24-1.mga6.x86_64 lib64graphite2_3-1.3.10-1.1.mga6.x86_64 lib64gsm1-1.0.17-1.mga6.x86_64 lib64gstreamer-plugins-base1.0_0-1.10.4-1.mga6.x86_64 lib64gstreamer1.0_0-1.10.4-1.mga6.x86_64 lib64harfbuzz0-1.3.2-5.mga6.x86_64 lib64hyphen0-2.8.8-6.mga6.x86_64 lib64ical2-2.0.0-2.1.mga6.x86_64 lib64icalss2-2.0.0-2.1.mga6.x86_64 lib64ice6-1.0.9-5.mga6.x86_64 lib64icu58-58.2-3.2.mga6.x86_64 lib64ieee1284_3-0.2.11-15.mga6.x86_64 lib64jack0-1.9.10-6.mga6.x86_64 lib64jasper1-1.900.23-5.1.mga6.x86_64 lib64jbig1-2.1-4.mga6.x86_64 lib64jpeg8-1.5.1-1.2.mga6.x86_64 lib64karchive5-5.42.0-1.mga6.x86_64 lib64kconfigCore5-5.42.0-1.mga6.x86_64 lib64kconfigGui5-5.42.0-1.mga6.x86_64 lib64kf5auth5-5.42.0-1.mga6.x86_64 lib64kf5calendarcore5-17.12.2-1.mga6.x86_64 lib64kf5codecs5-5.42.0-1.1.mga6.x86_64 lib64kf5completion5-5.42.0-2.2.mga6.x86_64 lib64kf5configwidgets5-5.42.0-1.1.mga6.x86_64 lib64kf5coreaddons5-5.42.0-1.mga6.x86_64 lib64kf5dbusaddons5-5.42.0-1.mga6.x86_64 lib64kf5filemetadata5-5.42.0-1.mga6.x86_64 lib64kf5globalaccel5-5.42.0-1.mga6.x86_64 lib64kf5guiaddons5-5.42.0-1.mga6.x86_64 lib64kf5i18n5-5.42.0-1.mga6.x86_64 lib64kf5iconthemes5-5.42.0-1.mga6.x86_64 lib64kf5jobwidgets5-5.42.0-1.2.mga6.x86_64 lib64kf5kiocore5-5.42.0-1.mga6.x86_64 lib64kf5kiowidgets5-5.42.0-1.mga6.x86_64 lib64kf5notifications5-5.42.0-1.mga6.x86_64 lib64kf5notifyconfig5-5.42.0-1.2.mga6.x86_64 lib64kf5parts5-5.42.0-1.mga6.x86_64 lib64kf5service5-5.42.0-1.mga6.x86_64 lib64kf5solid5-5.42.0-1.mga6.x86_64 lib64kf5sonnetcore5-5.42.0-1.mga6.x86_64 lib64kf5sonnetui5-5.42.0-1.mga6.x86_64 lib64kf5textwidgets5-5.42.0-1.2.mga6.x86_64 lib64kf5threadweaver5-5.42.0-1.mga6.x86_64 lib64kf5wallet5-5.42.0-1.mga6.x86_64 lib64kf5webkit5-5.42.0-1.mga6.x86_64 lib64kf5widgetsaddons5-5.42.0-1.mga6.x86_64 lib64kf5windowsystem5-5.42.0-1.mga6.x86_64 lib64kf5xmlgui5-5.42.0-1.mga6.x86_64 lib64kitemviews5-5.42.0-1.2.mga6.x86_64 lib64lcms2_2-2.8-2.1.mga6.x86_64 lib64lensfun1-0.3.2-2.2.mga6.x86_64 lib64lqr0-0.4.2-5.mga6.x86_64 lib64lzma5-5.2.3-1.mga6.x86_64 lib64marblewidget-qt5_28-17.12.2-1.1.mga6.x86_64 lib64mesagl1-17.3.9-1.mga6.x86_64 lib64mesaglu1-9.0.0-6.1.mga6.x86_64 lib64modplug1-0.8.9.0-1.mga6.x86_64 lib64mount1-2.28.2-2.1.mga6.x86_64 lib64mp3lame0-3.100-1.2.mga6.x86_64 lib64nut0-0.0.675-8.mga6.x86_64 lib64ogg0-1.3.2-4.mga6.x86_64 lib64openal1-1.17.2-4.mga6.x86_64 lib64opencl1-2.2.11-1.mga6.x86_64 lib64opencore-amr0-0.1.3-1.mga6.tainted.x86_64 lib64opencv_core2.4-2.4.12.3-5.mga6.x86_64 lib64opencv_imgproc2.4-2.4.12.3-5.mga6.x86_64 lib64openjpeg5-1.5.2-8.mga6.x86_64 lib64openssl1.0.0-1.0.2p-1.mga6.x86_64 lib64opus0-1.1.5-1.mga6.x86_64 lib64orc0.4_0-0.4.26-1.mga6.x86_64 lib64p11-kit0-0.23.2-2.mga6.x86_64 lib64pcre1-8.41-1.mga6.x86_64 lib64phonon4qt5_4-4.10.0-1.mga6.x86_64 lib64png16_16-1.6.34-1.mga6.x86_64 lib64postproc54-3.3.8-1.mga6.tainted.x86_64 lib64pulseaudio0-10.0-1.1.mga6.x86_64 lib64pulsecommon10.0-10.0-1.1.mga6.x86_64 lib64pulseglib20-10.0-1.1.mga6.x86_64 lib64qt5concurrent5-5.9.4-1.1.mga6.x86_64 lib64qt5core5-5.9.4-1.1.mga6.x86_64 lib64qt5dbus5-5.9.4-1.1.mga6.x86_64 lib64qt5gui5-5.9.4-1.1.mga6.x86_64 lib64qt5network5-5.9.4-1.1.mga6.x86_64 lib64qt5opengl5-5.9.4-1.1.mga6.x86_64 lib64qt5positioning5-5.9.4-1.mga6.x86_64 lib64qt5printsupport5-5.9.4-1.1.mga6.x86_64 lib64qt5qml5-5.9.4-1.mga6.x86_64 lib64qt5quick5-5.9.4-1.mga6.x86_64 lib64qt5sensors5-5.9.4-1.mga6.x86_64 lib64qt5sql5-5.9.4-1.1.mga6.x86_64 lib64qt5svg5-5.9.4-1.mga6.x86_64 lib64qt5test5-5.9.4-1.1.mga6.x86_64 lib64qt5webchannel5-5.9.4-1.mga6.x86_64 lib64qt5webkit5-5.212.0-1.alpha2.7.1.mga6.x86_64 lib64qt5webkitwidgets5-5.212.0-1.alpha2.7.1.mga6.x86_64 lib64qt5widgets5-5.9.4-1.1.mga6.x86_64 lib64qt5x11extras5-5.9.4-1.mga6.x86_64 lib64qt5xml5-5.9.4-1.1.mga6.x86_64 lib64qt5xmlpatterns5-5.9.4-1.mga6.x86_64 lib64qtav1-1.12.0-1.mga6.x86_64 lib64qtavwidgets1-1.12.0-1.mga6.x86_64 lib64raw1394_11-2.1.2-1.mga6.x86_64 lib64rtmp1-2.4-0.git20160101.3.mga6.tainted.x86_64 lib64sane1-1.0.25-5.mga6.x86_64 lib64schroedinger1.0_0-1.0.11-8.mga6.x86_64 lib64sdl2.0_0-2.0.5-2.1.mga6.x86_64 lib64sm6-1.2.2-6.mga6.x86_64 lib64sndfile1-1.0.28-3.3.mga6.x86_64 lib64speex1-1.2-0.rc2.2.mga6.x86_64 lib64sqlite3_0-3.22.0-2.1.mga6.x86_64 lib64swresample2-3.3.8-1.mga6.tainted.x86_64 lib64swscaler4-3.3.8-1.mga6.tainted.x86_64 lib64systemd0-230-12.3.mga6.x86_64 lib64tasn1_6-4.13-1.mga6.x86_64 lib64theoradec1-1.1.1-11.mga6.x86_64 lib64theoraenc1-1.1.1-11.mga6.x86_64 lib64tiff5-4.0.9-1.6.mga6.x86_64 lib64twolame0-0.3.13-7.mga6.x86_64 lib64uchardet0-0.0.6-1.mga6.x86_64 lib64udev1-230-12.3.mga6.x86_64 lib64unistring2-0.9.7-1.mga6.x86_64 lib64usb1.0_0-1.0.21-1.mga6.x86_64 lib64uuid1-2.28.2-2.1.mga6.x86_64 lib64v4l0-1.12.5-1.mga6.x86_64 lib64va1-1.7.3-3.mga6.x86_64 lib64vdpau1-1.1.1-2.mga6.x86_64 lib64vo-amrwbenc0-0.1.3-2.mga6.tainted.x86_64 lib64vorbis0-1.3.5-2.4.mga6.x86_64 lib64vorbisenc2-1.3.5-2.4.mga6.x86_64 lib64vpx3-1.5.0-3.1.mga6.x86_64 lib64webp6-0.5.2-2.mga6.x86_64 lib64wrap0-7.6-47.mga6.x86_64 lib64x11-xcb1-1.6.5-1.1.mga6.x86_64 lib64x11_6-1.6.5-1.1.mga6.x86_64 lib64x264_148-0.148-0.20170120.stable.5.mga6.tainted.x86_64 lib64x265_102-2.2-1.mga6.tainted.x86_64 lib64xau6-1.0.8-7.mga6.x86_64 lib64xavs1-0.1.55-8.mga6.x86_64 lib64xcb-dri2_0-1.12-2.mga6.x86_64 lib64xcb-dri3_0-1.12-2.mga6.x86_64 lib64xcb-glx0-1.12-2.mga6.x86_64 lib64xcb-present0-1.12-2.mga6.x86_64 lib64xcb-shape0-1.12-2.mga6.x86_64 lib64xcb-shm0-1.12-2.mga6.x86_64 lib64xcb-sync1-1.12-2.mga6.x86_64 lib64xcb-util-keysyms1-0.4.0-3.mga6.x86_64 lib64xcb-xfixes0-1.12-2.mga6.x86_64 lib64xcb1-1.12-2.mga6.x86_64 lib64xcomposite1-0.4.4-8.mga6.x86_64 lib64xdamage1-1.1.4-8.mga6.x86_64 lib64xdmcp6-1.1.2-5.mga6.x86_64 lib64xext6-1.3.3-4.mga6.x86_64 lib64xfixes3-5.0.3-1.mga6.x86_64 lib64xml2_2-2.9.7-1.mga6.x86_64 lib64xrender1-0.9.10-1.mga6.x86_64 lib64xshmfence1-1.2-2.mga6.x86_64 lib64xslt1-1.1.29-6.mga6.x86_64 lib64xv1-1.0.11-1.mga6.x86_64 lib64xvidcore4-1.3.4-3.mga6.tainted.x86_64 lib64xxf86vm1-1.1.4-2.mga6.x86_64 lib64zlib1-1.2.11-4.1.mga6.x86_64 libgcc1-5.5.0-1.mga6.x86_64 libstdc++6-5.5.0-1.mga6.x86_64
(gdb) 
Thread 3 (Thread 0x7ffb05cd5700 (LWP 19568)):
#0  0x00007ffb2dffcff8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib64/qt5/../libpthread.so.0
#1  0x00007ffb21489cb6 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/qt5/../libQt5Core.so.5
#2  0x00007ffb30cb483a in QTest::WatchDog::run() () at /usr/lib64/qt5/../libQt5Test.so.5
#3  0x00007ffb21488eea in QThreadPrivate::start(void*) () at /usr/lib64/qt5/../libQt5Core.so.5
#4  0x00007ffb2dff766d in start_thread () at /usr/lib64/qt5/../libpthread.so.0
#5  0x00007ffb20889e0d in clone () at /usr/lib64/qt5/../libc.so.6

Thread 2 (Thread 0x7ffb06b18700 (LWP 19567)):
#0  0x00007ffb2dffcc4f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib64/qt5/../libpthread.so.0
#1  0x00007ffb21110d1c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib64/qt5/../libstdc++.so.6
#2  0x00007ffb2d29708e in bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() ()
    at /usr/lib64/qt5/../libQt5WebKit.so.5
#3  0x00007ffb2d2971a9 in  () at /usr/lib64/qt5/../libQt5WebKit.so.5
#4  0x00007ffb21115ea0 in execute_native_thread_routine () at /usr/lib64/qt5/../libstdc++.so.6
#5  0x00007ffb2dff766d in start_thread () at /usr/lib64/qt5/../libpthread.so.0
#6  0x00007ffb20889e0d in clone () at /usr/lib64/qt5/../libc.so.6

Thread 1 (Thread 0x7ffb08420880 (LWP 19566)):
#0  0x00007ffb208514c3 in waitpid () at /usr/lib64/qt5/../libc.so.6
#1  0x00007ffb207d314c in do_system () at /usr/lib64/qt5/../libc.so.6
#2  0x00007ffb30cab92c in stackTrace() [clone .part.2] () at /usr/lib64/qt5/../libQt5Test.so.5
#3  0x00007ffb30cab9cd in stackTrace() () at /usr/lib64/qt5/../libQt5Test.so.5
#4  0x00007ffb30caba62 in QTest::FatalSignalHandler::signal(int) () at /usr/lib64/qt5/../libQt5Test.so.5
#5  0x00007ffb2e000bb0 in <signal handler called> () at /usr/lib64/qt5/../libpthread.so.0
#6  0x00007ffb22050cf0 in QScreen::depth() const () at /usr/lib64/qt5/../libQt5Gui.so.5
#7  0x00007ffb2fb2d15f in Digikam::LoadingCache::setThumbnailCacheSize(int, int) (this=0x11e94e0, numberOfQImages=5, numberOfQPixmaps=100) at /mnt/data/GIT/6.x/core/libs/threadimageio/loadingcache.cpp:307
#8  0x00007ffb2fb2c836 in Digikam::LoadingCache::LoadingCache() (this=0x11e94e0)
    at /mnt/data/GIT/6.x/core/libs/threadimageio/loadingcache.cpp:167
        memory = {d = {d = 0x11f29e0}}
#9  0x00007ffb2fb2c6e3 in Digikam::LoadingCache::cache() () at /mnt/data/GIT/6.x/core/libs/threadimageio/loadingcache.cpp:151
#10 0x00007ffb2fb36cfc in Digikam::PreviewLoadingTask::execute() (this=0x7fff847e9f80)
    at /mnt/data/GIT/6.x/core/libs/threadimageio/previewtask.cpp:58
        cache = 0x408396 <PatchPreviewTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>
        format = 18829280
        __PRETTY_FUNCTION__ = "virtual void Digikam::PreviewLoadingTask::execute()"
#11 0x00007ffb2fb36b48 in Digikam::PreviewLoadThread::loadSynchronously(Digikam::LoadingDescription const&) (description=...)
    at /mnt/data/GIT/6.x/core/libs/threadimageio/previewloadthread.cpp:138
        task = 
          {<Digikam::SharedLoadingTask> = {<Digikam::LoadingTask> = {<Digikam::LoadSaveTask> = {_vptr.LoadSaveTask = 0x7ffb309e4080 <vtable for Digikam::PreviewLoadingTask+16>, m_thread = 0x0}, <Digikam::DImgLoaderObserver> = {_vptr.DImgLoaderObserver = 0x7ffb309e4128 <vtable for Digikam::PreviewLoadingTask+184>}, m_loadingDescription = {filePath = {static null = {<No data fields>}, d = 0x11e8bb0}, rawDecodingSettings = {_vptr.DRawDecoding = 0x7ffb309dcf18 <vtable for Digikam::DRawDecoding+16>, rawPrm = {_vptr.DRawDecoderSettings = 0x7ffb309e5658 <vtable for Digikam::DRawDecoderSettings+16>, fixColorsHighlights = false, autoBrightness = true, sixteenBitsImage = false, halfSizeColorImage = true, whiteBalance = Digikam::DRawDecoderSettings::CAMERA, customWhiteBalance = 6500, customWhiteBalanceGreen = 1, RGBInterpolate4Colors = false, DontStretchPixels = false, unclipColors = 0, RAWQuality = Digikam::DRawDecoderSettings::BILINEAR, medianFilterPasses = 0, NRType = Digikam::DRawDecoderSettings::NONR, NRThreshold = 0, brightness = 1, enableBlackPoint = false, blackPoint = 0, enableWhitePoint = false, whitePoint = 0, inputColorSpace = Digikam::DRawDecoderSettings::NOINPUTCS, inputProfile = {static null = {<No data fields>}, d = 0x7ffb2175a400 <QArrayData::shared_null>}, outputColorSpace = Digikam::DRawDecoderSettings::SRGB, outputProfile = {static null = {<No data fields>}, d = 0x7ffb2175a400 <QArrayData::shared_null>}, deadPixelMap = {static null = {<No data fields>}, d = 0x7ffb2175a400 <QArrayData::shared_null>}, whiteBalanceArea = {x1 = 0, y1 = 0, x2 = -1, y2 = -1}, dcbIterations = -1, dcbEnhanceFl = false, expoCorrection = false, expoCorrectionShift = 1, expoCorrectionHighlight = 0}, bcg = {channel = 0, brightness = 0, contrast = 0, gamma = 1}, wb = {black = 0, expositionMain = 0, expositionFine = 0, temperature = 6500, green = 1, dark = 0.5, gamma = 1, saturation = 1, maxr = -1, maxg = -1, maxb = -1}, curvesAdjust = {curvesType = 0, values = {{<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}}, sixteenBit = false}}, rawDecodingHint = Digikam::LoadingDescription::RawDecodingTimeOptimized, previewParameters = {type = Digikam::LoadingDescription::PreviewParameters::PreviewImage, size = 0, flags = {i = 0}, previewSettings = {quality = Digikam::PreviewSettings::HighQualityPreview, rawLoading = Digikam::PreviewSettings::RawPreviewAutomatic, zoomOrgSize = true, convertToEightBit = true}, extraParameter = {d = {data = {c = 0 '\000', uc = 0 '\000', s = 0, sc = 0 '\000', us = 0, i = 0, u = 0, l = 0, ul = 0, b = false, d = 0, f = 0, real = 0, ll = 0, ull = 0, o = 0x0, ptr = 0x0, shared = 0x0}, type = 0, is_shared = 0, is_null = 1}}, storageReference = {d = {data = {c = 0 '\000', uc = 0 '\000', s = 0, sc = 0 '\000', us = 0, i = 0, u = 0, l = 0, ul = 0, b = false, d = 0, f = 0, real = 0, ll = 0, ull = 0, o = 0x0, ptr = 0x0, shared = 0x0}, type = 0, is_shared = 0, is_null = 1}}}, postProcessingParameters = {colorManagement = Digikam::LoadingDescription::ConvertForDisplay, iccData = {d = {data = {c = 64 '@', uc = 64 '@', s = -26560, sc = 64 '@', us = 38976, i = 18782272, u = 18782272, l = 18782272, ul = 18782272, b = 64, d = 9.2796753460459614e-317, f = 2.91292508e-38, real = 9.2796753460459614e-317, ll = 18782272, ull = 18782272, o = 0x11e9840, ptr = 0x11e9840, shared = 0x11e9840}, type = 1052, is_shared = 1, is_null = 0}}}}, m_loadingTaskStatus = Digikam::LoadingTask::LoadingTaskStatusLoading}, <Digikam::LoadingProcess> = {_vptr.LoadingProcess = 0x7ffb309e4160 <vtable for Digikam::PreviewLoadingTask+240>}, <Digikam::LoadingProcessListener> = {_vptr.LoadingProcessListener = 0x7ffb309e41b0 <vtable for Digikam::PreviewLoadingTask+320>}, m_completed = false, m_accessMode = Digikam::LoadSaveThread::AccessModeReadWrite, m_usedProcess = 0x0, m_listeners = {<QListSpecialMethods<Digikam::LoadingProcessListener*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffb2175bec0 <QListData::shared_null>}, d = 0x7ffb2175bec0 <QListData::shared_null>}}, m_img = {m_priv = {d = 0x11e98e0}}, m_resultLoadingDescription = {filePath = {static null = {<No data fields>}, d = 0x11e8bb0}, rawDecodingSettings = {_vptr.DRawDecoding = 0x7ffb309dcf18 <vtable for Digikam::DRawDecoding+16>, rawPrm = {_vptr.DRawDecoderSettings = 0x7ffb309e5658 <vtable for Digikam::DRawDecoderSettings+16>, fixColorsHighlights = false, autoBrightness = true, sixteenBitsImage = false, halfSizeColorImage = true, whiteBalance = Digikam::DRawDecoderSettings::CAMERA, customWhiteBalance = 6500, customWhiteBalanceGreen = 1, RGBInterpolate4Colors = false, DontStretchPixels = false, unclipColors = 0, RAWQuality = Digikam::DRawDecoderSettings::BILINEAR, medianFilterPasses = 0, NRType = Digikam::DRawDecoderSettings::NONR, NRThreshold = 0, brightness = 1, enableBlackPoint = false, blackPoint = 0, enableWhitePoint = false, whitePoint = 0, inputColorSpace = Digikam::DRawDecoderSettings::NOINPUTCS, inputProfile = {static null = {<No data fields>}, d = 0x7ffb2175a400 <QArrayData::shared_null>}, outputColorSpace = Digikam::DRawDecoderSettings::SRGB, outputProfile = {static null = {<No data fields>}, d = 0x7ffb2175a400 <QArrayData::shared_null>}, deadPixelMap = {static null = {<No data fields>}, d = 0x7ffb2175a400 <QArrayData::shared_null>}, whiteBalanceArea = {x1 = 0, y1 = 0, x2 = -1, y2 = -1}, dcbIterations = -1, dcbEnhanceFl = false, expoCorrection = false, expoCorrectionShift = 1, expoCorrectionHighlight = 0}, bcg = {channel = 0, brightness = 0, contrast = 0, gamma = 1}, wb = {black = 0, expositionMain = 0, expositionFine = 0, temperature = 6500, green = 1, dark = 0.5, gamma = 1, saturation = 1, maxr = -1, maxg = -1, maxb = -1}, curvesAdjust = {curvesType = 0, values = {{<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}, {<QVector<QPoint>> = {d = 0x7ffb2175a400 <QArrayData::shared_null>}, <No data fields>}}, sixteenBit = false}}, rawDecodingHint = Digikam::LoadingDescription::RawDecodingTimeOptimized, previewParameters = {type = Digikam::LoadingDescription::PreviewParameters::PreviewImage, size = 0, flags = {i = 0}, previewSettings = {quality = Digikam::PreviewSettings::HighQualityPreview, rawLoading = Digikam::PreviewSettings::RawPreviewAutomatic, zoomOrgSize = true, convertToEightBit = true}, extraParameter = {d = {data = {c = 0 '\000', uc = 0 '\000', s = 0, sc = 0 '\000', us = 0, i = 0, u = 0, l = 0, ul = 0, b = false, d = 0, f = 0, real = 0, ll = 0, ull = 0, o = 0x0, ptr = 0x0, shared = 0x0}, type = 0, is_shared = 0, is_null = 1}}, storageReference = {d = {data = {c = 0 '\000', uc = 0 '\000', s = 0, sc = 0 '\000', us = 0, i = 0, u = 0, l = 0, ul = 0, b = false, d = 0, f = 0, real = 0, ll = 0, ull = 0, o = 0x0, ptr = 0x0, shared = 0x0}, type = 0, is_shared = 0, is_null = 1}}}, postProcessingParameters = {colorManagement = Digikam::LoadingDescription::ConvertForDisplay, iccData = {d = {data = {c = 64 '@', uc = 64 '@', s = -26560, sc = 64 '@', us = 38976, i = 18782272, u = 18782272, l = 18782272, ul = 18782272, b = 64, d = 9.2796753460459614e-317, f = 2.91292508e-38, real = 9.2796753460459614e-317, ll = 18782272, ull = 18782272, o = 0x11e9840, ptr = 0x11e9840, shared = 0x11e9840}, type = 1052, is_shared = 1, is_null = 0}}}}}, m_qimage = <incomplete type>, m_fromRawEmbeddedPreview = false}
#12 0x00007ffb2fb36a10 in Digikam::PreviewLoadThread::loadHighQualitySynchronously(QString const&, Digikam::PreviewSettings::RawLoading, Digikam::IccProfile const&) (filePath=..., rawLoadingMode=Digikam::PreviewSettings::RawPreviewAutomatic, profile=...)
    at /mnt/data/GIT/6.x/core/libs/threadimageio/previewloadthread.cpp:127
        settings = 
          {quality = Digikam::PreviewSettings::HighQualityPreview, rawLoading = Digikam::PreviewSettings::RawPreviewAutomatic, zoomOrgSize = true, convertToEightBit = true}
#13 0x00000000004065d8 in PatchPreviewTest::patchPreview(QString const&, bool, int, int) (this=0x7fff847eb1a0, file=..., rescale=true, maxDim=1024, imageQuality=100) at /mnt/data/GIT/6.x/core/tests/metadataengine/patchpreviewtest.cpp:64
        __PRETTY_FUNCTION__ = "void PatchPreviewTest::patchPreview(const QString&, bool, int, int)"
        ret = false
        image = <incomplete type>
        path = {static null = {<No data fields>}, d = 0xc}
        imgQualityToApply = 0
        meta = {<Digikam::MetaEngine> = {_vptr.MetaEngine = 0x408991, d = 0xc}, <No data fields>}
#14 0x00000000004064b8 in PatchPreviewTest::testExtractPreviewAndFixMetadata() (this=0x7fff847eb1a0)
    at /mnt/data/GIT/6.x/core/tests/metadataengine/patchpreviewtest.cpp:52
#15 0x00000000004083e7 in PatchPreviewTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x7fff847eb1a0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fff847ea8b0)
    at /mnt/data/GIT/6.x/build/core/tests/metadataengine/patchPreviewTest_automoc.dir/moc_patchpreviewte_2EREAS7DUWV4ZN.cpp:80
        _t = 0x7fff847eb1a0
#16 0x00007ffb21663326 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const () at /usr/lib64/qt5/../libQt5Core.so.5
#17 0x00007ffb30cb2b74 in QTest::TestMethods::invokeTestOnData(int) const () at /usr/lib64/qt5/../libQt5Test.so.5
#18 0x00007ffb30cb3496 in QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const ()
    at /usr/lib64/qt5/../libQt5Test.so.5
#19 0x00007ffb30cb3aa2 in QTest::TestMethods::invokeTests(QObject*) const () at /usr/lib64/qt5/../libQt5Test.so.5
#20 0x00007ffb30cb3f8e in QTest::qExec(QObject*, int, char**) () at /usr/lib64/qt5/../libQt5Test.so.5
#21 0x00000000004063e6 in main(int, char**) (argc=1, argv=0x7fff847eb2b8)
    at /mnt/data/GIT/6.x/core/tests/metadataengine/patchpreviewtest.cpp:39
        app = <incomplete type>
        tc = 
              {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7ffb2190d820 <QObject::staticMetaObject>, stringdata = 0x408aa0 <qt_meta_stringdata_PatchPreviewTest>, data = 0x408b80 <qt_meta_data_PatchPreviewTest>, static_metacall = 0x408396 <PatchPreviewTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
Detaching from program: /mnt/data/GIT/6.x/build/core/tests/metadataengine/patchPreviewTest, process 19566
========= End of stack trace ==============
QFATAL : PatchPreviewTest::testExtractPreviewAndFixMetadata() Received signal 11
         Function time: 1ms Total time: 2ms
FAIL!  : PatchPreviewTest::testExtractPreviewAndFixMetadata() Received a fatal error.
   Loc: [Unknown file(0)]
Totals: 1 passed, 1 failed, 0 skipped, 0 blacklisted, 9286ms
********* Finished testing of PatchPreviewTest *********
Abandon (core dumped)

This show a crash in PreviewLoadThread with QScreen when it run in QtTest separated thread, even if we don't use Color MAnagement (default settings).

The crash is normal, as X11 API is not reentrant, but i would to know why, QScreen is used here with this call, as we use default settings which do not use CM.

Gilles
Comment 15 caulier.gilles 2018-10-25 10:31:40 UTC
Maik,

This can explain some crashes while preview extraction that we can see in Face Management workflow ?

Gilles
Comment 16 Maik Qualmann 2018-10-25 19:19:17 UTC
Git commit 661beffcbfe47a0044639463544b02020adc5ba5 by Maik Qualmann.
Committed on 25/10/2018 at 19:18.
Pushed by mqualmann into branch 'master'.

fix QVERIFY false/true logic in the PatchPreviewTest

M  +2    -2    core/tests/metadataengine/patchpreviewtest.cpp

https://commits.kde.org/digikam/661beffcbfe47a0044639463544b02020adc5ba5
Comment 17 Maik Qualmann 2018-10-25 19:21:39 UTC
It clearly crashes in Exiv2 trying to write the metadata to the temporary QImage.

Maik
Comment 18 caulier.gilles 2018-10-25 19:57:57 UTC
I fixed the code to backport all metadat from RAW to JPEG :

    DMetadata meta;
    ret = meta.load(file);

    QByteArray exif = meta.getExifEncoded();
    QByteArray iptc = meta.getIptc();
    QByteArray xmp  = meta.getXmp();

    meta.load(path);
    meta.setExif(exif);
    meta.setIptc(iptc);
    meta.setXmp(xmp);
    meta.setImageDimensions(image.size());
    meta.setImageOrientation(MetaEngine::ORIENTATION_NORMAL);
    meta.setMetadataWritingMode((int)DMetadata::WRITETOIMAGEONLY);
    ret = meta.applyChanges(true);

This code is inspired from Panorama tool which backport from RAW to TIFF.

It still crash but now i know where exactly : meta.getExifEncoded()

#0  0x00007fd8a2b794c3 in waitpid () at /usr/lib64/qt5/../libc.so.6
#1  0x00007fd8a2afb14c in do_system () at /usr/lib64/qt5/../libc.so.6
#2  0x00007fd8b2fd392c in stackTrace() [clone .part.2] () at /usr/lib64/qt5/../libQt5Test.so.5
#3  0x00007fd8b2fd39cd in stackTrace() () at /usr/lib64/qt5/../libQt5Test.so.5
#4  0x00007fd8b2fd3a62 in QTest::FatalSignalHandler::signal(int) () at /usr/lib64/qt5/../libQt5Test.so.5
#5  0x00007fd8b0328bb0 in <signal handler called> () at /usr/lib64/qt5/../libpthread.so.0
#6  0x00007fd8ab452de2 in Exiv2::ExifParser::encode(std::vector<unsigned char, std::allocator<unsigned char> >&, unsigned char const*, unsigned int, Exiv2::ByteOrder, Exiv2::ExifData const&) () at /usr/lib64/qt5/../libexiv2.so.0
#7  0x00007fd8b1dcf38b in Exiv2::ExifParser::encode(std::vector<unsigned char, std::allocator<unsigned char> >&, Exiv2::ByteOrder, Exiv2::ExifData const&) (blob=std::vector of length 0, capacity 0, byteOrder=Exiv2::bigEndian, exifData=...)
    at /usr/include/exiv2/exif.hpp:622
#8  0x00007fd8b1dc6bc7 in Digikam::MetaEngine::getExifEncoded(bool) const (this=0x7ffe5b6b87f0, addExifHeader=false)
    at /mnt/data/GIT/6.x/core/libs/metadataengine/engine/metaengine_exif.cpp:104

For me it's clearly an Exiv2 problem. Loading Exif metadata must not be a problem here...

Gilles Caulier
Comment 19 caulier.gilles 2018-10-25 20:04:50 UTC
But the Exiv2 0.27 CLI tool do not crash with the CR2 file :

./exiv2 -pa ./IMG_2520.CR2 
Exif.Image.ImageWidth                        Short       1  6240
Exif.Image.ImageLength                       Short       1  4160
Exif.Image.BitsPerSample                     Short       3  8 8 8
Exif.Image.Compression                       Short       1  JPEG (old-style)
Exif.Image.Make                              Ascii       6  Canon
Exif.Image.Model                             Ascii      21  Canon EOS 6D Mark II
Exif.Image.StripOffsets                      Long        1  39934458
Exif.Image.Orientation                       Short       1  top, left
Exif.Image.StripByteCounts                   Long        1  5981241
Exif.Image.XResolution                       Rational    1  72
Exif.Image.YResolution                       Rational    1  72
Exif.Image.ResolutionUnit                    Short       1  inch
Exif.Image.DateTime                          Ascii      20  2018:10:21 10:58:11
Exif.Image.Artist                            Ascii      12  Matthieu M.
Exif.Image.XMLPacket                         Byte      4316  (Binary value suppressed)
Exif.Image.Copyright                         Ascii      20  All rights reserved
...
Comment 20 Maik Qualmann 2018-10-25 20:11:39 UTC
The reading of metadata does not crash even under digiKam, only by writing to a new jpeg file...

Maik
Comment 21 caulier.gilles 2018-10-25 20:16:15 UTC
Here, the crash appear while reading Exif data, at line 100 of unit test. If i comment lines 100 and 105 the unit test pass fine.

Gilles
Comment 22 caulier.gilles 2018-10-27 04:05:28 UTC
Confirmed : Exiv2 CLI tool crash at exactly the same place when i want to extract the Exif data from CR2:

(gdb) r
Starting program: /usr/bin/exiv2 -e e ./IMG_2520.CR2
Missing separate debuginfos, use: debuginfo-install glibc-2.22-29.mga6.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
exiv2: Overwrite `./IMG_2520.exv'? y
Warning: Exif tag Exif.Photo.MakerNote not encoded
Warning: Exif tag Exif.Canon.0x4005 not encoded

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff797bde2 in Exiv2::ExifParser::encode(std::vector<unsigned char, std::allocator<unsigned char> >&, unsigned char const*, unsigned int, Exiv2::ByteOrder, Exiv2::ExifData const&) () from /usr/bin/../lib64/libexiv2.so.0
Missing separate debuginfos, use: debuginfo-install lib64expat1-2.2.1-1.mga6.x86_64 lib64zlib1-1.2.11-4.1.mga6.x86_64 libgcc1-5.5.0-1.mga6.x86_64 libstdc++6-5.5.0-1.mga6.x86_64
(gdb) bt
#0  0x00007ffff797bde2 in Exiv2::ExifParser::encode(std::vector<unsigned char, std::allocator<unsigned char> >&, unsigned char const*, unsigned int, Exiv2::ByteOrder, Exiv2::ExifData const&) () from /usr/bin/../lib64/libexiv2.so.0
#1  0x00007ffff79a9e89 in Exiv2::JpegBase::doWriteMetadata(Exiv2::BasicIo&) () from /usr/bin/../lib64/libexiv2.so.0
#2  0x00007ffff79a8cda in Exiv2::JpegBase::writeMetadata() () from /usr/bin/../lib64/libexiv2.so.0
#3  0x000000000042e96c in (anonymous namespace)::metacopy(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) ()
#4  0x00000000004277b2 in Action::Extract::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#5  0x0000000000412b4e in main ()
(gdb) 

I report this problem as UPSTREAM to Exiv2 team

Gilles Caulier
Comment 23 caulier.gilles 2018-10-27 08:01:35 UTC
UPSTREAM bug : https://github.com/Exiv2/exiv2/issues/496

Gilles Caulier
Comment 24 caulier.gilles 2018-10-27 08:30:35 UTC
Ok, I found the problem. See my comment on UPSTREAM bug.

To resume : official Exiv2 0.27-RC1 just released today fix the crash. I will rebuild the AppImage bundle accordingly next week.

Note : the unit test pass successfully now with Exiv2 0.27-RC1:

[gilles@localhost metadataengine (master)]$ ./patchPreviewTest
********* Start testing of PatchPreviewTest *********
Config: Using QtTest library 5.9.4, Qt 5.9.4 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.4.0)
PASS   : PatchPreviewTest::initTestCase()
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() File to process: "/mnt/data/GIT/6.x/core/tests/metadataengine/data/IMG_2520.CR2"
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() KMemoryInfo: Platform identified :  "LINUX"
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() KMemoryInfo: TotalRam:  8306032640
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.general: Allowing a cache size of 200 MB
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: index:  0
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: d->properties:  3
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: Exif color-space tag is sRGB. Using default sRGB ICC profile.
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: Orientation => Exif.Image.Orientation => 1
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() Temporary target file: "/tmp/digikam-patchpreviewtest-7184/IMG_2520.jpg"
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: Exiv2 ( 2 ) :  Exif tag Exif.Photo.MakerNote not encoded

QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: Exiv2 ( 2 ) :  Exif tag Exif.Canon.0x4005 not encoded

QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: Exif.Image.Orientation tag set to: 1
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: MetaEngine::metadataWritingMode 0
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: Will write Metadata to file "/tmp/digikam-patchpreviewtest-7184/IMG_2520.jpg"
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: wroteComment:  true
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: wroteEXIF:  true
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: wroteIPTC:  true
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: wroteXMP:  true
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: File time stamp restored
QDEBUG : PatchPreviewTest::testExtractPreviewAndFixMetadata() digikam.metaengine: Metadata for file "IMG_2520.jpg" written to file.
PASS   : PatchPreviewTest::testExtractPreviewAndFixMetadata()
PASS   : PatchPreviewTest::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 1284ms
********* Finished testing of PatchPreviewTest *********

Gilles Caulier
Comment 25 caulier.gilles 2018-10-30 08:43:44 UTC
The new AppImage Linux bundle 64 bits is uploaded here :

https://files.kde.org/digikam/

It include the new Exiv2 code which much fix your problem. Please test and report.

Gilles Caulier
Comment 26 caulier.gilles 2018-12-31 11:49:48 UTC
Can you reproduce the dysfunction using the last digiKam 6.0.0-beta3 just
released ?

https://www.digikam.org/news/2018-12-30-6.0.0-beta3_release_announcement/
Comment 27 caulier.gilles 2019-03-07 05:19:15 UTC
Good news,

After 2 weeks of works, the pre-release 6.1.0 bundles are now reconstructed from scratch with:

- All OpenCV options for CUDA, OPenMP, and OPenCL disabled to prevent crashes
in face management.
- A large upgrade of Qt5 from 5.9.7 to 5.11.3.
- An upgrade to KF5 5.55.
- An upgrade to Ffmpeg 3.3.9
- The fontconfig/freetype integration in the bundle to reduce system
dependencies

Files can be downloaded here :

https://files.kde.org/digikam/

Please test and report.

Gilles Caulier
Comment 28 caulier.gilles 2019-03-20 15:16:01 UTC
After 3 weeks of work, i finally completed the compilation of AppImage using Qt
5.11.3 + QWebkit 5.212.

New 6.1.0 pre-release AppImage bundle can be found here (64 bits only for the
moment) :

https://files.kde.org/digikam/

Please check if this bugzilla entry still valid.

Thanks in advance

Gilles Caulier
Comment 29 Maik Qualmann 2019-03-28 20:45:00 UTC
The crash can no longer be reproduced with Exiv2-0.27. I close the bug.

Maik