Bug 340093 - digiKam freezed with 100% CPU when rebuilding video thumbnails
Summary: digiKam freezed with 100% CPU when rebuilding video thumbnails
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Thumbs-Video (show other bugs)
Version: 4.2.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-18 13:12 UTC by Mathieu Clabaut
Modified: 2017-07-27 10:58 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 5.4.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mathieu Clabaut 2014-10-18 13:12:27 UTC
Digikam initially freezed for unknown reason.
So, I've erased digikam4.db and rebuilt the collection (metadata stored in each photo), but it hangs again, apparently when trying to rebuild thumbnails.

Reproducible: Always

Steps to Reproduce:
1. Open digikam
2. wait


Actual Results:  
Digikams hangs.


Console output :

$ digikam 
Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QString)
Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QString)
QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
kbuildsycoca4 running...
Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QString)
Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QString)
Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QString)
Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QString)
digikam(29286)/KEXIV2: Cannot load metadata from file   (Error # 11 :  /home/photo/2001-10/Tatiana1.mpg: The file contains data of an unknown image type 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::createThumbnail: Cannot create thumbnail for  "/home/photo/2001-10/Tatiana1.mpg" 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::load: Thumbnail is null for  "/home/photo/2001-10/Tatiana1.mpg" 
digikam(29286)/KEXIV2: Cannot load metadata from file   (Error # 11 :  /home/photo/2001-10/Tatiana2.mpg: The file contains data of an unknown image type 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::createThumbnail: Cannot create thumbnail for  "/home/photo/2001-10/Tatiana2.mpg" 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::load: Thumbnail is null for  "/home/photo/2001-10/Tatiana2.mpg" 
digikam(29286)/KEXIV2: Cannot load metadata from file   (Error # 11 :  /home/photo/2001-10/TatianaMathieu.mpg: The file contains data of an unknown image type 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::createThumbnail: Cannot create thumbnail for  "/home/photo/2001-10/TatianaMathieu.mpg" 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::load: Thumbnail is null for  "/home/photo/2001-10/TatianaMathieu.mpg" 
digikam(29286)/KEXIV2: Cannot load metadata from file   (Error # 11 :  /home/photo/2001-10/Tatiana1.mpg: The file contains data of an unknown image type 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::createThumbnail: Cannot create thumbnail for  "/home/photo/2001-10/Tatiana1.mpg" 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::load: Thumbnail is null for  "/home/photo/2001-10/Tatiana1.mpg" 
kioslave: ####### CRASH ###### protocol = thumbnail pid = 29360 signal = 11


BackTrace :
#0  0x00007fb65eb250d9 in syscall () from /usr/lib/libc.so.6
#1  0x00007fb6607f1963 in ?? () from /usr/lib/libQtCore.so.4
#2  0x00007fb6607edf4d in QMutex::lock() () from /usr/lib/libQtCore.so.4
#3  0x00007fb663219b04 in Digikam::ThumbnailDatabaseAccess::ThumbnailDatabaseAccess (this=<optimized out>)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/database/core/thumbnaildatabaseaccess.cpp:87
#4  0x00007fb66323ef3e in Digikam::ThumbnailCreator::deleteFromDatabase (
    this=this@entry=0x7fff72461a60, info=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:947
#5  0x00007fb663242c17 in Digikam::ThumbnailCreator::deleteThumbnailsFromDisk (
    this=this@entry=0x7fff72461a60, filePath=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:422
#6  0x00007fb663246d49 in Digikam::ThumbnailLoadThread::deleteThumbnail (
    filePath=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailloadthread.cpp:955
#7  0x0000000000524fb4 in Digikam::ThumbsTask::setItem (
    this=this@entry=0x72bacc0, path=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/utilities/maintenance/thumbstask.cpp:72
---Type <return> to continue, or q <return> to quit---
#8  0x00000000005318be in Digikam::MaintenanceThread::generateThumbs (
    this=0x72907a0, paths=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/utilities/maintenance/maintenancethread.cpp:100
#9  0x00000000005248fa in Digikam::ThumbsGenerator::slotStart (this=0x3a97db0)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/utilities/maintenance/thumbsgenerator.cpp:189
#10 0x00007fb66090d6ae in QObject::event(QEvent*) ()
   from /usr/lib/libQtCore.so.4
#11 0x00007fb65fa19f0c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/libQtGui.so.4
#12 0x00007fb65fa2048d in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#13 0x00007fb66139331a in KApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libkdeui.so.5
#14 0x00007fb6608f558d in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/libQtCore.so.4
#15 0x00007fb6608f86dd in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#16 0x00007fb6609229e3 in ?? () from /usr/lib/libQtCore.so.4
#17 0x00007fb657784c7d in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#18 0x00007fb657784f68 in ?? () from /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#19 0x00007fb65778501c in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
#20 0x00007fb6609222a5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#21 0x00007fb65fab6fb6 in ?? () from /usr/lib/libQtGui.so.4
#22 0x00007fb6608f415f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#23 0x00007fb6608f4455 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#24 0x00007fb6608f9719 in QCoreApplication::exec() ()
   from /usr/lib/libQtCore.so.4
#25 0x00000000004941a4 in main (argc=<optimized out>, argv=<optimized out>)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/digikam/main/main.cpp:236
Comment 1 Mathieu Clabaut 2014-10-18 13:17:57 UTC
Looks like Right clicking on a directory and choosing "Rebuild Thumbnail" make digikam freezed at once.
Comment 2 caulier.gilles 2014-10-20 13:10:35 UTC
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::createThumbnail: Cannot create thumbnail for  "/home/photo/2001-10/Tatiana1.mpg" 
digikam(29286)/digikam (core) Digikam::ThumbnailCreator::load: Thumbnail is null for  "/home/photo/2001-10/Tatiana1.mpg" 
kioslave: ####### CRASH ###### protocol = thumbnail pid = 29360 signal = 11

Sound like your crash appear when video thumbnails are created using Exiv2 shared lib. The backtrace provided do not show any code from Exiv2 or libkexiv2 shared libs.

Can you try to get a better backtrace runing digiKam into GDB as explained here :

https://www.digikam.org/contrib
Comment 3 Mathieu Clabaut 2014-10-21 09:19:54 UTC
> gdb digikam
(gdb) catch throw
(gdb) run
…
[Switching to Thread 0x7fff44ff9700 (LWP 9006)]
Catchpoint 1 (exception thrown), 0x00007ffff1645100 in __cxa_throw ()
   from /usr/lib/libstdc++.so.6
(gdb) bt
#0  0x00007ffff1645100 in __cxa_throw () from /usr/lib/libstdc++.so.6
#1  0x00007fffedf39e46 in Exiv2::ImageFactory::open(std::string const&) ()
   from /usr/lib/libexiv2.so.13
#2  0x00007ffff5bd5613 in KExiv2Iface::KExiv2::load(QString const&) const ()
   from /usr/lib/libkexiv2.so.11
#3  0x00007ffff54ce7e6 in Digikam::DMetadata::load (
    this=this@entry=0x7fff44ff8720, filePath=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/dmetadata/dmetadata.cpp:110
#4  0x00007ffff54ce862 in Digikam::DMetadata::DMetadata (this=0x7fff44ff8720, 
    filePath=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/dmetadata/dmetadata.cpp:72
#5  0x00007ffff55275f5 in Digikam::ThumbnailCreator::createThumbnail (
    this=this@entry=0x1c62ce0, info=..., detailRect=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:441
#6  0x00007ffff552b0d6 in Digikam::ThumbnailCreator::load (this=0x1c62ce0, 
    path=..., rect=..., pregenerate=pregenerate@entry=true)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:261
#7  0x00007ffff552c350 in Digikam::ThumbnailCreator::pregenerate (
    this=<optimized out>, path=...)
---Type <return> to continue, or q <return> to quit---
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:184
#8  0x00007ffff5539e10 in Digikam::ThumbnailLoadingTask::execute (
    this=0x7fff2804ac60)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailtask.cpp:82
#9  0x00007ffff551162e in Digikam::LoadSaveThread::run (this=0x10ae3f0)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/loadsavethread.cpp:136
#10 0x00007ffff554f33e in Digikam::DynamicThread::DynamicThreadPriv::run (
    this=0x1ca5100)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threads/dynamicthread.cpp:186
#11 0x00007ffff2acddfe in ?? () from /usr/lib/libQtCore.so.4
#12 0x00007ffff2ad9ebf in ?? () from /usr/lib/libQtCore.so.4
#13 0x00007fffef041314 in start_thread () from /usr/lib/libpthread.so.0
#14 0x00007ffff0e103ed in clone () from /usr/lib/libc.so.6

(gdb) c
…
digikam(8947)/KEXIV2: Cannot load metadata from file   (Error # 11 :  /home/photo/2001-10/Tatiana1.mpg: The file contains data of an unknown image type 
…
digikam(8947)/digikam (core) Digikam::ThumbnailCreator::createThumbnail: Cannot create thumbnail for  "/home/photo/2001-10/Tatiana1.mpg" 
digikam(8947)/digikam (core) Digikam::ThumbnailCreator::load: Thumbnail is null for  "/home/photo/2001-10/Tatiana1.mpg" 
Catchpoint 1 (exception thrown), 0x00007ffff1645100 in __cxa_throw ()
   from /usr/lib/libstdc++.so.6
(gdb) bt
#0  0x00007ffff1645100 in __cxa_throw () from /usr/lib/libstdc++.so.6
#1  0x00007fffedf39e46 in Exiv2::ImageFactory::open(std::string const&) ()
   from /usr/lib/libexiv2.so.13
#2  0x00007ffff5bd5613 in KExiv2Iface::KExiv2::load(QString const&) const ()
   from /usr/lib/libkexiv2.so.11
#3  0x00007ffff54ce7e6 in Digikam::DMetadata::load (
    this=this@entry=0x7fff44ff8720, filePath=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/dmetadata/dmetadata.cpp:110
#4  0x00007ffff54ce862 in Digikam::DMetadata::DMetadata (this=0x7fff44ff8720, 
    filePath=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/dmetadata/dmetadata.cpp:72
#5  0x00007ffff55275f5 in Digikam::ThumbnailCreator::createThumbnail (
    this=this@entry=0x1c62ce0, info=..., detailRect=...)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:441
#6  0x00007ffff552b0d6 in Digikam::ThumbnailCreator::load (this=0x1c62ce0, 
    path=..., rect=..., pregenerate=pregenerate@entry=true)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:261
#7  0x00007ffff552c350 in Digikam::ThumbnailCreator::pregenerate (
    this=<optimized out>, path=...)
---Type <return> to continue, or q <return> to quit---
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailcreator.cpp:184
#8  0x00007ffff5539e10 in Digikam::ThumbnailLoadingTask::execute (
    this=0x7fff28078a70)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/thumbnailtask.cpp:82
#9  0x00007ffff551162e in Digikam::LoadSaveThread::run (this=0x10ae3f0)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threadimageio/loadsavethread.cpp:136
#10 0x00007ffff554f33e in Digikam::DynamicThread::DynamicThreadPriv::run (
    this=0x1ca5100)
    at /home/clabaut/contrib/digikam/src/digikam-4.2.0/core/libs/threads/dynamicthread.cpp:186
#11 0x00007ffff2acddfe in ?? () from /usr/lib/libQtCore.so.4
#12 0x00007ffff2ad9ebf in ?? () from /usr/lib/libQtCore.so.4
#13 0x00007fffef041314 in start_thread () from /usr/lib/libpthread.so.0
#14 0x00007ffff0e103ed in clone () from /usr/lib/libc.so.6
Comment 4 caulier.gilles 2014-10-21 09:25:40 UTC
Yes, it's an upstream bug from Exiv2 shared lib.

Please report this problem to Exiv2 bugzilla...

Gilles Caulier
Comment 5 caulier.gilles 2016-12-22 13:54:43 UTC
digiKam 5.4.0 bundles will use QtAV framework instead Qt5Multimedia to thumb
and play video. The Slideshow tool will also support video as well.

QtAV use ffmpeg codecs. It's multi-platform and will always available in
OSX, Windows and Linux bundles that digiKam team provide.

For Linux packagers, you will need to turn on video support at compilation time
and solve QtAV dependencies...

The screenshot here :

https://www.flickr.com/photos/digikam/30886133553/in/dateposted-public/

... is based on pre-release of AppImage 64 bits Linux bundle, just recompiled
and post to GDrive for testing.

https://drive.google.com/drive/folders/0BzeiVr-byqt5Y0tIRWVWelRJenM