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

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



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.
> 
> I hope this is the only place in cache handling of an entries children,
> though maybe someone with better knowledge on the code can identify
> others.
> 
> Hope this is the bug as I have used many days to trace it down and need
> to do some normal work for my company.

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:

Index: cache.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/cache.c,v
retrieving revision 1.157
diff -u -r1.157 cache.c
--- cache.c     12 Nov 2007 10:41:45 -0000      1.157
+++ cache.c     20 Nov 2007 15:09:29 -0000
@@ -1148,8 +1148,10 @@
         free( ei->bei_nrdn.bv_val );
         ber_dupbv( &ei->bei_nrdn, nrdn );

+#if 0
         if ( !pei->bei_kids )
                 pei->bei_state |= CACHE_ENTRY_NO_KIDS | CACHE_ENTRY_NO_GRANDKIDS;
+#endif

  #ifdef BDB_HIER
         free( ei->bei_rdn.bv_val );

Please try that and report your results. I don't think this is the best fix, 
but if it helps your test then we can refine it from there.
-- 
   -- 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/