[Digikam-devel] memory leak in trunk...

Gilles Caulier caulier.gilles at gmail.com
Tue Nov 30 14:20:45 GMT 2010


Hi all,

I review trunk with valgrind. Look like i can see in the console :

Marcel :

==1995== 32 bytes in 1 blocks are possibly lost in loss record 4,123 of 7,413
==1995==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==1995==    by 0x52F456B:
Digikam::CollectionManager::updateLocations()
(collectionmanager.cpp:1520)
==1995==    by 0x52F09D5: Digikam::CollectionManager::refresh()
(collectionmanager.cpp:740)
==1995==    by 0x52F9F30:
Digikam::DatabaseAccess::checkReadyForUse(Digikam::InitializationObserver*)
(databaseaccess.cpp:303)
==1995==    by 0x8260598: Digikam::ScanController::run()
(scancontroller.cpp:580)
==1995==    by 0x6D84FCE: ??? (in /usr/lib/libQtCore.so.4.6.2)
==1995==    by 0x726603D: clone (in /lib/i686/libc-2.11.1.so)

Relevant of this allocation :
http://lxr.kde.org/source/extragear/graphics/digikam/libs/database/collectionmanager.cpp#1520

There is also a lots of report about databaseurl :

==1995== 42 bytes in 1 blocks are definitely lost in loss record 4,659 of 7,413
==1995==    at 0x4023D7C: malloc (vg_replace_malloc.c:195)
==1995==    by 0x6D7F63A: qMalloc(unsigned int) (in /usr/lib/libQtCore.so.4.6.2)
==1995==    by 0x5303F29: Digikam::DatabaseUrl::fromTagIds(QList<int>
const&, Digikam::DatabaseParameters const&) (databaseurl.cpp:104)
==1995==    by 0x81B25C7: Digikam::AlbumManager::getTagItemsCount()
(albummanager.cpp:1662)
==1995==    by 0x81B24A9: Digikam::AlbumManager::scanTAlbums()
(albummanager.cpp:1642)
==1995==    by 0x81B07D1: Digikam::AlbumManager::refresh()
(albummanager.cpp:1235)
==1995==    by 0x81B0188: Digikam::AlbumManager::startScan()
(albummanager.cpp:1140)
==1995==    by 0x81F2286: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:257)
==1995==    by 0x82A883D: main (main.cpp:177)

==1995== 44 bytes in 1 blocks are definitely lost in loss record 4,690 of 7,413
==1995==    at 0x4023D7C: malloc (vg_replace_malloc.c:195)
==1995==    by 0x6D7F63A: qMalloc(unsigned int) (in /usr/lib/libQtCore.so.4.6.2)
==1995==    by 0x53040C9:
Digikam::DatabaseUrl::dateUrl(Digikam::DatabaseParameters const&)
(databaseurl.cpp:118)
==1995==    by 0x81B2F6F: Digikam::AlbumManager::scanDAlbums()
(albummanager.cpp:1764)
==1995==    by 0x81B07E7: Digikam::AlbumManager::refresh()
(albummanager.cpp:1237)
==1995==    by 0x81B0188: Digikam::AlbumManager::startScan()
(albummanager.cpp:1140)
==1995==    by 0x81F2286: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:257)
==1995==    by 0x82A883D: main (main.cpp:177)

==1995== 46 bytes in 1 blocks are definitely lost in loss record 4,758 of 7,413
==1995==    at 0x4023D7C: malloc (vg_replace_malloc.c:195)
==1995==    by 0x6D7F63A: qMalloc(unsigned int) (in /usr/lib/libQtCore.so.4.6.2)
==1995==    by 0x5303BF9:
Digikam::DatabaseUrl::fromAlbumAndName(QString const&, QString const&,
KUrl const&, int, Digikam::DatabaseParameters const&)
(databaseurl.cpp:80)
==1995==    by 0x819E002: Digikam::PAlbum::databaseUrl() const (album.cpp:379)
==1995==    by 0x818A576: Digikam::ImageAlbumModel::refresh()
(imagealbummodel.cpp:188)
==1995==    by 0x818A4DF:
Digikam::ImageAlbumModel::openAlbum(Digikam::Album*)
(imagealbummodel.cpp:163)
==1995==    by 0x8228C83:
Digikam::ImageCategorizedView::openAlbum(Digikam::Album*)
(imagecategorizedview.cpp:339)
==1995==    by 0x8217962:
Digikam::DigikamView::slotAlbumSelected(Digikam::Album*)
(digikamview.cpp:984)
==1995==    by 0x82123BC:
Digikam::DigikamView::qt_metacall(QMetaObject::Call, int, void**)
(digikamview.moc:302)
==1995==    by 0x6E93DEC: QMetaObject::metacall(QObject*,
QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)

==1995== 46 bytes in 1 blocks are definitely lost in loss record 4,759 of 7,413
==1995==    at 0x4023D7C: malloc (vg_replace_malloc.c:195)
==1995==    by 0x6D7F63A: qMalloc(unsigned int) (in /usr/lib/libQtCore.so.4.6.2)
==1995==    by 0x5303E81:
Digikam::DatabaseUrl::albumUrl(Digikam::DatabaseParameters const&)
(databaseurl.cpp:95)
==1995==    by 0x81B193B: Digikam::AlbumManager::getAlbumItemsCount()
(albummanager.cpp:1489)
==1995==    by 0x81A7540:
Digikam::AlbumManager::qt_metacall(QMetaObject::Call, int, void**)
(albummanager.moc:197)
==1995==    by 0x6E93DEC: QMetaObject::metacall(QObject*,
QMetaObject::Call, int, void**) (in /usr/lib/libQtCore.so.4.6.2)


------------------------------------------------------------------------------------------------------------------------------------------

Andi :

==1995== 20 bytes in 1 blocks are definitely lost in loss record 3,520 of 7,413
==1995==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
==1995==    by 0x826EC95:
Digikam::TagFilterSideBarWidget::TagFilterSideBarWidget(QWidget*,
Digikam::TagModel*) (tagfiltersidebarwidget.cpp:191)
==1995==    by 0x821459B: Digikam::DigikamView::DigikamView(QWidget*,
Digikam::DigikamModelCollection*) (digikamview.cpp:250)
==1995==    by 0x81F3582: Digikam::DigikamApp::setupView() (digikamapp.cpp:512)
==1995==    by 0x81F20F0: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:234)
==1995==    by 0x82A883D: main (main.cpp:177)

Relevant of this assignation :
http://lxr.kde.org/source/extragear/graphics/digikam/digikam/tagfiltersidebarwidget.cpp#196

Note : LXR is not yet updated against trunk. line differ here...

Gilles



More information about the Digikam-devel mailing list