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

Re: provider crash on high replication load



Marc Patermann wrote:
Howard Chu schrieb am 15.08.2011 23:20 Uhr:
Marc Patermann wrote:
Why does slapd crash here?

This looks like the same trace as ITS#6892, but that was already
patched/fixed in 2.4.26. Need a bit more info from the crash. E.g.
     print *ss
     print *ss->s_op

This output shows that a consumer making a persistent search abandoned the search while syncprov was still setting up the psearch, and a modification whose target belonged to the psearch occurred at that time.

syncprov of course sets up locks to prevent this kind of crash from happening, but apparently there's still a bug there.

(gdb) print *ss
No symbol "ss" in current context.
(gdb) frame 1
#1  0x00007fb87c606b09 in syncprov_matchops (op=0x7fb7cc2174f0,
opc=0x7fb7d8a468e8, saveit=1) at syncprov.c:1313
1313    syncprov.c: No such file or directory.
          in syncprov.c
(gdb) print *ss
$1 = {s_next = 0x7fb6d0b37b60, s_base = {bv_len = 56, bv_val =
0x7fb6d9b62450 "ou=linux,ou=steuer,o=landesverwaltung
niedersachsen,c=de"}, s_eid = 1,
    s_op = 0x7fb7d8838da0, s_rid = 159, s_sid = -1, s_filterstr = {bv_len
= 15, bv_val = 0x7fb7e4064760 "(objectClass=*)"}, s_flags = 1, s_inuse = 1,
    s_res = 0x0, s_restail = 0x0, s_mutex = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list
= {__prev = 0x0,
          __next = 0x0}}, __size = '\000'<repeats 39 times>, __align = 0}}
(gdb) print *ss->s_op
$2 = {o_hdr = 0x7fb7d8838f10, o_tag = 0, o_time = 0, o_tincr = 1, o_bd =
0x0, o_req_dn = {bv_len = 0, bv_val = 0x0}, o_req_ndn = {bv_len = 0,
      bv_val = 0x0}, o_request = {oq_add = {rs_modlist = 0x0, rs_e =
0x0}, oq_bind = {rb_method = 0, rb_cred = {bv_len = 0, bv_val = 0x0},
rb_edn = {
          bv_len = 0, bv_val = 0x0}, rb_ssf = 0, rb_mech = {bv_len = 0,
bv_val = 0x0}}, oq_compare = {rs_ava = 0x0}, oq_modify = {rs_mods = {
          rs_modlist = 0x0, rs_no_opattrs = 0 '\000'}, rs_increment = 0},
oq_modrdn = {rs_mods = {rs_modlist = 0x0, rs_no_opattrs = 0 '\000'},
        rs_deleteoldrdn = 0, rs_newrdn = {bv_len = 0, bv_val = 0x0},
rs_nnewrdn = {bv_len = 0, bv_val = 0x0}, rs_newSup = 0x0, rs_nnewSup = 0x0},
      oq_search = {rs_scope = 0, rs_deref = 0, rs_slimit = 0, rs_tlimit =
0, rs_limit = 0x0, rs_attrsonly = 0, rs_attrs = 0x0, rs_filter = 0x0,
        rs_filterstr = {bv_len = 0, bv_val = 0x0}}, oq_abandon =
{rs_msgid = 0}, oq_cancel = {rs_msgid = 0}, oq_extended = {rs_reqoid =
{bv_len = 0,
          bv_val = 0x0}, rs_flags = 0, rs_reqdata = 0x0}, oq_pwdexop =
{rs_extended = {rs_reqoid = {bv_len = 0, bv_val = 0x0}, rs_flags = 0,
          rs_reqdata = 0x0}, rs_old = {bv_len = 0, bv_val = 0x0}, rs_new
= {bv_len = 0, bv_val = 0x0}, rs_mods = 0x0, rs_modtail = 0x0}},
o_abandon = 0,
    o_cancel = 0, o_groups = 0x0, o_do_not_cache = 0 '\000',
o_is_auth_check = 0 '\000', o_dont_replicate = 0 '\000', o_acl_priv =
ACL_NONE,
    o_nocaching = 0 '\000', o_delete_glue_parent = 0 '\000',
o_no_schema_check = 0 '\000', o_no_subordinate_glue = 0 '\000',
    o_ctrlflag = '\000'<repeats 31 times>, o_controls = 0x7fb7d8839058,
o_authz = {sai_method = 0, sai_mech = {bv_len = 0, bv_val = 0x0}, sai_dn = {
        bv_len = 0, bv_val = 0x0}, sai_ndn = {bv_len = 0, bv_val = 0x0},
sai_ssf = 0, sai_transport_ssf = 0, sai_tls_ssf = 0, sai_sasl_ssf = 0},
    o_ber = 0x0, o_res_ber = 0x0, o_callback = 0x0, o_ctrls = 0x0, o_csn
= {bv_len = 0, bv_val = 0x0}, o_private = 0x0, o_extra = {slh_first = 0x0},
    o_next = {stqe_next = 0x0}}
(gdb)



Marc




--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/