Bug 341929

Summary: digikam crashes when changing album folders several times
Product: [Applications] digikam Reporter: Wolfgang Walkowiak <wolfgang.walkowiak>
Component: Database-SqliteAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR    
Version: 3.5.0   
Target Milestone: ---   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 7.5.0
Sentry Crash Report:

Description Wolfgang Walkowiak 2014-12-15 21:33:21 UTC
Digikam crashed after I changed from one to another adjacent folders a few times.  When I restarted digikam it came up with the folder it opened up the previous time.  

Reproducible: Always

Steps to Reproduce:
1. Open digikam
2. Switch between a few adjacent folders (same hierarchy level) a few times.


Actual Results:  
The application crashed every time.

Expected Results:  
Just change from album folder to the next without crashing.

Application: digikam (3.5.0)
KDE Platform Version: 4.13.3
Qt Version: 4.8.6
Operating System: Linux 3.13.0-43-generic x86_64
Distribution: Ubuntu 14.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:

- Looking at pictures in adjacent folders and switching between folders.
- I had updated the system from Kubuntu 12.04 to Kubuntu 14.04 a day ago.

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".
[Current thread is 1 (Thread 0x7f41f24a5ac0 (LWP 9827))]

Thread 6 (Thread 0x7f41cd30c700 (LWP 9828)):
#0  0x00007f41ebed8cbd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f41d272c248 in ?? () from /lib/x86_64-linux-gnu/libusb-1.0.so.0
#2  0x00007f41e7168182 in start_thread (arg=0x7f41cd30c700) at pthread_create.c:312
#3  0x00007f41ebee600d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 5 (Thread 0x7f41c682a700 (LWP 9829)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f41eccc7816 in wait (time=18446744073709551615, this=0x20eca20) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=this@entry=0x20ec930, mutex=mutex@entry=0x20ec928, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00000000005d5ede in Digikam::ScanController::run (this=0x2176240) at /build/buildd/digikam-3.5.0/core/digikam/database/scancontroller.cpp:725
#4  0x00007f41eccc732f in QThreadPrivate::start (arg=0x2176240) at thread/qthread_unix.cpp:349
#5  0x00007f41e7168182 in start_thread (arg=0x7f41c682a700) at pthread_create.c:312
#6  0x00007f41ebee600d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 4 (Thread 0x7f41c6029700 (LWP 9830)):
#0  0x00007f41e716a569 in __GI___pthread_mutex_lock (mutex=0x7f41b8000a60) at ../nptl/pthread_mutex_lock.c:125
#1  0x00007f41e49d1981 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f41e498f699 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f41e498ff03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f41e49900ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f41ecdf67be in QEventDispatcherGlib::processEvents (this=0x7f41b80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#6  0x00007f41ecdc80af in QEventLoop::processEvents (this=this@entry=0x7f41c6028ae0, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f41ecdc83a5 in QEventLoop::exec (this=this@entry=0x7f41c6028ae0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f41eccc4c5f in QThread::exec (this=this@entry=0x20eef00) at thread/qthread.cpp:537
#9  0x00007f41ecda9823 in QInotifyFileSystemWatcherEngine::run (this=0x20eef00) at io/qfilesystemwatcher_inotify.cpp:265
#10 0x00007f41eccc732f in QThreadPrivate::start (arg=0x20eef00) at thread/qthread_unix.cpp:349
#11 0x00007f41e7168182 in start_thread (arg=0x7f41c6029700) at pthread_create.c:312
#12 0x00007f41ebee600d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 3 (Thread 0x7f41c5828700 (LWP 9833)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f41eccc7816 in wait (time=18446744073709551615, this=0x2153c60) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=this@entry=0x257d8f0, mutex=mutex@entry=0x257d8e8, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f41efb4079a in Digikam::ParkingThread::run (this=0x257d8d0) at /build/buildd/digikam-3.5.0/core/libs/threads/threadmanager.cpp:119
#4  0x00007f41eccc732f in QThreadPrivate::start (arg=0x257d8d0) at thread/qthread_unix.cpp:349
#5  0x00007f41e7168182 in start_thread (arg=0x7f41c5828700) at pthread_create.c:312
#6  0x00007f41ebee600d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f41b7b8e700 (LWP 9834)):
#0  postEventSourcePrepare (s=0x7f41b0001350, timeout=0x7f41b7b8d924) at kernel/qeventdispatcher_glib.cpp:262
#1  0x00007f41e498f68d in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f41e498ff03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f41e49900ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f41ecdf67be in QEventDispatcherGlib::processEvents (this=0x7f41b00008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#5  0x00007f41ecdc80af in QEventLoop::processEvents (this=this@entry=0x7f41b7b8dae0, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007f41ecdc83a5 in QEventLoop::exec (this=this@entry=0x7f41b7b8dae0, flags=...) at kernel/qeventloop.cpp:204
#7  0x00007f41eccc4c5f in QThread::exec (this=this@entry=0x277c7e0) at thread/qthread.cpp:537
#8  0x00007f41ecda9823 in QInotifyFileSystemWatcherEngine::run (this=0x277c7e0) at io/qfilesystemwatcher_inotify.cpp:265
#9  0x00007f41eccc732f in QThreadPrivate::start (arg=0x277c7e0) at thread/qthread_unix.cpp:349
#10 0x00007f41e7168182 in start_thread (arg=0x7f41b7b8e700) at pthread_create.c:312
#11 0x00007f41ebee600d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f41f24a5ac0 (LWP 9827)):
[KCrash Handler]
#6  0x00000000020e56f0 in ?? ()
#7  0x00007f41d6a2ddac in sqlite3MemCompare (pMem1=pMem1@entry=0x7fff70020260, pMem2=<optimized out>, pColl=0x2236cf8) at sqlite3.c:60484
#8  0x00007f41d6a2df63 in sqlite3VdbeRecordCompare (nKey1=19, pKey1=0x7f41c02027e2, pPKey2=pPKey2@entry=0x7fff70020560) at sqlite3.c:64162
#9  0x00007f41d6a42579 in sqlite3BtreeMovetoUnpacked (pCur=0x85f97f0, pIdxKey=0x7fff70020560, intKey=0, biasRight=<optimized out>, pRes=0x7fff70020550) at sqlite3.c:55077
#10 0x00007f41d6a6a9c5 in sqlite3VdbeExec (p=p@entry=0x85fea28) at sqlite3.c:70168
#11 0x00007f41d6a72ed7 in sqlite3Step (p=0x85fea28) at sqlite3.c:64828
#12 sqlite3_step (pStmt=<optimized out>) at sqlite3.c:64894
#13 0x00007f41c4e2311c in QSQLiteResultPrivate::fetchNext (this=this@entry=0x210ffb0, values=..., idx=idx@entry=0, initialFetch=initialFetch@entry=true) at ../../../sql/drivers/sqlite/qsql_sqlite.cpp:235
#14 0x00007f41c4e23e48 in QSQLiteResult::exec (this=0x806f310) at ../../../sql/drivers/sqlite/qsql_sqlite.cpp:447
#15 0x00007f41f20eeb7d in QSqlQuery::exec (this=this@entry=0x7fff70020a98) at kernel/qsqlquery.cpp:949
#16 0x00007f41efaf9a26 in Digikam::DatabaseCoreBackend::exec (this=0x20e9cd0, query=...) at /build/buildd/digikam-3.5.0/core/libs/database/core/databasecorebackend.cpp:1414
#17 0x00007f41efaf9aac in Digikam::DatabaseCoreBackend::execQuery (this=this@entry=0x20e9cd0, query=..., boundValue1=...) at /build/buildd/digikam-3.5.0/core/libs/database/core/databasecorebackend.cpp:1056
#18 0x00007f41efafab50 in Digikam::DatabaseCoreBackend::execQuery (this=this@entry=0x20e9cd0, sql=..., boundValue1=...) at /build/buildd/digikam-3.5.0/core/libs/database/core/databasecorebackend.cpp:1005
#19 0x00007f41efafab99 in Digikam::DatabaseCoreBackend::execSql (this=0x20e9cd0, sql=..., boundValue1=..., values=values@entry=0x7fff70020ae0, lastInsertId=lastInsertId@entry=0x0) at /build/buildd/digikam-3.5.0/core/libs/database/core/databasecorebackend.cpp:902
#20 0x00007f41ef4be42e in Digikam::AlbumDB::getSetting (this=this@entry=0x205e9f0, keyword=...) at /build/buildd/digikam-3.5.0/core/libs/database/albumdb.cpp:972
#21 0x00007f41ef4bed5c in Digikam::AlbumDB::getFilterSettings (this=0x205e9f0, imageFilter=imageFilter@entry=0x7fff70020d20, videoFilter=videoFilter@entry=0x0, audioFilter=audioFilter@entry=0x0) at /build/buildd/digikam-3.5.0/core/libs/database/albumdb.cpp:1017
#22 0x000000000063a2c0 in Digikam::AlbumSettings::getRawFileFilter (this=this@entry=0x228a900) at /build/buildd/digikam-3.5.0/core/digikam/utils/albumsettings.cpp:958
#23 0x0000000000533f42 in Digikam::KipiInterface::hostSetting (this=this@entry=0x381ef30, settingName=...) at /build/buildd/digikam-3.5.0/core/utilities/kipiiface/kipiinterface.cpp:363
#24 0x00000000005339f4 in Digikam::KipiInterface::currentAlbum (this=0x381ef30) at /build/buildd/digikam-3.5.0/core/utilities/kipiiface/kipiinterface.cpp:110
#25 0x00007f416d22bd94 in KIPIAdvancedSlideshowPlugin::Plugin_AdvancedSlideshow::slotAlbumChanged (this=0x7490980, anyAlbum=<optimized out>) at /build/buildd/digikam-3.5.0/extra/kipi-plugins/advancedslideshow/plugin/plugin_advancedslideshow.cpp:175
#26 0x00007f41ecddd87a in QMetaObject::activate (sender=0x381ef30, m=m@entry=0x7f41f0650e60 <KIPI::Interface::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff70021070) at kernel/qobject.cpp:3539
#27 0x00007f41f043d4c2 in KIPI::Interface::currentAlbumChanged (this=<optimized out>, _t1=true) at ./interface.moc:128
#28 0x00007f41ecddd87a in QMetaObject::activate (sender=0x20dfd70, m=m@entry=0x844e60 <Digikam::AlbumManager::staticMetaObject>, local_signal_index=local_signal_index@entry=6, argv=argv@entry=0x7fff700211a0) at kernel/qobject.cpp:3539
#29 0x00000000005a2e04 in signalAlbumCurrentChanged (_t1=0x45ea410, this=<optimized out>) at /build/buildd/digikam-3.5.0/obj-x86_64-linux-gnu/core/digikam/albummanager.moc:267
#30 Digikam::AlbumManager::setCurrentAlbum (this=<optimized out>, album=album@entry=0x45ea410) at /build/buildd/digikam-3.5.0/core/digikam/album/albummanager.cpp:1846
#31 0x00000000005c81cd in Digikam::AbstractAlbumTreeView::mousePressEvent (this=0x3055800, e=0x7fff70021a10) at /build/buildd/digikam-3.5.0/core/digikam/album/albumtreeview.cpp:538
#32 0x00007f41ed80b37b in QWidget::event (this=this@entry=0x3055800, event=event@entry=0x7fff70021a10) at kernel/qwidget.cpp:8372
#33 0x00007f41edbacfce in QFrame::event (this=0x3055800, e=0x7fff70021a10) at widgets/qframe.cpp:557
#34 0x00007f41edcbc5b3 in QAbstractItemView::viewportEvent (this=this@entry=0x3055800, event=event@entry=0x7fff70021a10) at itemviews/qabstractitemview.cpp:1644
#35 0x00007f41edcfb190 in QTreeView::viewportEvent (this=this@entry=0x3055800, event=0x7fff70021a10) at itemviews/qtreeview.cpp:1252
#36 0x00000000005c83d5 in Digikam::AbstractAlbumTreeView::viewportEvent (this=this@entry=0x3055800, event=<optimized out>) at /build/buildd/digikam-3.5.0/core/digikam/album/albumtreeview.cpp:683
#37 0x00000000005c05c0 in Digikam::AlbumSelectionTreeView::viewportEvent (this=0x3055800, event=<optimized out>) at /build/buildd/digikam-3.5.0/core/digikam/album/albumselectiontreeview.cpp:233
#38 0x00007f41ecdc9646 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0x1f52a00, receiver=receiver@entry=0x3053930, event=event@entry=0x7fff70021a10) at kernel/qcoreapplication.cpp:1063
#39 0x00007f41ed7bbe0c in QApplicationPrivate::notify_helper (this=this@entry=0x1f52a00, receiver=receiver@entry=0x3053930, e=e@entry=0x7fff70021a10) at kernel/qapplication.cpp:4563
#40 0x00007f41ed7c25dd in QApplication::notify (this=this@entry=0x7fff70022680, receiver=receiver@entry=0x3053930, e=e@entry=0x7fff70021a10) at kernel/qapplication.cpp:4110
#41 0x00007f41ee4c6d1a in KApplication::notify (this=0x7fff70022680, receiver=0x3053930, event=0x7fff70021a10) at ../../kdeui/kernel/kapplication.cpp:311
#42 0x00007f41ecdc94dd in QCoreApplication::notifyInternal (this=0x7fff70022680, receiver=receiver@entry=0x3053930, event=event@entry=0x7fff70021a10) at kernel/qcoreapplication.cpp:953
#43 0x00007f41ed7c1d93 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#44 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x3053930, event=event@entry=0x7fff70021a10, alienWidget=alienWidget@entry=0x3053930, nativeWidget=nativeWidget@entry=0x2594930, buttonDown=buttonDown@entry=0x7f41ee2a1318 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3178
#45 0x00007f41ed8369cb in QETWidget::translateMouseEvent (this=this@entry=0x2594930, event=event@entry=0x7fff70021d90) at kernel/qapplication_x11.cpp:4634
#46 0x00007f41ed836269 in QApplication::x11ProcessEvent (this=0x7fff70022680, event=event@entry=0x7fff70021d90) at kernel/qapplication_x11.cpp:3627
#47 0x00007f41ed85db02 in x11EventSourceDispatch (s=0x1f52070, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#48 0x00007f41e498fe04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007f41e4990048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007f41e49900ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#51 0x00007f41ecdf67a1 in QEventDispatcherGlib::processEvents (this=0x1e79d60, flags=...) at kernel/qeventdispatcher_glib.cpp:434
#52 0x00007f41ed85dbb6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#53 0x00007f41ecdc80af in QEventLoop::processEvents (this=this@entry=0x7fff70022160, flags=...) at kernel/qeventloop.cpp:149
#54 0x00007f41ecdc83a5 in QEventLoop::exec (this=this@entry=0x7fff70022160, flags=...) at kernel/qeventloop.cpp:204
#55 0x00007f41ecdcdb79 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225
#56 0x00007f41ed7ba37c in QApplication::exec () at kernel/qapplication.cpp:3828
#57 0x0000000000492023 in main (argc=<optimized out>, argv=<optimized out>) at /build/buildd/digikam-3.5.0/core/digikam/main/main.cpp:235

The reporter indicates this bug may be a duplicate of or related to bug 338448.

Possible duplicates by query: bug 341529, bug 341424, bug 339650, bug 339070, bug 339068.
Comment 1 caulier.gilles 2014-12-15 21:42:02 UTC

*** This bug has been marked as a duplicate of bug 329697 ***
Comment 2 caulier.gilles 2021-12-17 11:50:48 UTC
Fixed with #329697