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]