[Digikam-devel] [digikam] [Bug 323888] Face recognition makes digikam fill all the available memory

Gilles Caulier caulier.gilles at gmail.com
Tue Jun 24 14:22:17 BST 2014


https://bugs.kde.org/show_bug.cgi?id=323888

--- Comment #84 from Gilles Caulier <caulier.gilles at gmail.com> ---
In a VM, i can reproduce the memory leak from SQlite. I take a similar
fingerprint with valgrind here. Look log from attachment "digikam 4.0 still
leaking memory" :

==26673== 305,920 bytes in 239 blocks are possibly lost in loss record 120,501
of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105CEBA: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105D125: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210569B0: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083B35: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083F1C: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086102: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086179: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086257: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673== 
==26673== 1,332,480 bytes in 1,041 blocks are possibly lost in loss record
120,527 of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105CEBA: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105D125: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210569B0: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083B35: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083F1C: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086102: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086179: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2108B2AB: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673== 
==26673== 2,752,344 bytes in 43 blocks are possibly lost in loss record 120,533
of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21062FD1: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210D7F9D: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x36ED985E: QSQLiteDriver::open(QString const&, QString const&,
QString const&, QString const&, int, QString const&) (in
/usr/lib/x86_64-linux-gnu/qt4/plugins/sqldrivers/libqsqlite.so)
==26673==    by 0x4E44D60: QSqlDatabase::open() (in
/usr/lib/x86_64-linux-gnu/libQtSql.so.4.8.6)
==26673==    by 0x7516600:
Digikam::DatabaseCoreBackendPrivate::open(QSqlDatabase&) (in
/usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673==    by 0x7516BCA:
Digikam::DatabaseCoreBackendPrivate::databaseForThread() (in
/usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673==    by 0x7516E99: Digikam::DatabaseCoreBackend::getQuery() (in
/usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673==    by 0x7519391: Digikam::DatabaseCoreBackend::prepareQuery(QString
const&) (in /usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673== 
==26673== 4,497,920 bytes in 3,514 blocks are possibly lost in loss record
120,535 of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105CEBA: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105D125: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210569B0: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083B35: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2108AA23: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2108C55E: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210B72E8: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210B834E: sqlite3_step (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673== 

==26673== 305,920 bytes in 239 blocks are possibly lost in loss record 120,501
of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105CEBA: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105D125: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210569B0: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083B35: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083F1C: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086102: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086179: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086257: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673== 
==26673== 1,332,480 bytes in 1,041 blocks are possibly lost in loss record
120,527 of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105CEBA: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105D125: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210569B0: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083B35: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083F1C: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086102: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21086179: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2108B2AB: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673== 
==26673== 2,752,344 bytes in 43 blocks are possibly lost in loss record 120,533
of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21062FD1: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210D7F9D: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x36ED985E: QSQLiteDriver::open(QString const&, QString const&,
QString const&, QString const&, int, QString const&) (in
/usr/lib/x86_64-linux-gnu/qt4/plugins/sqldrivers/libqsqlite.so)
==26673==    by 0x4E44D60: QSqlDatabase::open() (in
/usr/lib/x86_64-linux-gnu/libQtSql.so.4.8.6)
==26673==    by 0x7516600:
Digikam::DatabaseCoreBackendPrivate::open(QSqlDatabase&) (in
/usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673==    by 0x7516BCA:
Digikam::DatabaseCoreBackendPrivate::databaseForThread() (in
/usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673==    by 0x7516E99: Digikam::DatabaseCoreBackend::getQuery() (in
/usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673==    by 0x7519391: Digikam::DatabaseCoreBackend::prepareQuery(QString
const&) (in /usr/lib/digikam/libdigikamcore.so.4.0.0)
==26673== 
==26673== 4,497,920 bytes in 3,514 blocks are possibly lost in loss record
120,535 of 120,538
==26673==    at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==26673==    by 0x21076F46: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21050AE9: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21059217: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105CEBA: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2105D125: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210569B0: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x21083B35: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2108AA23: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x2108C55E: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210B72E8: ??? (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673==    by 0x210B834E: sqlite3_step (in
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6)
==26673== 

Memory leak from SQlite is just enormous...

Gilles Caulier

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Digikam-devel mailing list