tis 2007-11-20 klockan 07:09 -0800 skrev Howard Chu:
> [EMAIL PROTECTED] 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?

Regards,

   Dan

-- 
Dan Oscarsson
TietoEnator                   Email: [EMAIL PROTECTED]
Box 85
201 20  Malmo, Sweden


Reply via email to