Bug 383096 - DigiKam crash, maintenance related?
Summary: DigiKam crash, maintenance related?
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Maintenance-Similarities (show other bugs)
Version: 5.6.0
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2017-08-03 20:58 UTC by André Hübert Johansen
Modified: 2020-12-22 20:18 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 7.2.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description André Hübert Johansen 2017-08-03 20:58:02 UTC
Application: digikam (5.6.0)

Qt Version: 5.7.1
Frameworks Version: 5.36.0
Operating System: Linux 4.11.11-300.fc26.x86_64 x86_64
Distribution (Platform): Fedora RPMs

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

Had a maintenance job running (album update, duplicate update), application hung when opening a menu in the main window, then later crashed.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f60784c1400 (LWP 2866))]

Thread 16 (Thread 0x7f5fcffff700 (LWP 4825)):
#0  0x00007f60b578e81b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a814d3fb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f60b69beea4 in Digikam::ActionThreadBase::run() () at /lib64/libdigikamcore.so.5.6.0
#3  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#5  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 15 (Thread 0x7f5ff1ac7700 (LWP 4482)):
#0  0x00007f60b578ed1a in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a814d2e3 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f60a8149d5f in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#5  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 14 (Thread 0x7f5fccff9700 (LWP 4481)):
#0  0x00007f60b578ed1a in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a814d2e3 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f60a8149d5f in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#5  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 13 (Thread 0x7f5ff12c6700 (LWP 4480)):
#0  0x00007f60b578ed1a in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a814d2e3 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f60a8149d5f in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#5  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 12 (Thread 0x7f600957c700 (LWP 4461)):
#0  0x00007f60b578ed1a in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a814d2e3 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f60a8149d5f in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#5  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 11 (Thread 0x7f5ff3fef700 (LWP 2939)):
#0  0x00007f60b579219d in read () at /lib64/libpthread.so.0
#1  0x00007f60a5d17170 in g_wakeup_acknowledge () at /lib64/libglib-2.0.so.0
#2  0x00007f60a5cd3078 in g_main_context_check () at /lib64/libglib-2.0.so.0
#3  0x00007f60a5cd3510 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#4  0x00007f60a5cd367c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#5  0x00007f60a833fe6b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f60a82f060a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#7  0x00007f60b69bfdc3 in Digikam::WorkerObjectRunnable::run() () at /lib64/libdigikamcore.so.5.6.0
#8  0x00007f60a8149bd5 in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#9  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#10 0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#11 0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 10 (Thread 0x7f5fed3fe700 (LWP 2921)):
#0  0x00007f60b578e81b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a6b5ecec in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#2  0x00007f60ae380157 in WTF::ParkingLot::parkConditionally(void const*, std::function<bool ()>, std::function<void ()>, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >) () at /lib64/libQt5WebKit.so.5
#3  0x00007f60ae37e97f in WTF::ParallelHelperPool::waitForClientWithTask(WTF::Locker<WTF::LockBase> const&) () at /lib64/libQt5WebKit.so.5
#4  0x00007f60ae37ea56 in WTF::ParallelHelperPool::helperThreadBody() () at /lib64/libQt5WebKit.so.5
#5  0x00007f60ae382908 in WTF::threadEntryPoint(void*) () at /lib64/libQt5WebKit.so.5
#6  0x00007f60ae3a608a in WTF::wtfThreadEntryPoint(void*) () at /lib64/libQt5WebKit.so.5
#7  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#8  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 9 (Thread 0x7f600b7ff700 (LWP 2882)):
#0  0x00007f60b578e81b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a6b5ecec in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#2  0x00007f60ae380157 in WTF::ParkingLot::parkConditionally(void const*, std::function<bool ()>, std::function<void ()>, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >) () at /lib64/libQt5WebKit.so.5
#3  0x00007f60add4543c in JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*) () at /lib64/libQt5WebKit.so.5
#4  0x00007f60ae382908 in WTF::threadEntryPoint(void*) () at /lib64/libQt5WebKit.so.5
#5  0x00007f60ae3a608a in WTF::wtfThreadEntryPoint(void*) () at /lib64/libQt5WebKit.so.5
#6  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#7  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 8 (Thread 0x7f6054dff700 (LWP 2881)):
#0  0x00007ffdbddf593d in  ()
#1  0x00007ffdbddf5bcb in clock_gettime ()
#2  0x00007f60a62cac76 in clock_gettime () at /lib64/libc.so.6
#3  0x00007f60a81e3a91 in qt_gettime() () at /lib64/libQt5Core.so.5
#4  0x00007f60a833e539 in QTimerInfoList::updateCurrentTime() () at /lib64/libQt5Core.so.5
#5  0x00007f60a833e935 in QTimerInfoList::timerWait(timespec&) () at /lib64/libQt5Core.so.5
#6  0x00007f60a833fb0c in timerSourcePrepareHelper(GTimerSource*, int*) () at /lib64/libQt5Core.so.5
#7  0x00007f60a833fbae in timerSourcePrepare(_GSource*, int*) () at /lib64/libQt5Core.so.5
#8  0x00007f60a5cd2ac9 in g_main_context_prepare () at /lib64/libglib-2.0.so.0
#9  0x00007f60a5cd349b in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#10 0x00007f60a5cd367c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#11 0x00007f60a833fe6b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#12 0x00007f60a82f060a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#13 0x00007f60a814899a in QThread::exec() () at /lib64/libQt5Core.so.5
#14 0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#15 0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#16 0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7f6057fff700 (LWP 2880)):
#0  0x00007f60b578e81b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a814d3fb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f60b69c0289 in Digikam::ParkingThread::run() () at /lib64/libdigikamcore.so.5.6.0
#3  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#5  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f605cfd2700 (LWP 2874)):
#0  0x00007f60b578e81b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a814d3fb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f60b768b746 in Digikam::ScanController::run() () at /lib64/libdigikamgui.so.5.6.0
#3  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#5  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f605e1e3700 (LWP 2873)):
#0  0x00007f60a833fd3d in postEventSourcePrepare(_GSource*, int*) () at /lib64/libQt5Core.so.5
#1  0x00007f60a5cd2ac9 in g_main_context_prepare () at /lib64/libglib-2.0.so.0
#2  0x00007f60a5cd349b in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#3  0x00007f60a5cd367c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#4  0x00007f60a833fe6b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#5  0x00007f60a82f060a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f60a814899a in QThread::exec() () at /lib64/libQt5Core.so.5
#7  0x00007f60ab11ea39 in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#8  0x00007f60a814cc9e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#9  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#10 0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f605ee79700 (LWP 2872)):
#0  0x00007f60b578e81b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f606307b64b in util_queue_thread_func () at /usr/lib64/dri/nouveau_dri.so
#2  0x00007f606307b387 in impl_thrd_routine () at /usr/lib64/dri/nouveau_dri.so
#3  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#4  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f6073cb9700 (LWP 2868)):
#0  0x00007f60b578e81b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f60a6b5ecec in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#2  0x00007f60af74d897 in bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() () at /lib64/libQt5WebKit.so.5
#3  0x00007f60af74d9d9 in  () at /lib64/libQt5WebKit.so.5
#4  0x00007f60a6b6502f in  () at /lib64/libstdc++.so.6
#5  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#6  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f60744ba700 (LWP 2867)):
#0  0x00007f60a62afa9d in poll () at /lib64/libc.so.6
#1  0x00007f60a6e40831 in linux_udev_event_thread_main () at /lib64/libusb-1.0.so.0
#2  0x00007f60b578836d in start_thread () at /lib64/libpthread.so.0
#3  0x00007f60a62bbb8f in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f60784c1400 (LWP 2866)):
[KCrash Handler]
#6  0x00007f60b7848c64 in Digikam::ImageInfoJob::allItemsFromAlbum(Digikam::Album*) () at /lib64/libdigikamgui.so.5.6.0
#7  0x00007f60a8318a73 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5
#8  0x00007f60b78493fe in Digikam::ImageInfoJob::slotResult() () at /lib64/libdigikamgui.so.5.6.0
#9  0x00007f60b78666f5 in Digikam::ImageInfoJob::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /lib64/libdigikamgui.so.5.6.0
#10 0x00007f60a8318a73 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5
#11 0x00007f60a83198da in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#12 0x00007f60a8b3c5dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#13 0x00007f60a8b43c74 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#14 0x00007f60a82f1627 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#15 0x00007f60a82f385b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#16 0x00007f60a833fdd3 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#17 0x00007f60a5cd3247 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#18 0x00007f60a5cd35e8 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#19 0x00007f60a5cd367c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#20 0x00007f60a833fe4f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#21 0x00007f60a82f060a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#22 0x00007f60a82f827c in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#23 0x00005592d32d90d0 in main ()

Reported using DrKonqi
Comment 1 caulier.gilles 2017-08-04 12:00:15 UTC
It crash when listing items from albums registered in database.

There is no reason for that. Can you reproduce the dysfunction at the same place ?

Didi you enable the multicore options in maintenance tool ?

Gilles Caulier
Comment 2 André Hübert Johansen 2017-08-04 14:52:23 UTC
Multi-core functionality was enabled.

My old computer has 2GB RAM + 2GB swap; it might be that DigiKam is exhausting that.  While trying to reproduce, I see a steady increase in memory then swap usage, DigiKam virtual size is above 5GB.  The Linux OOM killer kicks in and kills it as the machine runs out of resources.

[23592.064772] Out of memory: Kill process 3631 (digikam) score 520 or sacrifice child
[23592.064797] Killed process 3631 (digikam) total-vm:5663316kB, anon-rss:1082200kB, file-rss:0kB, shmem-rss:0kB
Comment 3 André Hübert Johansen 2017-08-04 14:53:03 UTC
In both cases, the DigiKam GUI froze when browsing the trash folder.
Comment 4 caulier.gilles 2018-08-17 21:27:12 UTC
Can you reproduce the dysfunction using digiKam 6.0.0 pre-release bundle available here :

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

Gilles Caulier
Comment 5 caulier.gilles 2018-12-31 11:50:33 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 6 caulier.gilles 2019-03-07 05:17:52 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 7 caulier.gilles 2020-07-14 09:41:33 UTC
Hi,

Can you check if this problem still exist with last weekly bundle build of digiKam 7.0.0 available here:

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

Thanks in advance

Gilles Caulier
Comment 8 André Hübert Johansen 2020-12-22 15:02:28 UTC
Unable to reproduce with v7.1.0.
Comment 9 Maik Qualmann 2020-12-22 20:18:49 UTC
Thanks for the feedback.

Maik