You are not logged in.
Hello,
I'm using an up to date Arch, and since one week, I have a critical memory leak with digiKam. It fullfill both RAM (8Gbytes) and SWAP (4Gbytes) in less than 1 minute, then crash. During this time, the computer is unresponsive.
Digikam logs from console don't show relevant informations.
I've tried differents downgrades (digiKam, qt5, sqlite3), but the result is still the same.
Here are some extracts from valdring outputs. Is somebody can help me to identify the problem ?
Thank you in advance,
Clark
$ valgrind --tool=memcheck --leak-check=full --error-limit=no digikam
[...]
==1397== 576 bytes in 1 blocks are possibly lost in loss record 46,312 of 49,097
==1397== at 0x4C2DF05: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1397== by 0x40119F1: allocate_dtv (in /usr/lib/ld-2.25.so)
==1397== by 0x401236D: _dl_allocate_tls (in /usr/lib/ld-2.25.so)
==1397== by 0xE333DC9: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.25.so)
==1397== by 0x879B875: QThread::start(QThread::Priority) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x1232DC22: QtAV::VideoFrameExtractor::VideoFrameExtractor(QObject*) (in /usr/lib/libQtAV.so.1.12.0)
==1397== by 0x5EF8824: Digikam::VideoThumbnailer::VideoThumbnailer(QObject*) (in /usr/lib/libdigikamcore.so.5.6.0)
==1397== by 0x5EF9DE4: Digikam::VideoThumbnailerJob::VideoThumbnailerJob(QObject*) (in /usr/lib/libdigikamcore.so.5.6.0)
==1397== by 0x5EEAA06: Digikam::ThumbnailLoadThread::ThumbnailLoadThread(QObject*) (in /usr/lib/libdigikamcore.so.5.6.0)
==1397== by 0x55A2A3D: ??? (in /usr/lib/libdigikamgui.so.5.6.0)
==1397== by 0x559C53D: ??? (in /usr/lib/libdigikamgui.so.5.6.0)
==1397== by 0x5106204: ??? (in /usr/lib/libdigikamgui.so.5.6.0)
==1397==
==1397== 576 bytes in 1 blocks are possibly lost in loss record 46,313 of 49,097
==1397== at 0x4C2DF05: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1397== by 0x40119F1: allocate_dtv (in /usr/lib/ld-2.25.so)
==1397== by 0x401236D: _dl_allocate_tls (in /usr/lib/ld-2.25.so)
==1397== by 0xE333DC9: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.25.so)
==1397== by 0x879B875: QThread::start(QThread::Priority) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x13B696B5: QNetworkConfigurationManagerPrivate::initialize() (in /usr/lib/libQt5Network.so.5.9.1)
==1397== by 0x13B638EC: qNetworkConfigurationManagerPrivate() (in /usr/lib/libQt5Network.so.5.9.1)
==1397== by 0x13B63986: QNetworkConfigurationManager::QNetworkConfigurationManager(QObject*) (in /usr/lib/libQt5Network.so.5.9.1)
==1397== by 0x174C1FA4: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A9241: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
[...]
==1397== 2,304 bytes in 4 blocks are possibly lost in loss record 48,185 of 49,097
==1397== at 0x4C2DF05: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1397== by 0x40119F1: allocate_dtv (in /usr/lib/ld-2.25.so)
==1397== by 0x401236D: _dl_allocate_tls (in /usr/lib/ld-2.25.so)
==1397== by 0xE333DC9: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.25.so)
==1397== by 0x450FFF4B: ??? (in /usr/lib/xorg/modules/dri/radeonsi_dri.so)
==1397== by 0x451003BC: ??? (in /usr/lib/xorg/modules/dri/radeonsi_dri.so)
==1397== by 0x454719F3: ??? (in /usr/lib/xorg/modules/dri/radeonsi_dri.so)
==1397== by 0x4552B57E: amdgpu_winsys_create (in /usr/lib/xorg/modules/dri/radeonsi_dri.so)
==1397== by 0x44E50EDE: ??? (in /usr/lib/xorg/modules/dri/radeonsi_dri.so)
==1397== by 0x4517FEE9: ??? (in /usr/lib/xorg/modules/dri/radeonsi_dri.so)
==1397== by 0x4517BC1F: ??? (in /usr/lib/xorg/modules/dri/radeonsi_dri.so)
==1397== by 0x43B77FA4: ??? (in /usr/lib/libGLX_mesa.so.0.0.0)
[...]
==1397== 4,360 bytes in 1 blocks are possibly lost in loss record 48,482 of 49,097
==1397== at 0x4C2BEEF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1397== by 0x27BA3F90: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BA3502: sqlite3Malloc (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BB1A53: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BB22C5: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BAC9FF: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27B41A26: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27B46A49: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27B48410: sqlite3BtreeMovetoUnpacked (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BD604D: sqlite3VdbeExec (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BD7F9E: sqlite3_step (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x5019375C: ??? (in /usr/lib/qt/plugins/sqldrivers/libqsqlite.so)
==1397==
==1397== 4,360 bytes in 1 blocks are possibly lost in loss record 48,483 of 49,097
==1397== at 0x4C2BEEF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1397== by 0x27BA3F90: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BA3502: sqlite3Malloc (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BB1A53: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BB22C5: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BAC9FF: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27B41A26: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27B48BB5: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27B486D6: sqlite3BtreeMovetoUnpacked (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BD92FD: ??? (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BD24AE: sqlite3VdbeExec (in /usr/lib/libsqlite3.so.0.8.6)
==1397== by 0x27BD7F9E: sqlite3_step (in /usr/lib/libsqlite3.so.0.8.6)
[...]
==1397== Use of uninitialised value of size 8
==1397== at 0x16399805: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x8979A27: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397==
==1397== Conditional jump or move depends on uninitialised value(s)
==1397== at 0x1639980C: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x8979A27: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397==
==1397== Conditional jump or move depends on uninitialised value(s)
==1397== at 0x1639989B: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x8979A27: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397==
==1397== Use of uninitialised value of size 8
==1397== at 0x1612C383: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399290: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397==
==1397== Conditional jump or move depends on uninitialised value(s)
==1397== at 0x1612C389: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399290: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397==
==1397== Use of uninitialised value of size 8
==1397== at 0x1612C3D8: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399290: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397==
==1397== Conditional jump or move depends on uninitialised value(s)
==1397== at 0x1612C3DE: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399290: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==1397== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==1397== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==1397==
[...]
==13178== Use of uninitialised value of size 8
==13178== at 0x1612C383: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x16399290: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==13178== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==13178== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==13178== Uninitialised value was created by a stack allocation
==13178== at 0x4051A2: ??? (in /usr/bin/digikam)
==13178==
==13178== Conditional jump or move depends on uninitialised value(s)
==13178== at 0x1612C389: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x16399290: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x16399B9A: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1612DBCA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1610F5AC: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x161291DA: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x161295E3: JSC::Heap::collect(JSC::HeapOperation) (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1639C080: JSC::GCActivityCallback::doWork() (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x1639D050: ??? (in /usr/lib/libQt5WebKit.so.5.212.0)
==13178== by 0x89A91FA: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.9.1)
==13178== by 0x788746B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==13178== by 0x788ECF3: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.9.1)
==13178== Uninitialised value was created by a stack allocation
==13178== at 0x4051A2: ??? (in /usr/bin/digikam)
Last edited by _clark_ (2017-07-09 14:40:38)
Offline
Update : downgrading qtav from version 1.12 to 1.11 seems to solve the problem.
Is somebody have an idea to monitor qtav outputs and behavior, in order to report a bug ?
Last edited by _clark_ (2017-07-09 14:41:28)
Offline
can you post an example of use which can trigger your bug ?
a use case, a scenario, the method which can reproduce the bug,
I don't use digikam and I don't use qtav, so I need more info about the use of these 2 softwares
Last edited by Potomac (2017-07-09 14:48:49)
Offline
Hello Potomac,
No specific scenario : launching digikam from console or from the plasma main menu conduct directly to the memory leak and the described behavior. This insane behavior starts especially when digikam invokes qtAV (you can monitor that in a terminal).
Downgrading qtAV to the previous version solves this problem.
Offline
Maybe it is related to this new digiKam bug report? The reporter of the bug also uses archlinux and digiKam allocates his entire RAM while scanning new images. According to the logs he also used QtAV-1.12.0, but testing a digiKam AppImage with bundled QtAV-1.11.0 showed the same memory leak.
Offline
Thank you for information. I've joined the bug discussion.
Offline