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

Re: (ITS#5221) cache? of parent failes for hdb



Dan Oscarsson wrote:
> tis 2007-11-20 klockan 07:09 -0800 skrev Howard Chu:
>> Dan.Oscarsson@tietoenator.com wrote:
>>> If this looks correct to you, what code should I add to fix it?
>>> It would be better if one of you who knows the code better than me could
>>> do that. I can test and see if it works.
> 
>> Thanks for your investigation; this explanation makes sense. You can test this
>> simply by disabling the statement in bdb_cache_modrdn() which sets the NO_KIDS
>> flags:
> 
> I have tested and it fixed my reduced test case. Running full test still
> failes.
> So I suspected it might have to do with CACHE_ENTRY_NO_GRANDKIDS
> and tested by removing the test for CACHE_ENTRY_NO_GRANDKIDS in dn2id.c
> ***************
> *** 1044,1058 ****
>                 if ( cx->prefix == DN_SUBTREE_PREFIX ) {
>                         bdb_idl_append( cx->ids, cx->tmp );
>                         cx->need_sort = 1;
> !                       /*if ( !(cx->ei->bei_state & CACHE_ENTRY_NO_GRANDKIDS)) {*/
> !                       {
> 
> to get it to go down in the tree.
> 
> This time even my full test works, from what I can see. Though this may
> not be the correct way to do it, and I do not know if something else
> may go wrong.
> It looks like the setting and usage of CACHE_ENTRY_NO_GRANDKIDS and
> CACHE_ENTRY_NO_KIDS have to be looked over. From what I can see they are
> only used in cache.c, dn2id.c and modrdn.c in back-bdb/hdb.
> Should I try something else?

I think that's enough to confirm the problems. I won't be able to work on the 
fix for a few hours; will update here when I have something ready.
-- 
   -- Howard Chu
   Chief Architect, Symas Corp.  http://www.symas.com
   Director, Highland Sun        http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP     http://www.openldap.org/project/