On Sun, Apr 30, 2006 at 12:57:08AM +0300, Katriel Traum wrote:
> The arm processor is actually a NSLU2 unit (http://www.nslu2-linux.org)
> running sid arm port

> Attached are:
> slapd.conf
> slapd -d 16k
> slapd strace

> I use BDB, the change any change (passwd, sn, email, dn).
> I will try and reproduce the environment on an X86 and see if the
> problem persists.

Ok.  The last two lines of the slapd log are:

bdb_modify_internal: replace
slapd: /build/buildd/openldap2.2-2.2.26/servers/slapd/mods.c:55: 
modify_add_values: Assertion  failed.

The first line comes from back-bdb/modify.c:bdb_modify_internal:

                switch ( mod->sm_op ) {
                [...]
                case LDAP_MOD_REPLACE:
                        Debug(LDAP_DEBUG_ARGS, "bdb_modify_internal: 
replace\n",  0, 0, 0);
                        err = modify_replace_values( e, mod, 
get_permissiveModify(op),
                                text, textbuf, textlen );
                [...]

modify_replace_values calls:
        (void) attr_delete( &e->e_attrs, mod->sm_desc );

        if ( mod->sm_values ) {
                return modify_add_values( e, mod, permissive, text, textbuf, 
textlen );
        }

And modify_add_values does:

        switch ( mod->sm_op ) {
        case LDAP_MOD_ADD:
                op = "add";
                break;
        case LDAP_MOD_REPLACE:
                op = "replace";
                break;
        default:
                op = "?";
                assert( 0 );
        }

and this is the assert that fails.

So, it's pretty non-obvious how this value has changed from being
LDAP_MOD_REPLACE in bdb_modify_internal, to something else in
modify_add_values.  It seems to be either a very strangely-consistent
threading bug, a subtle stack smash that I'm not seeing by looking at the
code, or a bug in the hardware/kernel.  Determining which of these it is
will take somebody stepping through the code with a debugger to see what's
going on.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to