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

Re: (ITS#7487) memberof & mirrormode with delta-syncrepl crashing when using dynamic configuration



>> > slapd: memberof.c:1465: memberof_res_modify: Assertion `0' failed.
>>
>> If you have the core file handy, or if you can quickly reproduce the
>> problem, could you print the value of ml->sml_mod, i.e. from within gdb:
>>
>> (to see the backtrace)
>> $ bt
>> (where <x> is the number of the frame of function memberof_res_modify)
>> $ f <x>
>> (to see the value)
>> $ print ml->sml_mod
>
> (gdb) bt
> #0  0x00000032b04328a5 in raise () from /lib64/libc.so.6
> #1  0x00000032b0434085 in abort () from /lib64/libc.so.6
> #2  0x00000032b042ba1e in __assert_fail_base () from /lib64/libc.so.6
> #3  0x00000032b042bae0 in __assert_fail () from /lib64/libc.so.6
> #4  0x00000000004fc989 in memberof_res_modify (op=0x7fffebffe330,
> rs=<value optimized out>) at memberof.c:1465
> #5  0x000000000042f91e in slap_response_play (op=0x7fffebffe330,
> rs=0x7fffebffd620) at result.c:507
> #6  0x00000000004304a9 in send_ldap_response (op=0x7fffebffe330,
> rs=0x7fffebffd620) at result.c:582
> #7  0x000000000043119c in slap_send_ldap_result (op=0x7fffebffe330,
> rs=0x7fffebffd620) at result.c:860
> #8  0x00000000004b4035 in mdb_modify (op=0x7fffebffe330,
> rs=0x7fffebffd620) at modify.c:656
> #9  0x00000000004845a7 in overlay_op_walk (op=0x7fffebffe330,
> rs=0x7fffebffd620, which=op_modify, oi=0x963b20, on=0x0) at
> backover.c:671
> #10 0x0000000000484f87 in over_op_func (op=0x7fffebffe330, rs=<value
> optimized out>, which=<value optimized out>) at backover.c:723
> #11 0x000000000047738d in syncrepl_message_to_op (si=0x9636f0,
> op=0x7fffebffe330, msg=<value optimized out>) at syncrepl.c:2318
> #12 0x000000000047b1bf in do_syncrep2 (op=0x7fffebffe330, si=0x9636f0)
> at syncrepl.c:986
> #13 0x00000000004809c2 in do_syncrepl (ctx=<value optimized out>,
> arg=0x963ee0) at syncrepl.c:1523
> #14 0x00000000004210e1 in connection_read_thread (ctx=0x7fffebffeab0,
> argv=<value optimized out>) at connection.c:1288
> #15 0x00000000005230a0 in ldap_int_thread_pool_wrapper
> (xpool=0x8b7640) at tpool.c:688
> #16 0x00000032b0807851 in start_thread () from /lib64/libpthread.so.0
> #17 0x00000032b04e811d in clone () from /lib64/libc.so.6
> (gdb)  f 4
> #4  0x00000000004fc989 in memberof_res_modify (op=0x7fffebffe330,
> rs=<value optimized out>) at memberof.c:1465
> 1465 assert( 0 );
> (gdb)  print ml->sml_mod
> $1 = {sm_desc = 0x9640f0, sm_values = 0x7fffe00009b0, sm_nvalues =
> 0x7fffe00009d0, sm_numvals = 1, sm_op = 4097, sm_flags = 0, sm_type =
> {bv_len = 48,
>     bv_val = 0x70756f72673d6e63 <Address 0x70756f72673d6e63 out of
> bounds>}}
> (gdb)

Indeed, sm_op == SLAP_MOD_SOFTDEL, as I inferred from syncrepl code,
thanks for the feedback.  Internal special modification types should be
handled now in HEAD code.  Could you pull it from git and test, please? 
Instructions here <http://www.openldap.org/software/repo.html>.

Thanks, p.

-- 
Pierangelo Masarati
Associate Professor
Dipartimento di Ingegneria Aerospaziale
Politecnico di Milano