[Date Prev][Date Next]
Re: (ITS#5457) bdb_add() does not always release entries
> Full_Name: Hallvard B Furuseth
> Version: HEAD, 2.3, 2.4
> Submission from: (NULL) (126.96.36.199)
> Submitted by: hallvard
> back-bdb/add.c has several code paths where the parent entry
> "p" is not released - it does "goto return_results;" without
> first doing
> if ( p&& p !=&slap_entry_root )
> bdb_unlocked_cache_return_entry_r(&bdb->bi_cache, p );
> p = NULL;
Releasing entries is somewhat irrelevant, since all locks are released when
the transaction commits. Note that this function is a no-op in proto-bdb.h.
All of those statements are just relics from the first entry cache design,
before we switched to using BDB locks for everything.
Probably could stand to do some cleanup. The diffs would be quite drastic
though. Again, this may be something that's best deferred until 2.3 is dropped.
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/