[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: bdb db / cache locking problem (ITS#3201)



hyc@symas.com wrote:

> OK... I've duplicated this problem by running test008 with cachesize set 
> to 2 entries. modrdn crashes consistently in this case.
> 
> The problem is that the cache only uses locking to determine whether an 
> entry is idle or not, but locks only protect us from interference from 
> other threads. In the case of modrdn, it is this operation itself, 
> within a single thread, that is touching many entries and so churning 
> the entry cache. Looks like we need to add a refcounter back to the 
> EntryInfo. (slaps forehead...)

I fixed this problem by using a different locker ID for the LRU sweeper, 
so that it is guaranteed to conflict with any other locks that are held. 
test008 runs to completion if modrdn is excluded from the test. I get a 
deadlock with modrdn, still tracking that down.
-- 
   -- Howard Chu
   Chief Architect, Symas Corp.       Director, Highland Sun
   http://www.symas.com               http://highlandsun.com/hyc
   Symas: Premier OpenSource Development and Support