[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#6043) slapd segfaults in bdb_rdn_cmp
Luca Scamoni wrote:
> (gdb) thread apply all bt full
>
> Thread 4 (process 29343):
> #0 0x006487a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> No symbol table info available.
> #1 0x001271d7 in pthread_join () from /lib/tls/libpthread.so.0
> No symbol table info available.
> #2 0x008f8926 in ldap_pvt_thread_join (thread=4294967292,
> thread_return=0xfffffffc)
> at ../../../libraries/libldap_r/thr_posix.c:197
> No locals.
> #3 0x080704d7 in slapd_daemon ()
> No symbol table info available.
> #4 0x0805858e in main ()
> No symbol table info available.
>
> Thread 3 (process 29344):
> #0 0x006487a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> No symbol table info available.
> #1 0x007372be in epoll_wait () from /lib/tls/libc.so.6
> No symbol table info available.
> #2 0x0806f3fb in slapd_daemon_destroy ()
This trace is bogus, there's no call from slapd_daemon_destroy() to
epoll_wait() in the code. And you wouldn't have gotten to
slapd_daemon_destroy() unless you were shutting down.
> No symbol table info available.
> #3 0x001263cc in start_thread () from /lib/tls/libpthread.so.0
> No symbol table info available.
> #4 0x00736c3e in clone () from /lib/tls/libc.so.6
> No symbol table info available.
>
> Thread 2 (process 29345):
> #0 0x006487a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> No symbol table info available.
> #1 0x00128c26 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/tls/libpthread.so.0
> No symbol table info available.
> #2 0x008f8a2b in ldap_pvt_thread_cond_wait (cond=0xfffffffc,
> mutex=0xfffffffc)
> at ../../../libraries/libldap_r/thr_posix.c:277
> No locals.
> #3 0x008f7d5a in ldap_int_thread_pool_wrapper (xpool=0x96eeb98)
> at ../../../libraries/libldap_r/tpool.c:654
> task = (ldap_int_thread_task_t *) 0x0
> work_list = Variable "work_list" is not available.
>
> Thread 1 (process 29346):
> #0 0x006d7860 in strncmp () from /lib/tls/libc.so.6
> No symbol table info available.
> #1 0x0019085e in bdb_rdn_cmp (v_e1=0x17d7270, v_e2=0x9837d58) at
> cache.c:301
> rc = 5
> #2 0x080fc1f5 in avl_find ()
> No symbol table info available.
> #3 0x00190abd in hdb_cache_find_ndn (op=0x17d7460, txn=0x9837aa8,
> ndn=0x17d73ec, res=0x17d7318)
> at cache.c:433
> bdb = (struct bdb_info *) 0x97bf5d8
> ei = {bei_parent = 0x97bf624, bei_id = 0, bei_lockpad = 0,
> bei_state = 0,
> bei_finders = 0, bei_nrdn = {bv_len = 23,
> bv_val = 0xffffffe9<Address 0xffffffe9 out of bounds>}, bei_rdn =
> {bv_len = 0,
> bv_val = 0x0}, bei_modrdns = 0, bei_ckids = 0, bei_dkids = 0, bei_e
> = 0x0,
> bei_kids = 0xb7f43994, bei_kids_mutex = {__m_reserved = 0, __m_count =
> 0, __m_owner = 0x0,
> __m_kind = 0, __m_lock = {__status = 0, __spinlock = 135208867}},
> bei_lrunext = 0x55313c,
> bei_lruprev = 0x542022fc}
> eip = (EntryInfo *) 0x97bf624
> ei2 = (EntryInfo *) 0x0
> rc = 0
> ptr = Variable "ptr" is not available.
This is also bogus; is this an optimized compile? It's always hard to tell how
much to trust the debugger here; if there are no further stack frames then
possibly the stack was overwritten. But if you compiled with any type of
optimization, and didn't use -fno-omit-frame-pointer, then that may be all
that's happening here.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/