[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Memory and Handle Leak using bdb(ITS#3356)
This is the way the cache is designed. An older design tried to free
unused entryinfo's but that ran into complications and didn't work very
well. Perhaps we can revisit this aspect later, but it's not a high
priority at the moment.
ste@estos.de wrote:
>Hi,
>
>This one concerns only to the bdb handle and memory leak.
>
>Can anyone give me a hint where to start clearing the bdb cache or
>limiting it?
>
>The back-bdb holds a cache that is built out of bdb_entry_info structs.
>Each struct contains a bei_kids_mutex, that is initialised in
>bdb_cache_entryinfo_new: ldap_pvt_thread_mutex_init(
>&ei->bei_kids_mutex );
>
>It is destroyed in bdb_cache_entryinfo_destroy:
>ldap_pvt_thread_mutex_destroy( &e->bei_kids_mutex );
>
>The bdb_entry_info items are kept in the list even if the cachsize is set
>to a low value. I debugged with a cachesize of 10 to find out if the
>entries in the cache would not grow.
>If the actual cache size (bdb->bi_cache.c_cursize) reaches
>bdb->bi_cache.c_maxsize, the entry is removed only from the LRU, but not
>from the cache.
>
>The problem I metioned (handle leak) is not really a leak, the handles get
>freed during shutdown of the server (bdb_cache_release_all).
>
>It´s just if you are adding some entries using ldap_add, lets say some
>100000 entries, the handle count increases to that values and never get
>freed until the server shuts down.
>
>Can you explain me, why the entries remain in the cache (even if they are
>deleted from the lru cache)? Any idea how to keep the cache (and the used
>handles) small?
>
>Best regards,
>Stephan Eckbauer
>
>
>###########################################
>
>This message has been scanned by F-Secure Anti-Virus for Microsoft
>Exchange.
>For more information, connect to http://www.F-Secure.com/
>
>
>
>
>
>
--
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
http://www.symas.com http://highlandsun.com/hyc
Symas: Premier OpenSource Development and Support