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

Andi Clemens andi.clemens at gmx.net
Wed Dec 1 22:41:53 GMT 2010


A different question:

What on earth are we allocating on startup?
A fresh digiKam start shows 240MB RAM that are owned by digiKam.
This is insane :-)
There isn't even thumbnails in the iconview, I just display the welcome 
screen.


Andi Clemens
-----------------
www.digikam.org

On Tuesday 30 November 2010 15:20:45 Gilles Caulier wrote:
> 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/collecti
> onmanager.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/tagfiltersideb
> arwidget.cpp#196
> 
> Note : LXR is not yet updated against trunk. line differ here...
> 
> Gilles
> _______________________________________________
> Digikam-devel mailing list
> Digikam-devel at kde.org
> https://mail.kde.org/mailman/listinfo/digikam-devel



More information about the Digikam-devel mailing list