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

Re: (ITS#3634) Slapd sometimes crashes after starting the same search action three times


> I have a problem with RedHat 4.0 and openldap 2.2.24/DB 4.2.
> Slapd sometimes crashes after starting the same search action three times,
> at
> the same time.
> Slapd is started just before these search actions.
> When I remove the regex lines from the access control list, I can't
> reproduce
> the error.
> I can't reproduce the error on a single processor system either (one XEON
> processor; hypertreading disabled).
> I have reproduced the error also with RedHat 3.0 and with openldap 2.2.13
> and
> with DB 4.3.
> Perhaps this is a problem with acl parsing on a multi-processor system?

Sounds like a thread problem with the regex library on your system, but I
don't have enough info to tell that.

> access to dn.regex="orgcode=(.*),ou=lb,o=org,c=nl" attr="data"
>         by dn.regex="cn=updater,orgcode=$1,ou=lb,o=org,c=nl" write

I've tried something similar (on a single processor system) and (of
course) found no problems.  Maybe you could send the exact definition of
"orgcode", just to clear out any potential issue.

> #0  0x008cf19e in build_trtable () from /lib/tls/libc.so.6
> #1  0x008d6234 in re_search_internal () from /lib/tls/libc.so.6
> #2  0x008d7912 in regexec@@GLIBC_2.3.4 () from /lib/tls/libc.so.6
> #3  0x0806f2e8 in access_allowed (op=0x8a46258, e=0x8fe01578,
> desc=0x8a463e8,
> val=0x917fa268, access=ACL_SEARCH,
>     state=0x0) at acl.c:489

It would be nice to have more details about the args passed to the
regexec() function here;  from acl.c:489

      if (regexec(&a->acl_dn_re, e->e_ndn, nmatch, matches, 0))

you could inspect the contents by running that core under gdb, type a "bt
full" and print the contents of "a", "*a", "a->acl_dn_re", "e", "*e",
"nmatch", "matches[0]@10".

> #4  0x0806cea1 in test_ava_filter (op=0x8a46258, e=0x8fe01578,
> ava=0x917fa264,
> type=163) at filterentry.c:396
> #5  0x0806d54d in test_filter (op=0x8a46258, e=0x8fe01578, f=0x917fa284)
> at
> filterentry.c:130
> #6  0x0806d30d in test_filter (op=0x8a46258, e=0x8fe01578, f=0x917fa2e4)
> at
> filterentry.c:542
> #7  0x0806d30d in test_filter (op=0x8a46258, e=0x8fe01578, f=0x917fa33c)
> at
> filterentry.c:542
> #8  0x0809e1e0 in bdb_do_search (op=0x8a46258, rs=0x91cfb240,
> sop=0x8a46258,
> ps_e=0x0, ps_type=0)
>     at search.c:1132
> #9  0x0809e62b in bdb_search (op=0x8a35248, rs=0x91cfb240) at search.c:384
> #10 0x0805a01d in do_search (op=0x8a46258, rs=0x91cfb240) at search.c:412
> #11 0x080595f0 in connection_operation (ctx=0x91cfb2c0, arg_v=0x8a46258)
> at
> connection.c:1079
> #12 0x080ba217 in ldap_int_thread_pool_wrapper (xpool=0x89f2390) at
> tpool.c:467
> #13 0x009993ae in start_thread () from /lib/tls/libpthread.so.0
> #14 0x008f2aee in clone () from /lib/tls/libc.so.6


Pierangelo Masarati

    SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497