[Date Prev][Date Next] [Chronological] [Thread] [Top]

ldappasswd hangs (server deadlock) (ITS#2122)



Full_Name: Matthias Loepfe
Version: 2.1.5
OS: Solaris 8
URL: 
Submission from: (NULL) (193.192.235.7)


I have freshly built an
OpenLDAP-2.1.5/BDB-4.1.24/cyrus-sasl-2.1.7/OpenSSL-0.9.7-dev
system on Solaris-8. If I run 'ldappasswd -x -W -S -D <dn1> <dn2>' the command
hangs
and the server is in a deadlock situation. Please find below a stacktrace of all

threads and the last part of fulltrace output and a truss output.


----------- trace ------------------
=> acl_get: [1] matched
=> acl_get: [1] check attr userPassword
<= acl_get: [1] acl cn=ra server,ou=technical users,dc=adnovum,dc=ch attr:
userPassword
=> acl_mask: access to entry "cn=ra server,ou=technical users,dc=adnovum,dc=ch",
attr "userPassword" requested
=> acl_mask: to all values by "cn=super user,ou=technical
users,dc=adnovum,dc=ch", (=n) 
<= check a_dn_pat: anonymous
=> bdb_group: gr dn: "cn=directory admins,ou=admin groups,dc=adnovum,dc=ch"
=> bdb_group: op dn: "cn=super user,ou=technical users,dc=adnovum,dc=ch"
=> bdb_group: oc: "groupOfNames" at: "member"
=> bdb_group: tr dn: "cn=ra server,ou=technical users,dc=adnovum,dc=ch"
bdb_dn2entry_rw("cn=directory admins,ou=admin groups,dc=adnovum,dc=ch")
=> bdb_dn2id( "cn=directory admins,ou=admin groups,dc=adnovum,dc=ch" )
<= bdb_dn2id: got id=0x0000001d
--------------------------------------


-------------- truss -----------------
pread64(12, "\0\0\003\08B 81E\0\0\0 '".., 4096, 159744) = 4096
write(2, " < =   b d b _ d n 2 i d".., 32)	= 32
write(2, " e n t r y _ d e c o d e".., 65)	= 65
write(2, " < =   e n t r y _ d e c".., 66)	= 66
write(2, " b d b _ m o d i f y _ i".., 82)	= 82
write(2, " = >   a c c e s s _ a l".., 111)	= 111
write(2, " = >   d n :   [ 1 ]   o".., 47)	= 47
write(2, " = >   a c l _ g e t :  ".., 24)	= 24
write(2, " = >   a c l _ g e t :  ".., 40)	= 40
write(2, " < =   a c l _ g e t :  ".., 88)	= 88
write(2, " = >   a c l _ m a s k :".., 111)	= 111
write(2, " = >   a c l _ m a s k :".., 89)	= 89
write(2, " < =   c h e c k   a _ d".., 29)	= 29
write(2, " = >   b d b _ g r o u p".., 76)	= 76
write(2, " = >   b d b _ g r o u p".., 73)	= 73
write(2, " = >   b d b _ g r o u p".., 46)	= 46
write(2, " = >   b d b _ g r o u p".., 72)	= 72
write(2, " b d b _ d n 2 e n t r y".., 72)	= 72
write(2, " = >   b d b _ d n 2 i d".., 71)	= 71
pread64(12, "\0\0\003\084 YE9\0\0\089".., 4096, 561152) = 4096
write(2, " < =   b d b _ d n 2 i d".., 32)	= 32
lwp_sema_wait(0xFE201E30)	(sleeping...)
signotifywait()			(sleeping...)
lwp_sema_wait(0xFE481E30)	(sleeping...)
lwp_sema_wait(0xFDD01E30)	(sleeping...)
lwp_cond_wait(0xFE785B20, 0xFE785B08, 0x00000000) (sleeping...)
lwp_sema_wait(0xFDF81E30)	(sleeping...)
poll(0xFE701600, 6, -1)		(sleeping...)
door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)
--------------------------------------

-------------- pstack ----------------
-----------------  lwp# 1 / thread# 6  --------------------
 ff19c0c8 lwp_sema_wait (fe201e30)
 ff089af4 _park    (fe201e30, ff0ae000, 0, fe201d70, 24d54, fe481d70) + 114
 ff0897bc _swtch   (fe201d70, 0, ff0ae000, 5, 1000, 0) + 424
 ff08829c cond_wait (fe201d70, 0, 0, ff0ae000, 0, 4c2780) + 13c
 ff088140 pthread_cond_wait (4c2798, 4c2780, 0, 4c2780, 0, 0) + 8
 001260d8 ldap_pvt_thread_cond_wait (4c2798, 4c2780, 0, 0, 0, 0) + 18
 001258a8 ???????? (4c2778, ff063d10, 0, 5, 1, fe401000)
 ff09b730 _thread_start (4c2778, 0, 0, 0, 0, 0) + 40
-----------------  lwp# 2 / thread# 2  --------------------
 ff19ba18 signotifywait ()
 ff08ed90 _dynamiclwps (ff0ae000, 59, 0, 0, ffbee99c, 4) + 1c
 ff09206c thr_yield (0, 0, 0, 0, 0, 0) + 8c
-----------------  lwp# 3 / thread# 5  --------------------
 ff19c0c8 lwp_sema_wait (fe481e30)
 ff089af4 _park    (fe481e30, ff0ae000, 0, fe481d70, 24d54, fdf81d70) + 114
 ff0897bc _swtch   (fe481d70, 0, ff0ae000, 5, 1000, 0) + 424
 ff08829c cond_wait (fe481d70, 0, 0, ff0ae000, 0, 4c2780) + 13c
 ff088140 pthread_cond_wait (4c2798, 4c2780, 0, 4c2780, 0, 0) + 8
 001260d8 ldap_pvt_thread_cond_wait (4c2798, 4c2780, 0, 0, 0, 0) + 18
 001258a8 ???????? (4c2778, ff0b4748, 0, 5, 1, fe401000)
 ff09b730 _thread_start (4c2778, 0, 0, 0, 0, 0) + 40
-----------------  lwp# 4 / thread# 8  --------------------
 ff19c0c8 lwp_sema_wait (fdd01e30)
 ff089af4 _park    (fdd01e30, ff0ae000, 0, fdd01d70, 24d54, fe201d70) + 114
 ff0897bc _swtch   (fdd01d70, 0, ff0ae000, 5, 1000, 0) + 424
 ff08829c cond_wait (fdd01d70, 0, 0, ff0ae000, 0, 4c2780) + 13c
 ff088140 pthread_cond_wait (4c2798, 4c2780, 0, 4c2780, 0, 0) + 8
 001260d8 ldap_pvt_thread_cond_wait (4c2798, 4c2780, 0, 0, 0, 0) + 18
 001258a8 ???????? (4c2778, fe735d10, 0, 5, 1, fe401000)
 ff09b730 _thread_start (4c2778, 0, 0, 0, 0, 0) + 40
-----------------  lwp# 5 / thread# 9  --------------------
 ff19c07c lwp_cond_wait (fe785b20, fe785b08, 0)
 ff1935c0 _lwp_cond_wait (fe785b20, fe785b08, 0, 5f, 3, 53675c) + c
 001c25e4 __db_pthread_mutex_lock (51e908, fe785b08, 1, fe785b20, 0, 1) + 9c
 0019fcec ???????? (51ec00, 0, 0, 0, 1, 51ec00)
 0019e740 __lock_vec (51e908, 2, 0, 0, 0, 0) + 16c
 001e5e30 __db_lget (51f918, 2, 1, 1, 0, fda7faec) + 298
 001c8118 __bam_search (51f918, 2, 1, 51f5e8, 5201d0, 0) + a50
 00209204 ???????? (51f918, 184, fda7fd5c, 1e, fda7fbe4, 581)
 00205ad4 ???????? (51f918, fda7fd5c, fda7fd44, 1e, fda7fc4c, 0)
 001ddca4 __db_c_get (51f918, fda7fd5c, fda7fd44, 1e, 5201d0, 205460) + 44c
 001d71b8 __db_get (51f2d8, 0, fda7fd5c, fda7fd44, 1e, 8000) + 178
 00109ef0 bdb_id2entry_rw (4d40f0, 0, 1d, fda7fe84, 0, 800014a3) + 148
 00104180 bdb_dn2entry_rw (4d40f0, 0, fda7ff94, fda7fe84, 0, 0) + 1a0
 0010945c bdb_group (4d40f0, 524750, 6126c8, 536190, fda7ff94, 612718) + 514
 000a18ac backend_group (108f48, 524750, 6126c8, 536190, fda7ff94, 612718) +
264
 000b8330 ???????? (4da5e8, fda80dd8, 4d40f0, 524750, 6126c8, 536190)
 000b5dc0 access_allowed (0, fda80470, 1, 536190, 4cd3f0, 0) + aa8
 000b8f14 acl_check_modlist (4d40f0, 524750, 6126c8, 536190, fda818f0, 0) + 39c
 000ef1e8 bdb_modify_internal (4d40f0, 524750, 6126c8, 612758, fda818f0, 536190)
+ d8
 0010f298 bdb_exop_passwd (fda81948, 524750, 6126c8, 57c6f7, fda81c08, fda81bf0)
+ 970
 001062d8 bdb_extended (fda81be8, fda81bf8, 10e928, 57c6f7, fda81c08, fda81bf0)
+ d0
 000c395c passwd_extop (fda81be8, fda81bf8, 106208, fda81c08, fda81bf0,
fda81bec) + 2cc
 000c304c do_extended (fda81bf8, c3690, 0, 4c2780, 0, 0) + 6b4
 0008a3ac ???????? (5432e0, 5227a0, 0, 0, 0, 0)
 00125904 ???????? (4c2778, ff075d10, 0, 5, 1, fe401000)
 ff09b730 _thread_start (4c2778, 0, 0, 0, 0, 0) + 40
-----------------  lwp# 6 / thread# 7  --------------------
 ff19c0c8 lwp_sema_wait (fdf81e30)
 ff089af4 _park    (fdf81e30, ff0ae000, 0, fdf81d70, 24d54, fdd01d70) + 114
 ff0897bc _swtch   (fdf81d70, 0, ff0ae000, 5, 1000, 0) + 424
 ff08829c cond_wait (fdf81d70, 0, 0, ff0ae000, 0, 4c2780) + 13c
 ff088140 pthread_cond_wait (4c2798, 4c2780, 0, 4c2780, 0, 0) + 8
 001260d8 ldap_pvt_thread_cond_wait (4c2798, 4c2780, 0, 0, 0, 0) + 18
 001258a8 ???????? (4c2778, ff075d10, 1, ff0bad94, 0, 2)
 ff09b730 _thread_start (4c2778, 0, 0, 0, 0, 0) + 40
-----------------  lwp# 7 / thread# 4  --------------------
 ff19a254 poll     (fe701600, 6, ffffffff)
 ff14cf8c select   (e, 0, 0, fe701630, fe701be8, fe701600) + 348
 ff09b13c select   (fe701742, ff0b4748, 0, 5, 1, fe401000) + 34
 ff09b730 _thread_start (0, 0, 0, 0, 0, 0) + 40
-----------------  lwp# 8  --------------------------------
 ff1995bc door     (0, 0, 0, 0, fe4e5d10, 4)
 ff096be0 _sc_door_func (0, 0, 0, 0, 0, 0) + 54
--------------------------  thread# 1  --------------------
 ff08de50 _reap_wait_cancel (ff0aee18, ff0b5938, 80, ff0b5938, fe701d70, 1) +
40
 ff0900dc _thrp_join (ff0aee18, 4, 0, ff0ae000, 0, 4) + 344
 00125ed8 ldap_pvt_thread_join (4, 0, 84b20, 0, ffbef240, 0) + 18
 000870a4 slapd_daemon (0, 0, ff1bdec0, 4bc2b0, 0, 0) + dc
 000819f0 main     (d, ffbef01c, ffbef054, 480800, 0, 0) + cb8
 00080ca8 _start   (0, 0, 0, 0, 0, 0) + 108
--------------------------  thread# 3  --------------------
 ff08ddf8 _reap_wait (ff0b29e8, 204e4, 0, ff0ae000, 0, 0) + 38
 ff08db50 _reaper  (ff0aee38, ff0b4748, ff0b29e8, ff0aee10, 1, fe400000) + 38
 ff09b730 _thread_start (0, 0, 0, 0, 0, 0) + 40
--------------------------------------

Is it possible that I have built the system wrong?

here are my configure statements I used:

OpenLDAP: 	./configure --prefix=/opt/openldap
--sysconfdir=/var/spool/openldap/etc \
		--datadir='$$(prefix)/lib' --enable-crypt --without-kerberos \
		--enable-ldap --enable-dynamic --enable-modules --with-tls --with-cyrus-sasl

SASL:           ./configure --prefix=/opt/openldap \
		--with-des=$(spool_builddir) --disable-gssapi --disable-krb4 \
		--with-staticsasl --enable-static --disable-shared --with-dblib=none

BDB:            ../dist/configure --prefix=/opt/openldap --disable-shared

thanks for any help

with best regards

Matthias Loepfe