[gdal-dev] General Memory/Resource leak fixes(Cleanup calls)
Even Rouault
even.rouault at mines-paris.org
Thu Jan 24 15:09:46 EST 2008
The leak reported in geotiff.cpp was indeed a leak in GDAL 1.4.2. It's fixed
since GDAL 1.5.0, so you should consider upgrading.
As far the ressource leaks, I can't really say as it's probably windows
specific stuff I can't test on my platform, but I wouldn't worry too much if
I were you. These are probably just one time leaks.
Le Thursday 24 January 2008 20:44:08 sanjay boddhu, vous avez écrit :
> Hi Martin,
> I did try calling all the below cleanup calls:
>
> VSICleanupFileManager();
> GDALDestroyDriverManager();
> CPLCleanupTLS();
> CPLFinderClean();
> CPLFreeConfig();
>
> But i still have the leak with call stack showing the below order(poiting
> to VSIMalloc):
>
> Type Quantity Total (bytes) Allocation Location Sequence
>
> Leak exiting program 1 4 gdal14.dll, cpl_vsisimple.cpp, VSIMalloc
> - line 280 52 Memory Leak Exiting Program: Address 0x04266CF8 (4)
> allocated by malloc.
>
> Allocation Call Stack - Thread 0 [0x0CA0]
> VSIMalloc c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_vsisimple.cpp 280
> CPLMalloc c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_conv.cpp 127
> GTiffCreate c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\frmts\gtiff\geotiff.cpp 3568
> Create c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\frmts\gtiff\geotiff.cpp 3640
> Create c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\gcore\gdaldriver.cpp 109
>
> and the resource leaks are(one of the mutex) looks like:
>
> Type Quantity Deallocator Allocation Location Sequence
>
> CreateMutexA 1 CloseHandle gdal14.dll, cpl_multiproc.cpp,
> CPLCreateMutex - line 457 53 Resource Leak Exiting Program: Handle
> 0x00000110 allocated by CreateMutexA.
>
> Allocation Call Stack - Thread 0 [0x0CA0]
> CPLCreateMutex c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_multiproc.cpp 457
> CPLCreateOrAcquireMutex c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_multiproc.cpp 117
> CPLMutexHolder c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_multiproc.cpp 63
> GetGDALDriverManager c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\gcore\gdaldrivermanager.cpp
> 72 GDALAllRegister c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\frmts\gdalallregister.cpp 73
>
> And TLSAlloc leak looks like:
>
> Type Quantity Deallocator Allocation Location Sequence
>
> TlsAlloc 1 TlsFree gdal14.dll, cpl_multiproc.cpp, CPLGetTLSList -
> line 642 58 Resource Leak Exiting Program: Handle 0x00000021 allocated
> by TlsAlloc.
>
> Allocation Call Stack - Thread 0 [0x0CA0]
> CPLGetTLSList c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_multiproc.cpp 642
> CPLGetTLS c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_multiproc.cpp 954
> CPLGetStaticResult c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_path.cpp 55
> CPLGetDirname c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\port\cpl_path.cpp 165
> AutoLoadDrivers c:\documents and
> settings\sboddhu\desktop\gdal142\gdal-1.4.2\gcore\gdaldrivermanager.cpp
> 553
>
> Sorry to dump the call stack..but if martin/someone can find any obvious
> mistake/ missing something in my calling the cleanup calls that would be
> helpful.
>
> Thanks
> Sanjay
>
> mchapman at texelinc.com wrote: Not sure if this is it but are you calling
> GDALCleanupAll? It's called that or GDALAllCleanup or something. I think
> it is declared near GDALRegisterAll.
>
> Martin
>
> Sent via BlackBerry by AT&T
>
> -----Original Message-----
> From: sanjay boddhu
>
> Date: Thu, 24 Jan 2008 01:41:45
> To:gdal-dev at lists.osgeo.org
> Subject: [gdal-dev] General Memory/Resource leak fixes(Cleanup calls)
>
>
> Hi ,
> I have been trying to fix (or to be more appropriate, find the cleanup
> calls to fix) the memory and resource leaks in my application(which uses
> GDAL to read and write to a tif file). I have tried all the cleanup calls
> mentioned in the end of :
>
> http://www.gdal.org/gdalinfo.c.html
>
> and reduced lot of memory/resource leaks......But i still get a memory leak
> pointing in "GDALDataset Create( ...)" and few resource leaks of Mutex
> and TLsAlloc.
>
> I would really appreciate if anyone can recommend the right cleanup calls
> for the above leaks or hint me in the right direction.
>
> Thanks
>
> Sanjay
>
>
>
> "If you look at what you do not have in life, you don't have anything"
> "If you look at what you have in life, you have everything"
>
> ----------------
> Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it
> now. _______________________________________________ gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>
>
>
> "If you look at what you do not have in life, you don't have anything"
> "If you look at what you have in life, you have everything"
>
> ---------------------------------
> Never miss a thing. Make Yahoo your homepage.
More information about the gdal-dev
mailing list