Full_Name: Matt Hardin Version: 2.4.21 OS: Linux URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (170.215.92.245)
A naming context that uses back-ldap, slapo-rwm, and slapo-pcache dumps core when asked to perform an operation.
Configuration snippets:
database ldap suffix "dc=ad,dc=example,dc=com" subordinate rootdn "dc=ad,dc=example,dc=com" uri "ldaps://ldap01.example.com ldaps://ldap02.example.com"
norefs yes chase-referrals no conn-ttl 300 network-timeout 10 use-temporary-conn yes
# Identity assertion: connections authenticated as either of the two identities # below will connect to AD as the proxy user. Connections authenticated as # anything else (i.e., AD users) use those credentials for authentication. idassert-bind bindmethod=simple binddn="cn=cnsproxy,dc=example,dc=com" credentials=xxxxxx mode=legacy flags=override
idassert-authzFrom "dn.regex:cn=proxy,dc=example,dc=com"
# It is necessary to map a number of objectclass and attribute names to # various other names that are supported in RFC2307. We also take this # opportunity to 'lose' certain other attributes that have no place in # UNIX. overlay rwm rwm-normalize-mapped-attrs yes rwm-suffixmassage "dc=ad,dc=example,dc=com" "dc=example,dc=com" rwm-map objectClass posixAccount user rwm-map attribute uid samAccountName rwm-map attribute "" gecos
[lots of rwm-map statements removed]
# Caching setup overlay pcache proxycache hdb 100000 2 10000 50000 proxycachequeries 20000
proxyattrset 0 uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass memberUid member proxyattrset 1 * # proxytemplate (&(objectClass=)(uid=)) 0 3600 300 proxytemplate (&(objectClass=)(uid=)) 1 3600 300 proxytemplate (&(objectClass=)(uidNumber=)) 0 3600 300 proxytemplate (&(objectClass=)(member=)) 0 3600 300 proxytemplate (&(objectClass=)(|(memberUid=)(member=))) 0 3600 300 proxytemplate (uid=) 0 3600 300 proxytemplate (&(objectClass=)(cn=)) 0 3600 300 proxytemplate (&(objectClass=)(gidNumber=)) 0 3600 300 proxytemplate (objectClass=*) 0 3600 300 # directory /var/symas/openldap-data/example-pcache cachesize 10000 idlcachesize 10000 checkpoint 512 600 sizelimit unlimited
index objectClass eq index cn,sn,uid eq index uidNumber eq index gidNumber eq index memberUid eq index member eq index queryid eq
dbconfig set_cachesize 0 536870912 0 dbconfig set_flags DB_LOG_AUTOREMOVE dbconfig set_lg_max 10485760 dbconfig set_lg_bsize 2097152
Backtrace is as follows:
(gdb) thr apply all bt
Thread 5 (process 19756): #0 0x0083d7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x00abc297 in pthread_join () from /lib/tls/libpthread.so.0 #2 0x00608524 in ldap_pvt_thread_join (thread=4294967292, thread_return=0xfffffffc) at /home/build/sol-2.4.21.0/sol24x/ldap24/libraries/libldap_r/thr_posix.c:197 #3 0x0806f48a in slapd_daemon () at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/daemon.c:2840 #4 0x0805896d in main (argc=7, argv=0xbfe4d694) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/main.c:961
Thread 4 (process 19757): #0 0x0083d7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x0070a1ce in epoll_wait () from /lib/tls/libc.so.6 #2 0x0806e505 in slapd_daemon_task (ptr=0x0) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/daemon.c:2465 #3 0x00abb3cc in start_thread () from /lib/tls/libpthread.so.0 #4 0x00709b4e in clone () from /lib/tls/libc.so.6
Thread 3 (process 19759): #0 0x0083d7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x00abdcf6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 #2 0x00608664 in ldap_pvt_thread_cond_wait (cond=0xfffffffc, mutex=0xfffffffc) at /home/build/sol-2.4.21.0/sol24x/ldap24/libraries/libldap_r/thr_posix.c:277 #3 0x00607822 in ldap_int_thread_pool_wrapper (xpool=0x82c56f0) at /home/build/sol-2.4.21.0/sol24x/ldap24/libraries/libldap_r/tpool.c:672 #4 0x00abb3cc in start_thread () from /lib/tls/libpthread.so.0 ---Type <return> to continue, or q <return> to quit--- #5 0x00709b4e in clone () from /lib/tls/libc.so.6
Thread 2 (process 19760): #0 0x0083d7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x00abdcf6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 #2 0x00608664 in ldap_pvt_thread_cond_wait (cond=0xfffffffc, mutex=0xfffffffc) at /home/build/sol-2.4.21.0/sol24x/ldap24/libraries/libldap_r/thr_posix.c:277 #3 0x00607822 in ldap_int_thread_pool_wrapper (xpool=0x82c56f0) at /home/build/sol-2.4.21.0/sol24x/ldap24/libraries/libldap_r/tpool.c:672 #4 0x00abb3cc in start_thread () from /lib/tls/libpthread.so.0 #5 0x00709b4e in clone () from /lib/tls/libc.so.6
Thread 1 (process 19758): #0 0x0083d7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x00665825 in raise () from /lib/tls/libc.so.6 #2 0x00667289 in abort () from /lib/tls/libc.so.6 #3 0x0065eda1 in __assert_fail () from /lib/tls/libc.so.6 #4 0x0807bc34 in entry_clean (e=0x835ccdc) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/entry.c:483 #5 0x0807bc52 in entry_free (e=0x835ccdc) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/entry.c:514 #6 0x080da90e in overlay_entry_release_ov (op=0x838b5a0, e=0x835ccdc, rw=0, on=0x82fcb50) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/backover.c:439 #7 0x0093aa55 in rwm_send_entry (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/overlays/rwm.c:1508 #8 0x0093b129 in rwm_response (op=0x838b5a0, rs=0x6) ---Type <return> to continue, or q <return> to quit--- at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/overlays/rwm.c:1700 #9 0x080da44a in over_back_response (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/backover.c:237 #10 0x08081be0 in slap_response_play (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/result.c:358 #11 0x0808439b in slap_send_search_entry (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/result.c:843 #12 0x00bd8005 in hdb_search (op=0x838b5a0, rs=0x3a1a100) at search.c:961 #13 0x00a7d495 in pcache_op_search (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/overlays/pcache.c:3029 #14 0x080dad59 in overlay_op_walk (op=0x838b5a0, rs=0x3a1a100, which=op_search, oi=0x82fca50, on=0x8303408) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/backover.c:659 #15 0x080daebc in over_op_func (op=0x838b5a0, rs=0x3a1a100, which=op_search) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/backover.c:721 #16 0x080d8f18 in glue_op_search (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/backglue.c:457 #17 0x080dad59 in overlay_op_walk (op=0x838b5a0, rs=0x3a1a100, which=op_search, oi=0x8302778, on=0x8302878) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/backover.c:659 #18 0x080daebc in over_op_func (op=0x838b5a0, rs=0x3a1a100, which=op_search) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/backover.c:721 #19 0x08074b36 in fe_op_search (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/search.c:366 #20 0x08074041 in do_search (op=0x838b5a0, rs=0x3a1a100) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/search.c:217 #21 0x08072205 in connection_operation (ctx=0x3a1a210, arg_v=0x838b5a0) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/connection.c:1109 ---Type <return> to continue, or q <return> to quit--- #22 0x08072b54 in connection_read_thread (ctx=0x3a1a210, argv=0x18) at /home/build/sol-2.4.21.0/sol24x/ldap24/servers/slapd/connection.c:1245 #23 0x006077c6 in ldap_int_thread_pool_wrapper (xpool=0x82c56f0) at /home/build/sol-2.4.21.0/sol24x/ldap24/libraries/libldap_r/tpool.c:685 #24 0x00abb3cc in start_thread () from /lib/tls/libpthread.so.0 #25 0x00709b4e in clone () from /lib/tls/libc.so.6 (gdb) q
Commentary from debugging session:
the entry in question is owned by pcache's cache DB and the overlay_entry_release() function didn't fall into the right release hook because the pcache overlay didn't provide one so this has to be fixed by adding a release hook to pcache not a big deal. so the fault isn't in rwm this time, it's calling the right API