#9 389 DS does not honor the manageDsaIT control on ldapmodify
Closed: wontfix None Opened 12 years ago by mkosek.

https://bugzilla.redhat.com/show_bug.cgi?id=760687

Description of problem:
I created a referral in DS, but had a typo. I attempted to modify the referral
(which requires the use of the manageDsaIT control to edit the referral entry
itself, rather than returning a referral message to the target). 389 did not
allow me to edit the entry, instead returning a referral message.

Version-Release number of selected component (if applicable):
389-ds-base-1.2.9.13-1.el6.x86_64

How reproducible:
Every time


Steps to Reproduce:
1. Create a referral object such as:

dn: uid=keitaro,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat
 ,dc=com
objectClass: top
objectClass: extensibleObject
uid: keitaro
ref: ldap://ipaserver:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=s
 gallagh,dc=bos,dc=redhat,dc=com??base?

2. Attempt to modify this referral with an LDIF like:

dn: uid=keitaro,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,
dc=com
changetype: modify
replace: ref
ref: ldap://ipaserver.referrals.sgallagh.bos.redhat.com:389/uid=kurashima,cn=us
ers,cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com??base?


Actual results:
ldapmodify returns:

modifying entry "uid=keitaro,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc=b
os,dc=redhat,dc=com"
ldap_modify: Referral (10)


Expected results:
The entry should be updated.

Additional info:

TRACE logs from /var/dirsrv/<slapd>/errors:

[06/Dec/2011:13:53:45 -0500] - => ids_sasl_server_new
(ipaserver.referrals.sgallagh.bos.redhat.com)
[06/Dec/2011:13:53:45 -0500] - ids_sasl_getopt: plugin= option=log_level
[06/Dec/2011:13:53:45 -0500] - ids_sasl_getopt: plugin= option=auto_transition
[06/Dec/2011:13:53:45 -0500] - <= ids_sasl_server_new
[06/Dec/2011:13:53:45 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c950, handle=7
[06/Dec/2011:13:53:45 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:45 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:45 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:45 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:45 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:45 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:45 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:45 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:45 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:45 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:45 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:45 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:45 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:45 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:45 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:45 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:45 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:45 -0500] - defbackend_default
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 32::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - => reslimit_update_from_entry() conn=0x24e0c950,
entry=0x0
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 0 (based on nsLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 1 (based on nsIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 2 (based on nsPagedLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 3 (based on nsPagedIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 4 (based on nsSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 5 (based on nsTimeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 6 (based on nsPagedSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 7 (based on nsIdleTimeout)
[06/Dec/2011:13:53:46 -0500] - <= reslimit_update_from_entry() returning status
0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c950, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:46 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:46 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:46 -0500] - defbackend_default
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 32::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - => reslimit_update_from_entry() conn=0x24e0c560,
entry=0x0
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 0 (based on nsLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 1 (based on nsIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 2 (based on nsPagedLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 3 (based on nsPagedIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 4 (based on nsSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 5 (based on nsTimeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 6 (based on nsPagedSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 7 (based on nsIdleTimeout)
[06/Dec/2011:13:53:46 -0500] - <= reslimit_update_from_entry() returning status
0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c800, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
SUCCESS, value=0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c6b0, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c410, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - add_pb
[06/Dec/2011:13:53:46 -0500] - get_pb
[06/Dec/2011:13:53:46 -0500] - do_bind
[06/Dec/2011:13:53:46 -0500] - BIND dn="cn=Directory Manager" method=128
version=3
[06/Dec/2011:13:53:46 -0500] - => get_ldapmessage_controls
[06/Dec/2011:13:53:46 -0500] - <= get_ldapmessage_controls no controls
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.16)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - do_bind: version 3 method 0x80 dn cn=Directory
Manager
[06/Dec/2011:13:53:46 -0500] - => slapi_pw_find value: "redhatredhat"
[06/Dec/2011:13:53:46 -0500] - <= slapi_pw_find matched
"LNtlbynj2F5pZmSjY8QiGWZG8hNCHo+Rfzx7vA==" using scheme "SSHA"
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 0::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:46 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:46 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:46 -0500] - defbackend_default
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 32::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - => reslimit_update_from_entry() conn=0x24e0c560,
entry=0x0
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 0 (based on nsLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 1 (based on nsIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 2 (based on nsPagedLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 3 (based on nsPagedIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 4 (based on nsSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 5 (based on nsTimeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 6 (based on nsPagedSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 7 (based on nsIdleTimeout)
[06/Dec/2011:13:53:46 -0500] - <= reslimit_update_from_entry() returning status
0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c800, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
SUCCESS, value=0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c6b0, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c410, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - add_pb
[06/Dec/2011:13:53:46 -0500] - get_pb
[06/Dec/2011:13:53:46 -0500] - do_modify
[06/Dec/2011:13:53:46 -0500] - => get_ldapmessage_controls
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.2)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 1 (FOUND)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
1.3.6.1.4.1.42.2.27.8.5.1)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NOT FOUND)
[06/Dec/2011:13:53:46 -0500] - <= get_ldapmessage_controls 1 controls
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NOT FOUND)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NOT FOUND)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:46 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:46 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=0
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => find_entry_internal (dn=uid=keitaro,cn=users,
cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com) lock 0
[06/Dec/2011:13:53:46 -0500] - => dn2entry "uid=keitaro,cn=users,cn=accounts,dc
=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com"
[06/Dec/2011:13:53:46 -0500] - <= dn2entry 7faff4007aa0
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 10::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - <= find_entry_internal_dn sent referral to (ldap
://ipaserver:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc
=bos,dc=redhat,dc=com??base?) for (uid=keitaro,cn=users,cn=accounts,dc=referral
s,dc=sgallagh,dc=bos,dc=redhat,dc=com)
[06/Dec/2011:13:53:46 -0500] - WARNING: 'get_entry' can't find entry 'uid=keita
ro,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com', err
10
[06/Dec/2011:13:53:46 -0500] - modify_update_last_modified_attr
[06/Dec/2011:13:53:46 -0500] - Calling plugin '7-bit check' #0 type 405
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 405
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NOT FOUND)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NOT FOUND)
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Auto Membership Plugin' #2 type
405
[06/Dec/2011:13:53:46 -0500] auto-membership-plugin - --> automember_pre_op
[06/Dec/2011:13:53:46 -0500] auto-membership-plugin - --> automember_get_dn
[06/Dec/2011:13:53:46 -0500] auto-membership-plugin - <-- automember_get_dn
[06/Dec/2011:13:53:46 -0500] auto-membership-plugin - -->
automember_dn_is_config
[06/Dec/2011:13:53:46 -0500] auto-membership-plugin - <--
automember_dn_is_config
[06/Dec/2011:13:53:46 -0500] auto-membership-plugin - <-- automember_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Distributed Numeric Assignment
Plugin' #4 type 405
[06/Dec/2011:13:53:46 -0500] dna-plugin - --> dna_pre_op
[06/Dec/2011:13:53:46 -0500] dna-plugin - --> dna_get_dn
[06/Dec/2011:13:53:46 -0500] dna-plugin - <-- dna_get_dn
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:46 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:46 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=0
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => find_entry_internal (dn=uid=keitaro,cn=users,
cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com) lock 0
[06/Dec/2011:13:53:46 -0500] - => dn2entry "uid=keitaro,cn=users,cn=accounts,dc
=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com"
[06/Dec/2011:13:53:46 -0500] - <= dn2entry 7faff4007aa0
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 10::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - <= find_entry_internal_dn sent referral to (ldap
://ipaserver:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc
=bos,dc=redhat,dc=com??base?) for (uid=keitaro,cn=users,cn=accounts,dc=referral
s,dc=sgallagh,dc=bos,dc=redhat,dc=com)
[06/Dec/2011:13:53:46 -0500] dna-plugin - <-- dna_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'IPA UUID' #7 type 405
[06/Dec/2011:13:53:46 -0500] ipauuid_pre_op - --in-->
[06/Dec/2011:13:53:46 -0500] ipauuid_get_dn - --in-->
[06/Dec/2011:13:53:46 -0500] ipauuid_get_dn - <--out--
[06/Dec/2011:13:53:46 -0500] ipauuid_dn_is_config - --in-->
[06/Dec/2011:13:53:46 -0500] ipauuid_dn_is_config - <--out--
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:46 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:46 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=0
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => find_entry_internal (dn=uid=keitaro,cn=users,
cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com) lock 0
[06/Dec/2011:13:53:46 -0500] - => dn2entry "uid=keitaro,cn=users,cn=accounts,dc
=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com"
[06/Dec/2011:13:53:46 -0500] - <= dn2entry 7faff4007aa0
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 10::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - <= find_entry_internal_dn sent referral to (ldap
://ipaserver:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc
=bos,dc=redhat,dc=com??base?) for (uid=keitaro,cn=users,cn=accounts,dc=referral
s,dc=sgallagh,dc=bos,dc=redhat,dc=com)
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 10::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] ipauuid_pre_op - <--out--
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:46 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:46 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:46 -0500] - defbackend_default
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 32::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - => reslimit_update_from_entry() conn=0x24e0c560,
entry=0x0
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 0 (based on nsLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 1 (based on nsIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 2 (based on nsPagedLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 3 (based on nsPagedIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 4 (based on nsSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 5 (based on nsTimeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 6 (based on nsPagedSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 7 (based on nsIdleTimeout)
[06/Dec/2011:13:53:46 -0500] - <= reslimit_update_from_entry() returning status
0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c800, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
SUCCESS, value=0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c6b0, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c410, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - add_pb
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.12)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_control_present (looking for
2.16.840.1.113730.3.4.18)
[06/Dec/2011:13:53:46 -0500] - <= slapi_control_present 0 (NO CONTROLS)
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=5
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit() conn=0x0,
handle=4
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => compute_limits: sizelimit=-1, timelimit=-1
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'ACL preoperation' #1 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'deref' #3 type 403
[06/Dec/2011:13:53:46 -0500] deref-plugin - --> deref_pre_search
[06/Dec/2011:13:53:46 -0500] deref-plugin - <-- deref_pre_op
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Legacy replication preoperation
plugin' #13 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'Multimaster replication
preoperation plugin' #16 type 403
[06/Dec/2011:13:53:46 -0500] - Calling plugin 'schema-compat-plugin-preop' #18
type 403
[06/Dec/2011:13:53:46 -0500] - defbackend_default
[06/Dec/2011:13:53:46 -0500] - => send_ldap_result 32::
[06/Dec/2011:13:53:46 -0500] - <= send_ldap_result
[06/Dec/2011:13:53:46 -0500] - => reslimit_update_from_entry() conn=0x24e0c560,
entry=0x0
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 0 (based on nsLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 1 (based on nsIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 2 (based on nsPagedLookThroughLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 3 (based on nsPagedIDListScanLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 4 (based on nsSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 5 (based on nsTimeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 6 (based on nsPagedSizeLimit)
[06/Dec/2011:13:53:46 -0500] - reslimit_update_from_entry(): setting limit for
handle 7 (based on nsIdleTimeout)
[06/Dec/2011:13:53:46 -0500] - <= reslimit_update_from_entry() returning status
0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c560, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c800, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
SUCCESS, value=0
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c6b0, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - => slapi_reslimit_get_integer_limit()
conn=0x24e0c410, handle=7
[06/Dec/2011:13:53:46 -0500] - <= slapi_reslimit_get_integer_limit() returning
NO VALUE
[06/Dec/2011:13:53:46 -0500] - get_pb
[06/Dec/2011:13:53:46 -0500] - do_unbind
[06/Dec/2011:13:53:46 -0500] - => get_ldapmessage_controls
[06/Dec/2011:13:53:46 -0500] - <= get_ldapmessage_controls no controls
[06/Dec/2011:13:53:46 -0500] - defbackend_noop
[06/Dec/2011:13:53:47 -0500] - => reslimit_update_from_entry() conn=0x24e0c950,
entry=0x0
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 0 (based on nsLookThroughLimit)
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 1 (based on nsIDListScanLimit)
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 2 (based on nsPagedLookThroughLimit)
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 3 (based on nsPagedIDListScanLimit)
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 4 (based on nsSizeLimit)
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 5 (based on nsTimeLimit)
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 6 (based on nsPagedSizeLimit)
[06/Dec/2011:13:53:47 -0500] - reslimit_update_from_entry(): setting limit for
handle 7 (based on nsIdleTimeout)
[06/Dec/2011:13:53:47 -0500] - <= reslimit_update_from_entry() returning status
0

Thanks to Marc for letting me use his IPA system. I could reproduce the problem using his DS managed by IPA. # ldapmodify -M -x -D "cn=directory manager" -w <pw> -h localhost -p 389 dn: uid=keitaro,dc=example,dc=com changetype: modify replace: ref ref: ldap://ipaserver.referrals.sgallagh.bos.redhat.com:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com??base? modifying entry "uid=keitaro,dc=example,dc=com" ldap_modify: Referral (10) I stopped in check_entry_for_referral in gdb and went through the stacktrace (see below). It seems a pre-op plugin ipa_uuid returns the return code 10 to the client (ldapmodify -M, this case) without doing any further operation. Without the plugin, we could reach the backend modify function ldbm_back_modify and the change is properly made. I was hoping to look into the ipa_uuid plugin, but I could not find the package in brew nor koji... I guess what the ipa_uuid plugin should do is just ignoring the referral return code (10)? rpm -qf /usr/lib64/dirsrv/plugins/libipa_uuid.so ipa-server-2.1.3-9.el6.x86_64 #0 check_entry_for_referral (pb=0x7f66f4004250, entry=0x7f6724003b30, matched=0x0, callingfn=0x7f672f16ead0 "find_entry_internal_dn") at ldap/servers/slapd/back-ldbm/findentry.c:87 #1 0x00007f672f124307 in find_entry_internal_dn (pb=0x7f66f4004250, be=0xcb4bd0, addr=<value optimized out>, lock=0, txn=0x0, really_internal=0) at ldap/servers/slapd/back-ldbm/findentry.c:134 #2 find_entry_internal (pb=0x7f66f4004250, be=0xcb4bd0, addr=<value optimized out>, lock=0, txn=0x0, really_internal=0) at ldap/servers/slapd/back-ldbm/findentry.c:285 #3 0x00007f672f1563aa in ldbm_back_search (pb=0x7f66f4004250) at ldap/servers/slapd/back-ldbm/ldbm_search.c:450 #4 0x00007f6739537e05 in op_shared_search (pb=0x7f66f4004250, send_result=1) at ldap/servers/slapd/opshared.c:686 #5 0x00007f67395422e2 in search_internal_callback_pb (pb=0x7f66f4004250, callback_data=<value optimized out>, prc=<value optimized out>, psec=0x7f6739542740 <internal_plugin_search_entry_callback>, prec=0x7f67395426e0 <internal_plugin_search_referral_callback>) at ldap/servers/slapd/plugin_internal_op.c:761 #6 0x00007f6739542518 in search_internal_pb (pb=0x7f66f4004250) at ldap/servers/slapd/plugin_internal_op.c:611 #7 0x00007f6739543046 in slapi_search_internal_get_entry (dn=0x7f66f4008010, attrs=0x0, ret_entry=0x7f6708be6950, component_identity=0xc4a270) at ldap/servers/slapd/plugin_internal_op.c:895 #8 0x00007f672fdaf2a8 in ?? () from /usr/lib64/dirsrv/plugins/libipa_uuid.so ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #9 0x00007f673953f32d in plugin_call_func (list=0xc4d7a0, operation=405, pb=0x101c780, call_one=0) at ldap/servers/slapd/plugin.c:1439 #10 0x00007f673953f53d in plugin_call_list (pb=0x101c780, whichfunction=405) at ldap/servers/slapd/plugin.c:1401 #11 plugin_call_plugins (pb=0x101c780, whichfunction=405) at ldap/servers/slapd/plugin.c:383 #12 0x00007f6739531ab9 in op_shared_modify (pb=<value optimized out>, pw_change=0, old_pw=0x0) at ldap/servers/slapd/modify.c:852 #13 0x00007f6739532c46 in do_modify (pb=0x101c780) at ldap/servers/slapd/modify.c:384 #14 0x00000000004135e4 in connection_dispatch_operation () at ldap/servers/slapd/connection.c:583 #15 connection_threadmain () at ldap/servers/slapd/connection.c:2328 #16 0x00007f673773a6f3 in ?? () from /lib64/libnspr4.so #17 0x00007f67370de7f1 in start_thread () from /lib64/libpthread.so.0 #18 0x00007f6736e1b70d in clone () from /lib64/libc.so.6

Is this a 389 bug or an ipa bug?

This is an IPA bug (ipa_uuid). Changed the component of bz 760687 from 389 to freeipa.

https://bugzilla.redhat.com/show_bug.cgi?id=760687#c12
#8 0x00007f672fdaf2a8 in ipauuid_pre_op (pb=0x101c780, modtype=4)
at ipa_uuid.c:817

817 ret = slapi_search_internal_get_entry(tmp_dn, NULL, &e,
getPluginID());

(gdb) p ret
$2 = 10

818 slapi_sdn_free(&tmp_dn);
819
820 if (ret) {
821 / ok a client tried to modify an entry that doesn't exist.
822 * Nothing to see here, move along ...
/
823 goto done;
824 }
[...]
1164 done:
[...]
1190 if (ret) {
1191 LOG("operation failure [%d]\n", ret);
1193 slapi_ch_free((void **)&errstr);
1191 LOG("operation failure [%d]\n", ret);
1192 slapi_send_ldap_result(pb, ret, NULL, errstr, 0, NULL);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This line returns return code 10 to the client (ldapmodify).
Do we want not to send the result if the return code "ret" is 10?

Added initial screened field value.

Metadata Update from @nkinder:
- Issue assigned to nhosoi
- Issue set to the milestone: 1.2.10.a7

7 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/9

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: Invalid)

3 years ago

Login to comment on this ticket.

Metadata