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

Re: (ITS#6397) accesslog + syncprov crash



Poking a bit more in the backtrace (with a new coredump, sorry)
shows that the filter given to test_filter() is NULL because

*ss = {
    s_base = {bv_len = 6, bv_val = 0x1f94c5a0 "cn=log"},
    s_eid = 1,
    s_op = 0x1f948310 {
        o_hdr      = 0x1f948480 {all nulls},
        o_controls = 0x1f9485c8 [(void *) 0x0]},
    s_rid = 1, s_sid = -1, s_flags = 1, s_inuse = 1,
    <fields with null values omitted>
}
in frame 1, syncprov_matchops (op=0x42ec6690, opc=0x1f958ca0, saveit=1) at
syncprov.c:1304:         rc = test_filter( &op2, e, ss->s_op->ors_filter );

I have ss == si->si_ops != sm->sm_op.

*si = {
    si_ops = 0x1f951c20,
    si_ctxcsn = 0x1f74fa70,
    si_contextdn = {bv_len = 6, bv_val = 0x1f4e4310 "cn=log"},
    si_sids = 0x1f74fae0 [0],
    si_numcsns = 1, si_numops = 49, si_nopres = 1, si_usehint = 1,
    si_mods = 0x1fa615b0 {avl_data = 0x1fa61d20},
    si_ops_mutex = {
        __data = {__lock = 1, __owner = 26790, __nusers = 1},
        __size = "\001\000\000\000\000\000\000\000\246h\000\000\001", '\0' <repeats 26 times>,
        __align = 1}}


Following si->si_mods: sml_mod.sm_type is garbage, is that relevant?

*((modtarget *) si->si_mods->avl_data)->mt_mods->mi_op = {
	o_hdr = 0x42ec6800, o_tag = 102 <LDAP_REQ_MODIFY>,
	o_time = 1259003422, o_tincr = 0,
	o_bd = 0x42ec62d0,
	o_req_dn  = {bv_len = 6, bv_val = 0x1f4e4400 "cn=log"},
	o_req_ndn = {bv_len = 6, bv_val = 0x1f4e4310 "cn=log"},
	o_request.oq_modify = {
		rs_mods = {
			rs_modlist = 0x42ec64c0 {
				sml_mod = {
					sm_desc = 0x1f4a46e0 <entryCSN>,
					sm_values = 0x42ec6500 &[
				{bv_len = 40, bv_val = 0x42ec6530 "20091123191016.381756Z#000000#000#000000\311_\214\031="},
				BER_BVNULL],
					sm_numvals = 1,
					sm_op = 2,
					sm_flags = 1,
					sm_type = {bv_len = 4222451713, bv_val = 0x42ec6680 ""}}},
			rs_no_opattrs = 1 '\001'}},
	o_no_schema_check = 1 '\001',
	o_ctrlflag = '\0' <repeats 14 times>, "\002", '\0' <repeats 16 times>,
	o_controls = 0x42ec6948 &[(void *) 0x0],
	o_authz = {
		sai_dn = {bv_len = 28, bv_val = 0x1f4e46f0 "cn=Manager,dc=example,dc=com"},
		sai_ndn = {bv_len = 28, bv_val = 0x1f4e4d90 "cn=manager,dc=example,dc=com"}},
	o_callback = 0x1f958c80,
	o_csn = {bv_len = 40, bv_val = 0x42ec6530 "20091123191016.381756Z#000000#000#000000\311_\214\031="},
	o_extra = {slh_first = 0x1f958d28}}

(gdb) backtrace
#0  0x0000000000452066 in test_filter (op=0x42ec5bf0, e=0x1f577e48, f=0x0) at filterentry.c:69
#1  0x0000000000529cd1 in syncprov_matchops (op=0x42ec6690, opc=0x1f958ca0, saveit=1) at syncprov.c:1304
#2  0x000000000052c524 in syncprov_op_mod (op=0x42ec6690, rs=0x42ec6620) at syncprov.c:2064
#3  0x00000000004b3f0f in overlay_op_walk (op=0x42ec6690, rs=0x42ec6620, which=op_modify, oi=0x1f4e47e0, on=0x1f4e49c0) at backover.c:659
#4  0x00000000004b41a1 in over_op_func (op=0x42ec6690, rs=0x42ec6620, which=op_modify) at backover.c:721
#5  0x00000000004b42b7 in over_op_modify (op=0x42ec6690, rs=0x42ec6620) at backover.c:760
#6  0x0000000000521c67 in accesslog_purge (ctx=0x42ec6d60, arg=0x1f4e4760) at accesslog.c:699
#7  0x00000000005478ed in ldap_int_thread_pool_wrapper (xpool=0x1f4ae8a0) at tpool.c:685
#8  0x0000003d1a4064a7 in start_thread () from /lib64/libpthread.so.0
#9  0x0000003d198d3c2d in clone () from /lib64/libc.so.6

-- 
Hallvard