Bug 343736

Summary: crashes when rebuilding thumbnails from database
Product: [Applications] digikam Reporter: sAs_o <s4sasho>
Component: Metadata-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, simonandric5
Priority: NOR Keywords: drkonqi
Version: 4.6.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 6.0.0

Description sAs_o 2015-02-03 14:25:46 UTC
Application: digikam (4.6.0)
KDE Platform Version: 4.14.2
Qt Version: 4.8.6
Operating System: Linux 3.13.0-45-generic x86_64
Distribution: Ubuntu 14.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:
nothing. crashes when rebuilding thumbnails from database
- Unusual behavior I noticed:
none. crashes when rebuilding thumbnails from database
- Custom settings of the application:
none. crashes when rebuilding thumbnails from database

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
[Current thread is 1 (Thread 0x7fa5d1d78ac0 (LWP 13975))]

Thread 7 (Thread 0x7fa5aae70700 (LWP 13977)):
#0  0x00007fa5ca946cbd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fa5afce4248 in ?? () from /lib/x86_64-linux-gnu/libusb-1.0.so.0
#2  0x00007fa5c7ae8182 in start_thread (arg=0x7fa5aae70700) at pthread_create.c:312
#3  0x00007fa5ca95400d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 6 (Thread 0x7fa5a4709700 (LWP 13979)):
[KCrash Handler]
#6  0x00007fa5ca8c84e1 in _IO_acquire_lock_fct (p=<synthetic pointer>) at libioP.h:905
#7  __GI__IO_fread (buf=<optimized out>, size=1, count=2097, fp=0x7fa59c1fc6c0) at iofread.c:41
#8  0x00007fa5c8a4c926 in Exiv2::RiffVideo::infoTagsHandler() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#9  0x00007fa5c8a51855 in Exiv2::RiffVideo::decodeBlock() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#10 0x00007fa5c8a514a8 in Exiv2::RiffVideo::tagDecoder(Exiv2::DataBuf&, unsigned long) () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#11 0x00007fa5c8a51855 in Exiv2::RiffVideo::decodeBlock() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#12 0x00007fa5c8a51bc8 in Exiv2::RiffVideo::readMetadata() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#13 0x00007fa5d01759e5 in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib/libkexiv2.so.11
#14 0x00007fa5cfa92866 in Digikam::DMetadata::load(QString const&) const () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#15 0x00007fa5cf4f16df in Digikam::ImageScanner::loadFromDisk() () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#16 0x00007fa5cf4f18d0 in Digikam::ImageScanner::newFile(int) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#17 0x00007fa5cf48a6f6 in Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#18 0x00007fa5cf48d86f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#19 0x00007fa5cf48d727 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#20 0x00007fa5cf48d727 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#21 0x00007fa5cf48e133 in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#22 0x00007fa5cf48ed0d in Digikam::CollectionScanner::completeScan() () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#23 0x00000000005dad5f in ?? ()
#24 0x00007fa5cb42f32f in QThreadPrivate::start (arg=0x283d600) at thread/qthread_unix.cpp:349
#25 0x00007fa5c7ae8182 in start_thread (arg=0x7fa5a4709700) at pthread_create.c:312
#26 0x00007fa5ca95400d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 5 (Thread 0x7fa5a3f08700 (LWP 13980)):
#0  0x00007fff659fea1f in ?? ()
#1  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fa5a1d38700 (LWP 13987)):
#0  __GI___pthread_mutex_lock (mutex=0x7fa58c000a60) at ../nptl/pthread_mutex_lock.c:161
#1  0x00007fa5c2aca981 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa5c2a880b0 in g_main_context_acquire () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa5c2a88ea5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fa5c2a890ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fa5cb55e7be in QEventDispatcherGlib::processEvents (this=0x7fa58c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#6  0x00007fa5cb5300af in QEventLoop::processEvents (this=this@entry=0x7fa5a1d37ae0, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007fa5cb5303a5 in QEventLoop::exec (this=this@entry=0x7fa5a1d37ae0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007fa5cb42cc5f in QThread::exec (this=this@entry=0x28d89c0) at thread/qthread.cpp:537
#9  0x00007fa5cb511823 in QInotifyFileSystemWatcherEngine::run (this=0x28d89c0) at io/qfilesystemwatcher_inotify.cpp:265
#10 0x00007fa5cb42f32f in QThreadPrivate::start (arg=0x28d89c0) at thread/qthread_unix.cpp:349
#11 0x00007fa5c7ae8182 in start_thread (arg=0x7fa5a1d38700) at pthread_create.c:312
#12 0x00007fa5ca95400d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 3 (Thread 0x7fa56f7fe700 (LWP 14048)):
#0  0x00007fff659fea1f in ?? ()
#1  0x0000005b00000000 in ?? ()
#2  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fa585ffa700 (LWP 14049)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007fa5cb42f7f4 in wait (time=10, this=0x2896fa0) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x2896e60, time=10) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fa5cfab62d8 in Digikam::DatabaseCoreBackendPrivate::checkRetrySQLiteLockError(int) () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#4  0x00007fa5cfab6df0 in Digikam::DatabaseCoreBackend::queryErrorHandling(Digikam::SqlQuery&, int) () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#5  0x00007fa5cfab7065 in Digikam::DatabaseCoreBackend::exec(Digikam::SqlQuery&) () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#6  0x00007fa5cfab71a2 in Digikam::DatabaseCoreBackend::execQuery(Digikam::SqlQuery&, QVariant const&, QVariant const&) () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#7  0x00007fa5cfab71cb in Digikam::DatabaseCoreBackend::execSql(Digikam::SqlQuery&, QVariant const&, QVariant const&, QList<QVariant>*, QVariant*) () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#8  0x00007fa5cf468596 in Digikam::AlbumDB::Private::execRelatedImagesQuery(Digikam::SqlQuery&, long long, Digikam::DatabaseRelation::Type) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#9  0x00007fa5cf47b5df in Digikam::AlbumDB::getRelatedImages(QList<long long>, bool, Digikam::DatabaseRelation::Type, bool) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#10 0x00007fa5cf47b7b9 in Digikam::AlbumDB::getImagesRelatedFrom(QList<long long>, Digikam::DatabaseRelation::Type) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#11 0x00007fa5cf4b59ea in Digikam::ImageInfoList::loadGroupImageIds() const () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#12 0x00007fa5cf54e338 in Digikam::ImageFilterModelPreparer::process(Digikam::ImageFilterModelTodoPackage) () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#13 0x00007fa5cf54aa1e in ?? () from /usr/lib/digikam/libdigikamdatabase.so.4.6.0
#14 0x00007fa5cb549c1e in QObject::event (this=0x29288d0, e=<optimized out>) at kernel/qobject.cpp:1194
#15 0x00007fa5cbf23e2c in QApplicationPrivate::notify_helper (this=this@entry=0x26c88c0, receiver=receiver@entry=0x29288d0, e=e@entry=0x7f7b6d0) at kernel/qapplication.cpp:4567
#16 0x00007fa5cbf2a4a0 in QApplication::notify (this=this@entry=0x7fff658ddc10, receiver=receiver@entry=0x29288d0, e=e@entry=0x7f7b6d0) at kernel/qapplication.cpp:4353
#17 0x00007fa5ccc2ecca in KApplication::notify (this=0x7fff658ddc10, receiver=0x29288d0, event=0x7f7b6d0) at ../../kdeui/kernel/kapplication.cpp:311
#18 0x00007fa5cb5314dd in QCoreApplication::notifyInternal (this=0x7fff658ddc10, receiver=receiver@entry=0x29288d0, event=event@entry=0x7f7b6d0) at kernel/qcoreapplication.cpp:953
#19 0x00007fa5cb534b3d in sendEvent (event=0x7f7b6d0, receiver=0x29288d0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#20 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x435b9b0) at kernel/qcoreapplication.cpp:1577
#21 0x00007fa5cb534fe3 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1470
#22 0x00007fa5cb55ef83 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#23 postEventSourceDispatch (s=0x7fa54c002810) at kernel/qeventdispatcher_glib.cpp:287
#24 0x00007fa5c2a88e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007fa5c2a89048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fa5c2a890ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fa5cb55e7a1 in QEventDispatcherGlib::processEvents (this=0x7fa54c0026f0, flags=...) at kernel/qeventdispatcher_glib.cpp:434
#28 0x00007fa5cb5300af in QEventLoop::processEvents (this=this@entry=0x7fa585ff9aa0, flags=...) at kernel/qeventloop.cpp:149
#29 0x00007fa5cb5303a5 in QEventLoop::exec (this=0x7fa585ff9aa0, flags=...) at kernel/qeventloop.cpp:204
#30 0x00007fa5cfafdd93 in ?? () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#31 0x00007fa5cb422fee in QThreadPoolThread::run (this=0x435b810) at concurrent/qthreadpool.cpp:108
#32 0x00007fa5cb42f32f in QThreadPrivate::start (arg=0x435b810) at thread/qthread_unix.cpp:349
#33 0x00007fa5c7ae8182 in start_thread (arg=0x7fa585ffa700) at pthread_create.c:312
#34 0x00007fa5ca95400d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7fa5d1d78ac0 (LWP 13975)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fa5cb42f816 in wait (time=18446744073709551615, this=0x2860350) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=this@entry=0x2a32d90, mutex=mutex@entry=0x2a32d68, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fa5cb422242 in QThreadPoolPrivate::waitForDone (this=0x2a32ce0, msecs=msecs@entry=-1) at concurrent/qthreadpool.cpp:295
#4  0x00007fa5cb4236b5 in QThreadPool::~QThreadPool (this=0x2937500, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:438
#5  0x00007fa5cb4236e9 in QThreadPool::~QThreadPool (this=0x2937500, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:440
#6  0x00007fa5cb548168 in QObjectPrivate::deleteChildren (this=this@entry=0x2a7ba90) at kernel/qobject.cpp:1907
#7  0x00007fa5cb54a6ff in QObject::~QObject (this=0x2a39e20, __in_chrg=<optimized out>) at kernel/qobject.cpp:926
#8  0x00007fa5cfafd687 in ?? () from /usr/lib/digikam/libdigikamcore.so.4.6.0
#9  0x00007fa5ca895259 in __run_exit_handlers (status=1, listp=0x7fa5cac186c8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#10 0x00007fa5ca8952a5 in __GI_exit (status=<optimized out>) at exit.c:104
#11 0x00007fa5cbf8a878 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:783
#12 0x00007fa5ccc2d880 in KApplication::xioErrhandler (this=0x7fff658ddc10, dpy=0x27104f0) at ../../kdeui/kernel/kapplication.cpp:419
#13 0x00007fa5c93505ee in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#14 0x00007fa5c934dfed in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#15 0x00007fa5c93400db in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#16 0x00007fa5cbfc562c in x11EventSourceCheck (s=0x26da950) at kernel/qguieventdispatcher_glib.cpp:85
#17 0x00007fa5c2a88a61 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007fa5c2a88f7b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007fa5c2a890ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007fa5cb55e7a1 in QEventDispatcherGlib::processEvents (this=0x25e8fb0, flags=...) at kernel/qeventdispatcher_glib.cpp:434
#21 0x00007fa5cbfc5bb6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#22 0x00007fa5cb5300af in QEventLoop::processEvents (this=this@entry=0x280e830, flags=...) at kernel/qeventloop.cpp:149
#23 0x00007fa5cb5303a5 in QEventLoop::exec (this=0x280e830, flags=...) at kernel/qeventloop.cpp:204
#24 0x00000000005d6ac9 in ?? ()
#25 0x0000000000526667 in ?? ()
#26 0x00007fa5cb549c1e in QObject::event (this=0x2eeef60, e=<optimized out>) at kernel/qobject.cpp:1194
#27 0x00007fa5cbf23e2c in QApplicationPrivate::notify_helper (this=this@entry=0x26c88c0, receiver=receiver@entry=0x2eeef60, e=e@entry=0x28b2810) at kernel/qapplication.cpp:4567
#28 0x00007fa5cbf2a4a0 in QApplication::notify (this=this@entry=0x7fff658ddc10, receiver=receiver@entry=0x2eeef60, e=e@entry=0x28b2810) at kernel/qapplication.cpp:4353
#29 0x00007fa5ccc2ecca in KApplication::notify (this=0x7fff658ddc10, receiver=0x2eeef60, event=0x28b2810) at ../../kdeui/kernel/kapplication.cpp:311
#30 0x00007fa5cb5314dd in QCoreApplication::notifyInternal (this=0x7fff658ddc10, receiver=receiver@entry=0x2eeef60, event=event@entry=0x28b2810) at kernel/qcoreapplication.cpp:953
#31 0x00007fa5cb534b3d in sendEvent (event=0x28b2810, receiver=0x2eeef60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#32 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x25e76a0) at kernel/qcoreapplication.cpp:1577
#33 0x00007fa5cb534fe3 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1470
#34 0x00007fa5cb55ef83 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#35 postEventSourceDispatch (s=0x26cba30) at kernel/qeventdispatcher_glib.cpp:287
#36 0x00007fa5c2a88e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007fa5c2a89048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007fa5c2a890ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007fa5cb55e7a1 in QEventDispatcherGlib::processEvents (this=0x25e8fb0, flags=...) at kernel/qeventdispatcher_glib.cpp:434
#40 0x00007fa5cbfc5bb6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#41 0x00007fa5cb5300af in QEventLoop::processEvents (this=this@entry=0x7fff658dd6f0, flags=...) at kernel/qeventloop.cpp:149
#42 0x00007fa5cb5303a5 in QEventLoop::exec (this=this@entry=0x7fff658dd6f0, flags=...) at kernel/qeventloop.cpp:204
#43 0x00007fa5cb535b79 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225
#44 0x0000000000497c90 in ?? ()
#45 0x00007fa5ca87aec5 in __libc_start_main (main=0x496a40, argc=5, argv=0x7fff658dde08, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff658dddf8) at libc-start.c:287
#46 0x000000000049a58f in _start ()

Reported using DrKonqi
Comment 1 caulier.gilles 2015-03-25 08:50:04 UTC
Problem still reproducible with last stable digiKam 4.8.0 ?

Gilles Caulier
Comment 2 caulier.gilles 2015-05-10 08:35:21 UTC

*** This bug has been marked as a duplicate of bug 340373 ***
Comment 3 caulier.gilles 2018-02-28 12:38:10 UTC
With 6.0.0, we have now a FFMpeg low level metadata parser based on libav C API
for video files database registration.

The Exiv2 video support is not used anymore as this code is buggous and nobody
sound motivated in Exiv2 to finalize the code.

The original post for this file must be fixed now and video metadata support
with ffmpeg must be enough to populate database entries.

Gilles Caulier