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.