[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
RE: 2.0.1[15] hangs on Solaris 8 in test10-passwd.
The last time I checked, my Solaris systems didn't come with a /dev/random.
What do you have installed on your system to provide /dev/random
functionality?
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
http://www.symas.com http://highlandsun.com/hyc
> -----Original Message-----
> From: owner-openldap-software@OpenLDAP.org
> [mailto:owner-openldap-software@OpenLDAP.org]On Behalf Of Nicholas
> Dronen
> Hi,
>
> I'm running 2.0.15 with gdbm. I've seen what I believe is
> the same problem running 2.0.11 as well. Slapd hangs in
> the following test:
>
> >>>>> Starting test010-passwd ...
> running defines.sh . ldbm
> Cleaning up in ./test-db...
> Starting slapd on TCP/IP port 9009...
> Using ldapsearch to check that slapd is running...
> Waiting 5 seconds for slapd to start...
> Using ldapadd to populate the database...
> Using ldapsearch to verify population ...
> Using ldappasswd (PASS 1) ...
>
> Here's the truss output.
>
> poll(0xFEE0B640, 3, -1) (sleeping...)
> signotifywait() (sleeping...)
> door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)
> open("/dev/random", O_RDONLY) (sleeping...)
> lwp_cond_wait(0xFF0E55C8, 0xFF0E55D8, 0xFF083C48) (sleeping...)
> lwp_cond_wait(0xFF0E55C8, 0xFF0E55D8, 0xFF083C48) Err#62 ETIME
> time() = 1001613374
> poll(0xFEE0B640, 3, -1) (sleeping...)
> signotifywait() (sleeping...)
> door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)
> open("/dev/random", O_RDONLY) (sleeping...)
> lwp_cond_wait(0xFF0E55C8, 0xFF0E55D8, 0xFF083C48) (sleeping...)
>
> And the pstack output.
>
> 10285: ../servers/slapd/slapd -f ./data/slapd-pw.conf -h
> ldap://localhost:900
> ----------------- lwp# 1 / thread# 4 --------------------
> ff19956c poll (fee0b640, 3, ffffffff)
> ff14c798 select (9, 0, ff1bb1e4, fee0bbf4, fee0bc74, fee0b640) + 2cc
> ff0cb470 select (fee0b74e, ff0e4798, 0, 5, 1, fe401000) + 34
> ff0cbad0 _thread_start (0, 0, 0, 0, 0, 0) + 40
> ----------------- lwp# 2 / thread# 2 --------------------
> ff19ad30 signotifywait ()
> ff0be8e0 _dynamiclwps (ff0de000, 5c, 0, 0, 0, 0) + 1c
> ff0c1b88 thr_yield (0, 0, 0, 0, 0, 0) + 8c
> ----------------- lwp# 3 --------------------------------
> ff1988d4 door (0, 0, 0, 0, ff0a5d18, 4)
> ff0ba474 _lwp_start (0, 0, 0, 0, 0, 0) + 18
> ----------------- lwp# 4 / thread# 5 --------------------
> ff199448 open (f010c, 0, 0)
> ff192714 _open (f010c, 0, 0, ff1b8018, 0, 0) + 1c
> ff0caa98 open (fed097a8, 4, 0, 105a72, 107d16, 7d) + 34
> 0009ea0c hash_ssha1 (dc0e0, 114478, 109200, 7efefeff, 81010100,
> ff00) + 3c
> 0009d75c lutil_passwd_hash (114478, 105a6c, ff1b8018, 0,
> ff1bbcf8, fed088f8) + 8c
> 0005b6a8 slap_passwd_hash (114478, 4, efc14, 107cc8, 0, 0) + 70
> 000951e4 ldbm_back_exop_passwd (128938, 1292e0, 114bd8, 110f28,
> 1144f8, fed09c10) + 314
> 00089958 ldbm_back_extended (fed09c08, fed09c18, 94ed0, 110f28,
> 1144f8, fed09c10) + f0
> 0005a8d4 passwd_extop (fed09c08, fed09c18, 89868, 1144f8,
> fed09c10, fed09c0c) + 2c4
> 0005a0ec do_extended (fed09c18, 5a610, 10c478, ff1b8018, 0, 79fb0) + 764
> 00024340 connection_operation (114328, 0, 0, 0, 0, 0) + 368
> 000a69fc ldap_int_thread_pool_wrapper (10c470, ff093d18, 1,
> ff0eae04, 0, 2) + 19c
> ff0cbad0 _thread_start (10c470, 0, 0, 0, 0, 0) + 40
> ----------------- lwp# 5 --------------------------------
> ff19b314 lwp_cond_wait (ff0e55c8, ff0e55d8, ff083c48)
> ff192cb0 _lwp_cond_timedwait (0, 3bb36a96, ff083cb0, ff0e55c8,
> ff0e55d8, 0) + 98
> ff0b8e24 _age (ff0dedc0, ff0dedc4, ff0de000, 3, ff0de000, 1) + 94
> ff0ba474 _lwp_start (ff083d78, 0, 4000, ff00fc34, 0, 0) + 18
> ff0c1b88 thr_yield (0, 0, 0, 0, 0, 0) + 8c
> -------------------------- thread# 1 --------------------
> ff0bd9a0 _reap_wait_cancel (ff0dee38, ff0de000, 80, ff0e59a8,
> fee0bd78, 1) + 40
> ff0bfc00 _thrp_join (ff0dee38, 4, 0, ff0de000, 0, 4) + 344
> 000a6eec ldap_pvt_thread_join (4, 0, 1dbd8, 0, ffbef020, dc74d) + 1c
> 0002067c slapd_daemon (0, 0, ff1bbe18, 109268, 0, 0) + 10c
> 0001a81c main (7, ffbeee3c, ffbeee5c, 104000, 0, 0) + bf4
> 00019b94 _start (0, 0, 0, 0, 0, 0) + dc
> -------------------------- thread# 3 --------------------
> ff0bd948 _reap_wait (ff0e2a30, 20994, 0, ff0de000, 0, 0) + 38
> ff0bd6a0 _reaper (ff0dee58, ff0e4798, ff0e2a30, ff0dee30, 1,
> fe400000) + 38
> ff0cbad0 _thread_start (0, 0, 0, 0, 0, 0) + 40
>
> I don't know what's preventing slapd from continuing. It could
> be blocking while opening /dev/random, but it could also be blocking
> in lwp_cond_wait (viz., pthread_cond_wait). If the latter is the case,
> I believe the problem is in libraries/libldap_r/tpool.c, either:
>
> 369 if (pool->ltp_state == LDAP_INT_THREAD_POOL_RUNNING)
> 370 ldap_pvt_thread_cond_wait(&pool->ltp_cond,
> &pool->ltp_mutex);
>
> or
>
> 379 (ctx->ltc_start_routine)(ctx->ltc_arg);
>
> Has anyone seen this before? Might it be a bug in the version
> of libpthread.so on this Solaris machine?
>
> Regards,
>
> Nicholas Dronen:
>