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

Re: (ITS#3778) slapd hangs when modifying 'olcRootDN'



Howard Chu wrote:
> michael@stroeder.com wrote:
> 
>> Full_Name: Michael Ströder
>> Version: HEAD
>> OS: SuSE Linux 9.3
>> URL: ftp://ftp.openldap.org/incoming/
>> Submission from: (NULL) (83.121.35.94)
>>
>>
>> slapd of HEAD hangs when I try to modify attribute 'olcRootDN' of an
>> entry with
>> object class 'olcBdbConfig'.
> 
> It works for me. You'll have to provide more info to reproduce the problem.

Strange, the change is applied to the entry but slapd hangs
afterwards. See relevant logs below. I could send you the whole
configdir/ as tar.gz personally if you want.

Ciao, Michael.

-----------------------------------------------------------
Entry to be modified
-----------------------------------------------------------
dn: olcDatabase={1}bdb,cn=config
objectClass: olcBdbConfig
objectClass: olcDatabaseConfig
olcDatabase: {1}bdb
olcDbDirectory: /var/openldap/HEAD/stroeder.de
olcDbDirtyRead: FALSE
olcDbIndex: cn,sn,givenName,mail,o,ou sub,eq
olcDbIndex: objectClass pres,eq
olcDbNoSync: FALSE
olcLastMod: TRUE
olcReadOnly: FALSE
olcRootDN: cn=root3,dc=stroeder,dc=de
olcSuffix: dc=stroeder,dc=de

-----------------------------------------------------------------
Client-side OpenLDAP debug log mixed with python-ldap's trace log
-----------------------------------------------------------------
*** ldap://localhost - ReconnectLDAPObject.modify_ext
(('olcDatabase={1}bdb,cn=config', [(1, 'olcRootDN', None),
(0, 'olcRootDN', ['cn=root4,dc=stroeder,dc=de'])], None, None),{})
ldap_modify_ext
ldap_send_initial_request
ldap_send_server_request
=> result: 16
*** ldap://localhost - ReconnectLDAPObject.result3 ((16, 1, -1),{})
ldap_result msgid 16
ldap_chkResponseList for msgid=16, all=1
ldap_chkResponseList returns NULL
wait4msg (infinite timeout), msgid 16
wait4msg continue, msgid 16, all 1
** Connections:
* host: localhost  port: 389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun 16 10:43:04 2005

** Outstanding Requests:
 * msgid 16,  origid 16, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
ldap_chkResponseList for msgid=16, all=1
ldap_chkResponseList returns NULL
ldap_int_select

-----------------------------------------------------------------
Server-side OpenLDAP debug log
libexec/slapd -d 1 -F etc/openldap/configdir
-----------------------------------------------------------------
connection_get(15): got connid=1
connection_read(15): checking for input on id=1
ber_get_next
ber_get_next: tag 0x30 len 197 contents:
ber_get_next
ber_get_next on fd 15 failed errno=11 (Resource temporarily unavailable)
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <olcDatabase={1}bdb,cn=config>
=> ldap_bv2dn(olcDatabase={1}bdb,cn=config,0)
ldap_err2string
<= ldap_bv2dn(olcDatabase={1}bdb,cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb,cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb,cn=config)=0 Success
<<< dnPrettyNormal: <olcDatabase={1}bdb,cn=config>,
<olcDatabase={1}bdb,cn=config>
ber_scanf fmt (m) ber:
ber_scanf fmt ({M}}) ber:
=> send_search_entry: conn 1 dn="olcDatabase={1}bdb,cn=config"
ber_flush: 417 bytes to sd 15
<= send_search_entry: conn 1 exit.
send_ldap_result: conn=1 op=13 p=3
send_ldap_response: msgid=14 tag=101 err=0
ber_flush: 14 bytes to sd 15
connection_get(15): got connid=1
connection_read(15): checking for input on id=1
ber_get_next
ber_get_next: tag 0x30 len 197 contents:
ber_get_next
ber_get_next on fd 15 failed errno=11 (Resource temporarily unavailable)
do_search
ber_scanf fmt ({miiiib) ber:
>>> dnPrettyNormal: <olcDatabase={1}bdb,cn=config>
=> ldap_bv2dn(olcDatabase={1}bdb,cn=config,0)
ldap_err2string
<= ldap_bv2dn(olcDatabase={1}bdb,cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb,cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb,cn=config)=0 Success
<<< dnPrettyNormal: <olcDatabase={1}bdb,cn=config>,
<olcDatabase={1}bdb,cn=config>
ber_scanf fmt (m) ber:
ber_scanf fmt ({M}}) ber:
=> send_search_entry: conn 1 dn="olcDatabase={1}bdb,cn=config"
ber_flush: 417 bytes to sd 15
<= send_search_entry: conn 1 exit.
send_ldap_result: conn=1 op=14 p=3
send_ldap_response: msgid=15 tag=101 err=0
ber_flush: 14 bytes to sd 15
connection_get(15): got connid=1
connection_read(15): checking for input on id=1
ber_get_next
ber_get_next: tag 0x30 len 105 contents:
ber_get_next
ber_get_next on fd 15 failed errno=11 (Resource temporarily unavailable)
do_modify
ber_scanf fmt ({m) ber:
ber_scanf fmt ({i{m[W]}}) ber:
ber_scanf fmt ({i{m[W]}}) ber:
>>> dnPrettyNormal: <olcDatabase={1}bdb,cn=config>
=> ldap_bv2dn(olcDatabase={1}bdb,cn=config,0)
ldap_err2string
<= ldap_bv2dn(olcDatabase={1}bdb,cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb,cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb,cn=config)=0 Success
<<< dnPrettyNormal: <olcDatabase={1}bdb,cn=config>,
<olcDatabase={1}bdb,cn=config>
>>> dnPretty: <cn=root4,dc=stroeder,dc=de>
=> ldap_bv2dn(cn=root4,dc=stroeder,dc=de,0)
ldap_err2string
<= ldap_bv2dn(cn=root4,dc=stroeder,dc=de)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root4,dc=stroeder,dc=de)=0 Success
<<< dnPretty: <cn=root4,dc=stroeder,dc=de>
>>> dnPrettyNormal: <cn=root4,dc=stroeder,dc=de>
=> ldap_bv2dn(cn=root4,dc=stroeder,dc=de,0)
ldap_err2string
<= ldap_bv2dn(cn=root4,dc=stroeder,dc=de)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root4,dc=stroeder,dc=de)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root4,dc=stroeder,dc=de)=0 Success
<<< dnPrettyNormal: <cn=root4,dc=stroeder,dc=de>,
<cn=root4,dc=stroeder,dc=de>
oc_check_required entry (olcDatabase={1}bdb,cn=config), objectClass
"olcBdbConfig"
oc_check_allowed type "objectClass"
oc_check_allowed type "olcDatabase"
oc_check_allowed type "olcDbDirectory"
oc_check_allowed type "olcSuffix"
oc_check_allowed type "olcLastMod"
oc_check_allowed type "olcReadOnly"
oc_check_allowed type "olcDbNoSync"
oc_check_allowed type "olcDbDirtyRead"
oc_check_allowed type "olcDbIndex"
oc_check_allowed type "structuralObjectClass"
oc_check_allowed type "entryUUID"
oc_check_allowed type "creatorsName"
oc_check_allowed type "createTimestamp"
oc_check_allowed type "olcRootDN"
oc_check_allowed type "entryCSN"
oc_check_allowed type "modifiersName"
oc_check_allowed type "modifyTimestamp"
>>> dnPrettyNormal: <cn=root4,dc=stroeder,dc=de>
=> ldap_bv2dn(cn=root4,dc=stroeder,dc=de,0)
ldap_err2string
<= ldap_bv2dn(cn=root4,dc=stroeder,dc=de)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root4,dc=stroeder,dc=de)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root4,dc=stroeder,dc=de)=0 Success
<<< dnPrettyNormal: <cn=root4,dc=stroeder,dc=de>,
<cn=root4,dc=stroeder,dc=de>
=> str2entry: "dn: olcDatabase={1}bdb
objectClass: olcBdbConfig
objectClass: olcDatabaseConfig
olcDatabase: {1}bdb
olcDbDirectory: /var/openldap/HEAD/stroeder.de
olcSuffix: dc=stroeder,dc=de
olcLastMod: TRUE
olcReadOnly: FALSE
olcDbNoSync: FALSE
olcDbDirtyRead: FALSE
olcDbIndex: cn,sn,givenName,mail,o,ou sub,eq
olcDbIndex: objectClass pres,eq
structuralObjectClass: olcBdbConfig
entryUUID: dc88bba6-7206-1029-890e-fa3b8a56a6f0
creatorsName: cn=config
createTimestamp: 20050615163251Z
olcRootDN: cn=root3,dc=stroeder,dc=de
entryCSN: 20050616083020Z#000001#00#000000
modifiersName: cn=config
modifyTimestamp: 20050616083020Z
"
>>> dnPrettyNormal: <olcDatabase={1}bdb>
=> ldap_bv2dn(olcDatabase={1}bdb,0)
ldap_err2string
<= ldap_bv2dn(olcDatabase={1}bdb)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(olcDatabase={1}bdb)=0 Success
<<< dnPrettyNormal: <olcDatabase={1}bdb>, <olcDatabase={1}bdb>
>>> dnNormalize: <cn=config>
=> ldap_bv2dn(cn=config,0)
ldap_err2string
<= ldap_bv2dn(cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=config)=0 Success
<<< dnNormalize: <cn=config>
>>> dnNormalize: <cn=config>
=> ldap_bv2dn(cn=config,0)
ldap_err2string
<= ldap_bv2dn(cn=config)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=config)=0 Success
<<< dnNormalize: <cn=config>
<= str2entry(olcDatabase={1}bdb) -> 0x82d7fd0
oc_check_required entry (olcDatabase={1}bdb,cn=config), objectClass
"olcBdbConfig"
oc_check_allowed type "objectClass"
oc_check_allowed type "olcDatabase"
oc_check_allowed type "olcDbDirectory"
oc_check_allowed type "olcSuffix"
oc_check_allowed type "olcLastMod"
oc_check_allowed type "olcReadOnly"
oc_check_allowed type "olcDbNoSync"
oc_check_allowed type "olcDbDirtyRead"
oc_check_allowed type "olcDbIndex"
oc_check_allowed type "structuralObjectClass"
oc_check_allowed type "entryUUID"
oc_check_allowed type "creatorsName"
oc_check_allowed type "createTimestamp"
oc_check_allowed type "olcRootDN"
oc_check_allowed type "entryCSN"
oc_check_allowed type "modifiersName"
oc_check_allowed type "modifyTimestamp"
send_ldap_result: conn=1 op=15 p=3