Issue 2580 - slapd deadlocked in test008 (hdb)
Summary: slapd deadlocked in test008 (hdb)
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: slapd (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-06-05 20:20 UTC by Hallvard Furuseth
Modified: 2014-08-01 21:05 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Hallvard Furuseth 2003-06-05 20:20:53 UTC
Full_Name: Hallvard B Furuseth
Version: HEAD
OS: Solaris
URL: 
Submission from: (NULL) (129.240.186.42)
Submitted by: hallvard


Slapd is deadlocked in test008.
It is configured with
   ./configure --enable-aci --enable-crypt --enable-hdb
               --enable-bdb --enable-monitor --disable-debug
It's linked with the dmalloc library, beacuse I'm trying to
trace a coredump in malloc which only seems to happen when
I'm not using a malloc debugger:-(

Anyway, I'm keeping the process running for the time being,
in case someone wants me to debug it further.

Test output:

./scripts/test008-concurrency . hdb yes yes
running defines.sh
Datadir is ./data
Cleaning up in ./test-db...
Running slapadd to build slapd database...
Waiting 5 seconds for slapadd to build slapd database...
Starting slapd on TCP/IP port 9009...
Using ldapsearch to check that slapd is running...
Waiting 5 seconds for slapd to start...
Using tester for concurrent server access...
PID=1290 - Search(500): base="o=University of Michigan,c=US", filter="cn=Barbara
Jensen".
PID=1291 - Read(1000): entry="cn=Barbara Jensen, ou=Information Technology
Division, ou=People, o=University of Michigan, c=US".
PID=1292 - Modrdn(50): entry="cn=Dorothy Stevens,ou=Alumni
Association,ou=People,o=University of Michigan,c=US".
PID=1293 - Add/Delete(50): entry="cn=James A Jones 2,ou=Alumni
Association,ou=People,o=University of Michigan,c=US".
PID=1294 - Search(500): base="o=University of Michigan,c=US", filter="cn=Bjorn
Jensen".
PID=1295 - Read(1000): entry="cn=ITD Staff,ou=Groups,o=University of
Michigan,c=US".
PID=1302 - Search(500): base="o=University of Michigan,c=US", filter="PID=1298 -
Search(500): base="o=University of Michigan,c=US", filter="cn=James A Jones 1".
PID=1306 - Search(500): base="o=University of Michigan,c=US", filter="cn=Alumni
Assoc Staff".
PID=1300 - Modrdn(50): entry="cn=Ursula Hampster,ou=Alumni
Association,ou=People,o=University of Michigan,c=US".
cn=Bjorn Jensen".
PID=1303 - Read(1000): entry="ou=Alumni Association, ou=People, o=University of
Michigan, c=US".
PID=1307 - Read(1000): entry="cn=James A Jones 1, ou=Alumni Association,
ou=People, o=University of Michigan, c=US".
PID=1299 - Read(1000): entry="ou=Groups, o=University of Michigan, c=US".
PID=1296 - Modrdn(50): entry="cn=John Doe,ou=Information Technology
Division,ou=People,o=University of Michigan,c=US".
PID=1304 - Modrdn(50): entry="cn=James A Jones 2,ou=Information Technology
Division,ou=People,o=University of Michigan,c=US".
PID=1297 - Add/Delete(50): entry="cn=James A Jones 3,ou=Alumni
Association,ou=People,o=University of Michigan,c=US".
PID=1301 - Add/Delete(50): entry="cn=James A Jones 4,ou=People,o=University of
Michigan,c=US".
PID=1305 - Add/Delete(50): entry="cn=James A Jones 5,o=University of
Michigan,c=US".

Gdb backtrace:

bash$ gdb ../servers/slapd/slapd 1281
[Switching to Thread 4 (LWP 1)]
0xfef99ec4 in _poll () from /usr/lib/libc.so.1
(gdb) thread apply all bt

Thread 21 (Thread 16        ):
#0  0xfef9bd34 in _lwp_sema_wait () from /usr/lib/libc.so.1
#1  0xfeec9ab8 in _park () from /usr/lib/libthread.so.1
#2  0xfeec9780 in _swtch () from /usr/lib/libthread.so.1
#3  0xfeec8270 in cond_wait () from /usr/lib/libthread.so.1
#4  0xfeec811c in pthread_cond_wait () from /usr/lib/libthread.so.1
#5  0x00080cd0 in ldap_pvt_thread_cond_wait (cond=0x2654b0, mutex=0x265488)
    at thr_posix.c:254
#6  0x0007fb20 in ldap_pvt_thread_rdwr_wlock (rwlock=0x265488) at rdwr.c:245
#7  0x0006df0c in bdb_entryinfo_add_internal (bdb=0x1f5c08, ei=0xf80017f8, 
    res=0xf80017f4, locker=25) at cache.c:210
#8  0x0006e30c in hdb_cache_find_ndn (op=0xdba008, txn=0x0, ndn=0xdba030, 
    res=0xf80018bc, locker=25) at cache.c:367
#9  0x00070048 in hdb_dn2entry (op=0xdba008, tid=0x0, dn=0xdba030, 
    e=0xf8001938, matched=1, locker=25, lock=0xf8001940) at dn2entry.c:44
#10 0x000602a0 in hdb_referrals (op=0xdba008, rs=0xf8001ad8) at referral.c:46
#11 0x00036374 in backend_check_referrals (op=0xdba008, rs=0xf8001ad8)
    at backend.c:1110
#12 0x0003a610 in do_modrdn (op=0xdba008, rs=0xf8001ad8) at modrdn.c:298
#13 0x0002f490 in connection_operation (ctx=0xf8001b80, arg_v=0xdba008)
    at connection.c:963
#14 0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 20 (Thread 15        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e354 in hdb_cache_find_ndn (op=0xdcb608, txn=0x0, ndn=0xdcb630, 
    res=0xf8741594, locker=24) at cache.c:386
#4  0x00070048 in hdb_dn2entry (op=0xdcb608, tid=0x0, dn=0xdcb630, 
    e=0xf8741638, matched=1, locker=24, lock=0xf8741650) at dn2entry.c:44
#5  0x00060ee4 in hdb_do_search (op=0xdcb608, rs=0xf8801ad8, sop=0xdcb608, 
    ps_e=0x0, ps_type=0) at search.c:510
#6  0x00060c8c in hdb_search (op=0xdcb608, rs=0xf8801ad8) at search.c:357
#7  0x000306a0 in do_search (op=0xdcb608, rs=0xf8801ad8) at search.c:395
#8  0x0002f544 in connection_operation (ctx=0xf8801b80, arg_v=0xdcb608)
    at connection.c:978
#9  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 19 (Thread 14        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e354 in hdb_cache_find_ndn (op=0xdcbc08, txn=0x0, ndn=0xdcbc30, 
    res=0xf8f41594, locker=23) at cache.c:386
#4  0x00070048 in hdb_dn2entry (op=0xdcbc08, tid=0x0, dn=0xdcbc30, 
    e=0xf8f41638, matched=1, locker=23, lock=0xf8f41650) at dn2entry.c:44
#5  0x00060ee4 in hdb_do_search (op=0xdcbc08, rs=0xf9001ad8, sop=0xdcbc08, 
    ps_e=0x0, ps_type=0) at search.c:510
#6  0x00060c8c in hdb_search (op=0xdcbc08, rs=0xf9001ad8) at search.c:357
#7  0x000306a0 in do_search (op=0xdcbc08, rs=0xf9001ad8) at search.c:395
#8  0x0002f544 in connection_operation (ctx=0xf9001b80, arg_v=0xdcbc08)
    at connection.c:978
#9  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 18 (Thread 13        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e6a8 in hdb_cache_find_id (op=0xdcb508, tid=0x0, id=4, 
    eip=0xf9741638, islocked=0, locker=22, lock=0xf9741650) at cache.c:531
#4  0x00061a74 in hdb_do_search (op=0xdcb508, rs=0xf9801ad8, sop=0xdcb508, 
    ps_e=0x0, ps_type=0) at search.c:904
#5  0x00060c8c in hdb_search (op=0xdcb508, rs=0xf9801ad8) at search.c:357
#6  0x000306a0 in do_search (op=0xdcb508, rs=0xf9801ad8) at search.c:395
#7  0x0002f544 in connection_operation (ctx=0xf9801b80, arg_v=0xdcb508)
    at connection.c:978
#8  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 17 (Thread 12        ):
#0  0xfeec8268 in cond_wait () from /usr/lib/libthread.so.1
#1  0xfeec811c in pthread_cond_wait () from /usr/lib/libthread.so.1
#2  0x00080cd0 in ldap_pvt_thread_cond_wait (cond=0x2654b0, mutex=0x265488)
    at thr_posix.c:254
#3  0x0007fb20 in ldap_pvt_thread_rdwr_wlock (rwlock=0x265488) at rdwr.c:245
#4  0x0006df0c in bdb_entryinfo_add_internal (bdb=0x1f5c08, ei=0xfa0017f8, 
    res=0xfa0017f4, locker=21) at cache.c:210
#5  0x0006e30c in hdb_cache_find_ndn (op=0xdca008, txn=0x0, ndn=0xdca030, 
    res=0xfa0018bc, locker=21) at cache.c:367
#6  0x00070048 in hdb_dn2entry (op=0xdca008, tid=0x0, dn=0xdca030, 
    e=0xfa001938, matched=1, locker=21, lock=0xfa001940) at dn2entry.c:44
#7  0x000602a0 in hdb_referrals (op=0xdca008, rs=0xfa001ad8) at referral.c:46
#8  0x00036374 in backend_check_referrals (op=0xdca008, rs=0xfa001ad8)
    at backend.c:1110
#9  0x0003a610 in do_modrdn (op=0xdca008, rs=0xfa001ad8) at modrdn.c:298
#10 0x0002f490 in connection_operation (ctx=0xfa001b80, arg_v=0xdca008)
    at connection.c:963
#11 0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 16 (Thread 11        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e354 in hdb_cache_find_ndn (op=0xdcbd08, txn=0x0, ndn=0xdcbd30, 
    res=0xfa8018bc, locker=19) at cache.c:386
#4  0x00070048 in hdb_dn2entry (op=0xdcbd08, tid=0x0, dn=0xdcbd30, 
    e=0xfa801938, matched=1, locker=19, lock=0xfa801940) at dn2entry.c:44
#5  0x000602a0 in hdb_referrals (op=0xdcbd08, rs=0xfa801ad8) at referral.c:46
#6  0x00036374 in backend_check_referrals (op=0xdcbd08, rs=0xfa801ad8)
    at backend.c:1110
#7  0x0003a610 in do_modrdn (op=0xdcbd08, rs=0xfa801ad8) at modrdn.c:298
#8  0x0002f490 in connection_operation (ctx=0xfa801b80, arg_v=0xdcbd08)
    at connection.c:963
#9  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 15 (Thread 10        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e6a8 in hdb_cache_find_id (op=0xdcbf08, tid=0x0, id=4, 
    eip=0xfaf41638, islocked=0, locker=18, lock=0xfaf41650) at cache.c:531
#4  0x00061a74 in hdb_do_search (op=0xdcbf08, rs=0xfb001ad8, sop=0xdcbf08, 
    ps_e=0x0, ps_type=0) at search.c:904
#5  0x00060c8c in hdb_search (op=0xdcbf08, rs=0xfb001ad8) at search.c:357
#6  0x000306a0 in do_search (op=0xdcbf08, rs=0xfb001ad8) at search.c:395
#7  0x0002f544 in connection_operation (ctx=0xfb001b80, arg_v=0xdcbf08)
    at connection.c:978
#8  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 14 (Thread 9        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e6a8 in hdb_cache_find_id (op=0xdcbe08, tid=0x0, id=4, 
    eip=0xfb741638, islocked=0, locker=17, lock=0xfb741650) at cache.c:531
#4  0x00061a74 in hdb_do_search (op=0xdcbe08, rs=0xfb801ad8, sop=0xdcbe08, 
    ps_e=0x0, ps_type=0) at search.c:904
#5  0x00060c8c in hdb_search (op=0xdcbe08, rs=0xfb801ad8) at search.c:357
#6  0x000306a0 in do_search (op=0xdcbe08, rs=0xfb801ad8) at search.c:395
#7  0x0002f544 in connection_operation (ctx=0xfb801b80, arg_v=0xdcbe08)
    at connection.c:978
#8  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 13 (Thread 8        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e6a8 in hdb_cache_find_id (op=0xdba108, tid=0x0, id=4, 
    eip=0xfbf41638, islocked=0, locker=16, lock=0xfbf41650) at cache.c:531
#4  0x00061a74 in hdb_do_search (op=0xdba108, rs=0xfc001ad8, sop=0xdba108, 
    ps_e=0x0, ps_type=0) at search.c:904
#5  0x00060c8c in hdb_search (op=0xdba108, rs=0xfc001ad8) at search.c:357
#6  0x000306a0 in do_search (op=0xdba108, rs=0xfc001ad8) at search.c:395
#7  0x0002f544 in connection_operation (ctx=0xfc001b80, arg_v=0xdba108)
    at connection.c:978
#8  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 12 (Thread 7        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e278 in hdb_cache_find_ndn (op=0x266b08, txn=0xdbfb88, 
    ndn=0xfc8019a0, res=0xfc801784, locker=2147483674) at cache.c:349
#4  0x0005f8c0 in hdb_modrdn (op=0x266b08, rs=0xfc801ad8) at modrdn.c:672
#5  0x0003a6d4 in do_modrdn (op=0x266b08, rs=0xfc801ad8) at modrdn.c:366
#6  0x0002f490 in connection_operation (ctx=0xfc801b80, arg_v=0x266b08)
    at connection.c:963
#7  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 11 (Thread 6 (LWP 3)):
#0  0xfef9bce8 in ___lwp_cond_wait () from /usr/lib/libc.so.1
#1  0xfef932b0 in _lwp_cond_wait () from /usr/lib/libc.so.1
#2  0x000e6840 in __db_pthread_mutex_lock ()
#3  0x000c4624 in __lock_get_internal ()
#4  0x000c3b70 in __lock_get ()
#5  0x0006de5c in bdb_cache_entry_db_lock (env=0x1e3c08, locker=14, 
    ei=0xdbfd88, rw=1, tryOnly=0, lock=0xfd001838) at cache.c:104
#6  0x0006e78c in hdb_cache_find_id (op=0x266108, tid=0x0, id=4, 
    eip=0xfd0017b4, islocked=1, locker=14, lock=0xfd001838) at cache.c:567
#7  0x000700bc in hdb_dn2entry (op=0x266108, tid=0x0, dn=0x4, e=0xfd001830, 
    matched=1, locker=14, lock=0xfd001838) at dn2entry.c:52
#8  0x000602a0 in hdb_referrals (op=0x266108, rs=0xfd001ad8) at referral.c:46
#9  0x00036374 in backend_check_referrals (op=0x266108, rs=0xfd001ad8)
    at backend.c:1110
#10 0x00032710 in do_add (op=0x266108, rs=0xfd001ad8) at add.c:229
#11 0x0002f418 in connection_operation (ctx=0xfd001b80, arg_v=0x266108)
    at connection.c:953
#12 0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 10 (Thread 5        ):
#0  0xfeecb140 in _mutex_adaptive_lock () from /usr/lib/libthread.so.1
#1  0xfeecbbf8 in pthread_mutex_lock () from /usr/lib/libthread.so.1
#2  0x00080d10 in ldap_pvt_thread_mutex_lock (mutex=0x0) at thr_posix.c:288
#3  0x0006e6a8 in hdb_cache_find_id (op=0x267108, tid=0x0, id=4, 
    eip=0xfd741638, islocked=0, locker=12, lock=0xfd741650) at cache.c:531
#4  0x00061a74 in hdb_do_search (op=0x267108, rs=0xfd801ad8, sop=0x267108, 
    ps_e=0x0, ps_type=0) at search.c:904
#5  0x00060c8c in hdb_search (op=0x267108, rs=0xfd801ad8) at search.c:357
#6  0x000306a0 in do_search (op=0x267108, rs=0xfd801ad8) at search.c:395
#7  0x0002f544 in connection_operation (ctx=0xfd801b80, arg_v=0x267108)
    at connection.c:978
#8  0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 9 (Thread 3        ):
#0  0xfeecddb4 in _reap_wait () from /usr/lib/libthread.so.1
#1  0xfeecdb14 in _reaper () from /usr/lib/libthread.so.1

Thread 8 (Thread 2 (LWP 2)):
#0  0xfef9b684 in _signotifywait () from /usr/lib/libc.so.1
#1  0xfeeced54 in _dynamiclwps () from /usr/lib/libthread.so.1

Thread 7 (Thread 1        ):
#0  0xfeecde0c in _reap_wait_cancel () from /usr/lib/libthread.so.1
#1  0xfeed00a0 in _thrp_join () from /usr/lib/libthread.so.1
#2  0x00080c38 in ldap_pvt_thread_join (thread=4277071384, thread_return=0x4)
    at thr_posix.c:158
#3  0x0002e73c in slapd_daemon () at daemon.c:1993
#4  0x000291dc in main (argc=8, argv=0xffbef534) at main.c:579

Thread 6 (LWP    2        ):
#0  0xfef9b684 in _signotifywait () from /usr/lib/libc.so.1
#1  0xfeeced54 in _dynamiclwps () from /usr/lib/libthread.so.1

Thread 5 (LWP    3        ):
#0  0xfef9bce8 in ___lwp_cond_wait () from /usr/lib/libc.so.1
#1  0xfef932b0 in _lwp_cond_wait () from /usr/lib/libc.so.1
#2  0x000e6840 in __db_pthread_mutex_lock ()
#3  0x000c4624 in __lock_get_internal ()
#4  0x000c3b70 in __lock_get ()
#5  0x0006de5c in bdb_cache_entry_db_lock (env=0x1e3c08, locker=14, 
    ei=0xdbfd88, rw=1, tryOnly=0, lock=0xfd001838) at cache.c:104
#6  0x0006e78c in hdb_cache_find_id (op=0x266108, tid=0x0, id=4, 
    eip=0xfd0017b4, islocked=1, locker=14, lock=0xfd001838) at cache.c:567
#7  0x000700bc in hdb_dn2entry (op=0x266108, tid=0x0, dn=0x4, e=0xfd001830, 
    matched=1, locker=14, lock=0xfd001838) at dn2entry.c:52
#8  0x000602a0 in hdb_referrals (op=0x266108, rs=0xfd001ad8) at referral.c:46
#9  0x00036374 in backend_check_referrals (op=0x266108, rs=0xfd001ad8)
    at backend.c:1110
#10 0x00032710 in do_add (op=0x266108, rs=0xfd001ad8) at add.c:229
#11 0x0002f418 in connection_operation (ctx=0xfd001b80, arg_v=0x266108)
    at connection.c:953
#12 0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 4 (LWP    4        ):
#0  0xfef9bd34 in _lwp_sema_wait () from /usr/lib/libc.so.1
#1  0xfeec9ab8 in _park () from /usr/lib/libthread.so.1
#2  0xfeec9780 in _swtch () from /usr/lib/libthread.so.1
#3  0xfeec8270 in cond_wait () from /usr/lib/libthread.so.1
#4  0xfeec811c in pthread_cond_wait () from /usr/lib/libthread.so.1
#5  0x00080cd0 in ldap_pvt_thread_cond_wait (cond=0x2654b0, mutex=0x265488)
    at thr_posix.c:254
#6  0x0007fb20 in ldap_pvt_thread_rdwr_wlock (rwlock=0x265488) at rdwr.c:245
#7  0x0006df0c in bdb_entryinfo_add_internal (bdb=0x1f5c08, ei=0xf80017f8, 
    res=0xf80017f4, locker=25) at cache.c:210
#8  0x0006e30c in hdb_cache_find_ndn (op=0xdba008, txn=0x0, ndn=0xdba030, 
    res=0xf80018bc, locker=25) at cache.c:367
#9  0x00070048 in hdb_dn2entry (op=0xdba008, tid=0x0, dn=0xdba030, 
    e=0xf8001938, matched=1, locker=25, lock=0xf8001940) at dn2entry.c:44
#10 0x000602a0 in hdb_referrals (op=0xdba008, rs=0xf8001ad8) at referral.c:46
#11 0x00036374 in backend_check_referrals (op=0xdba008, rs=0xf8001ad8)
    at backend.c:1110
#12 0x0003a610 in do_modrdn (op=0xdba008, rs=0xf8001ad8) at modrdn.c:298
#13 0x0002f490 in connection_operation (ctx=0xf8001b80, arg_v=0xdba008)
    at connection.c:963
#14 0x0008043c in ldap_int_thread_pool_wrapper (xpool=0x1e9a88) at tpool.c:463

Thread 3 (LWP    5        ):
#0  0xfef99228 in door_restart () from /usr/lib/libc.so.1

Thread 2 (Thread 4 (LWP 1)):
#0  0xfef99ec4 in _poll () from /usr/lib/libc.so.1
#1  0xfef4ccac in select () from /usr/lib/libc.so.1
#2  0xfeedb0f4 in select () from /usr/lib/libthread.so.1

Thread 1 (LWP    1        ):
#0  0xfef99ec4 in _poll () from /usr/lib/libc.so.1
#1  0xfef4ccac in select () from /usr/lib/libc.so.1
#2  0xfeedb0f4 in select () from /usr/lib/libthread.so.1
#0  0xfef99ec4 in _poll () from /usr/lib/libc.so.1

(gdb) detach

Comment 1 Hallvard Furuseth 2003-06-05 21:01:34 UTC
Someone kick me, please...

I didn't even notice the two latest threads, doing select().

'truss -p' shows that slapd is looping, doing the system calls
   poll(0xFE001108, 20, 0)                         = 0
   yield()                                         = 0
   time()                                          = 1054845428
A select() loop with no timeout and no intervening sleep().

Here is another GDB session with the same process.  All but the two
bottom thread were the same.  These two were doing yield().

Thread 2 (Thread 4 (LWP 1)):
#0  0xfef9c3a0 in yield () from /usr/lib/libc.so.1
#1  0x00080c64 in ldap_pvt_thread_yield () at thr_posix.c:183
#2  0x0002e670 in slapd_daemon_task (ptr=0x3edfacd7) at daemon.c:1892

Thread 1 (LWP    1        ):
#0  0xfef9c3a0 in yield () from /usr/lib/libc.so.1
#1  0x00080c64 in ldap_pvt_thread_yield () at thr_posix.c:183
#2  0x0002e670 in slapd_daemon_task (ptr=0x3edfacd7) at daemon.c:1892
#0  0xfef9c3a0 in yield () from /usr/lib/libc.so.1
(gdb) n
Single stepping until exit from function yield,
which has no line number information.
ldap_pvt_thread_yield () at thr_posix.c:199
199    }
(gdb) n
slapd_daemon_task (ptr=0x3edfacd7) at daemon.c:1258
1258            now = slap_get_time();
(gdb)
1260            if( ( global_idletimeout > 0 ) &&
(gdb)
1266            tv = idle;
(gdb) p idle
$1 = {tv_sec = 0, tv_usec = 0}
(gdb) n
1269            if( slapd_gentle_shutdown ) {
(gdb) n
1289            FD_ZERO( &writefds );
(gdb) n
1290            FD_ZERO( &readfds );
(gdb)
1292            at = 0;
(gdb)
1294            ldap_pvt_thread_mutex_lock( &slap_daemon.sd_mutex );
(gdb)
1306            AC_MEMCPY( &readfds, &slap_daemon.sd_readers, sizeof(fd_set) );
(gdb)
1307            AC_MEMCPY( &writefds, &slap_daemon.sd_writers, sizeof(fd_set) );
(gdb)
1310            FD_SET( wake_sds[0], &readfds );
(gdb) p readfds
$2 = {fds_bits = {268434496, 0 <repeats 31 times>}}
(gdb) set radix 16
Input and output radices now set to decimal 16, hex 10, octal 20.
(gdb) p readfds
$3 = {fds_bits = {0xffffc40, 0x0 <repeats 31 times>}}
(gdb) p writefds
$4 = {fds_bits = {0x0 <repeats 32 times>}}
(gdb) n
1312            for ( l = 0; slap_listeners[l] != NULL; l++ ) {
(gdb) p wake_sds[0]
$5 = 0x4
(gdb) p readfds
$6 = {fds_bits = {0xffffc50, 0x0 <repeats 31 times>}}
(gdb) n
1313                if ( slap_listeners[l]->sl_sd == AC_SOCKET_INVALID )
(gdb)
1315                if ( slap_listeners[l]->sl_is_mute )
(gdb)
1318                if (!FD_ISSET(slap_listeners[l]->sl_sd, &readfds))
(gdb)
1323            nfds = slap_daemon.sd_nfds;
(gdb)
1327            if ( global_idletimeout && slap_daemon.sd_nactives )
(gdb)
1330            ldap_pvt_thread_mutex_unlock( &slap_daemon.sd_mutex );
(gdb)
1332            if ( !at ) {
(gdb)
1333                at = ldap_pvt_thread_pool_backload(&connection_pool) -
(gdb)
1337            tvp = at ? &tv : NULL;
(gdb) p at
$7 = 0x12
(gdb) p tv
$8 = {tv_sec = 0x0, tv_usec = 0x0}
(gdb) n
1340            ldap_pvt_thread_mutex_lock( &syncrepl_rq.rq_mutex );
(gdb) n
1341            rtask = ldap_pvt_runqueue_next_sched( &syncrepl_rq, &cat );
(gdb) n
1342            while ( cat && cat->tv_sec && cat->tv_sec <= now ) {
(gdb)
1355            ldap_pvt_thread_mutex_unlock( &syncrepl_rq.rq_mutex );
(gdb)
1357            if ( cat != NULL ) {
(gdb)
1394                NULL, tvp ))
(gdb) n
1892            ldap_pvt_thread_yield();
(gdb) detach

-- 
Hallvard

Comment 2 Howard Chu 2003-06-12 13:40:29 UTC
changed notes
changed state Open to Test
moved from Incoming to Development
Comment 3 Howard Chu 2003-10-13 21:22:42 UTC
changed state Test to Closed
Comment 4 Howard Chu 2009-02-17 06:52:54 UTC
moved from Development to Archive.Development
Comment 5 OpenLDAP project 2014-08-01 21:05:18 UTC
fixed?