Bug 760687 - 389 DS does not honor the manageDsaIT control on ldapmodify
Summary: 389 DS does not honor the manageDsaIT control on ldapmodify
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: freeIPA
Classification: Retired
Component: ipa-server
Version: 2.1
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Rob Crittenden
QA Contact: Chandrasekar Kannan
URL:
Whiteboard:
Depends On:
Blocks: 389_1.2.10 782554
TreeView+ depends on / blocked
 
Reported: 2011-12-06 19:10 UTC by Stephen Gallagher
Modified: 2015-01-04 23:51 UTC (History)
9 users (show)

Fixed In Version: freeipa-3.0.0-2.fc18
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 782554 (view as bug list)
Environment:
Last Closed: 2012-10-16 07:16:09 UTC


Attachments (Terms of Use)

Description Stephen Gallagher 2011-12-06 19:10:39 UTC
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=users,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=bos,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=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com)
[06/Dec/2011:13:53:46 -0500] - WARNING: 'get_entry' can't find entry 'uid=keitaro,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=referrals,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=referrals,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

Comment 1 Noriko Hosoi 2011-12-21 21:20:52 UTC
Hi Stephen,

I'm trying to follow your steps... (I'm running the test on my F15 and using my local build from git master.)

This is the original entry I added to my ldapserver.
  dn: uid=keitaro,o=my.com
  objectClass: top
  objectClass: extensibleObject
  uid: keitaro
  ref: ldap://ipaserver:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=example,dc=com??base?

I searched it with openldap ldapsearch.
  $ ldapsearch -LLLx -h localhost -p 389 -b 'o=my.com'
  [...]
  # refldap://ipaserver:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=
 example,dc=com??base?

I tried to modify the referral, then I got return value 10 as you reported:
  $ ldapmodify -x -h localhost -p 389 -D 'cn=directory manager' -w passwd
  dn: uid=keitaro,o=my.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,o=my.com"
  ldap_modify: Referral (10)
	referrals:
		ldap://ipaserver:389/uid=kurashima,cn=users,cn=accounts,dc=referrals,dc=example,dc=com??base?

Here's the snippet of the openldap ldapmodify usage:
  usage: ldapmodify [options]
  Add or modify options:
    -M   enable Manage DSA IT control (-MM to make critical)

Once you add the option to ldapmodify, the request is served.
  $ ldapmodify -M -x -h localhost -p 389 -D 'cn=directory manager' -w passwd
  dn: uid=keitaro,o=my.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,o=my.com"

Here's the search result.
  $ ldapsearch -LLLx -h localhost -p 389 -b 'o=my.com'
  [...]
  # refldap://ipaserver.referrals.sgallagh.bos.redhat.com:389/uid=kurashima,cn=
 users,cn=accounts,dc=referrals,dc=sgallagh,dc=bos,dc=redhat,dc=com??base?

Could you tell us how you specified the manageDsaIT control on ldapmodify?
Thanks,
--noriko

Comment 2 Stephen Gallagher 2011-12-22 13:20:50 UTC
Noriko, I used the -M option to ldapmodify to specify the manageDsaIT control. (Sorry that I didn't put that in the bug).

When that failed, I also attempted to use -e manageDSAit as an alternative approach, but got the same results as above.

This was against 389-ds-base-1.2.9.13-1.el6.x86_64 (which has been configured by ipa-client-install from ipa-server-2.1.3-9.el6.x86_64

Comment 3 Rich Megginson 2011-12-22 17:06:51 UTC
I think the problem is in op_shared_modify(), the get_entry() call at line 706:

	if ( !repl_op && !internal_op && dn &&
		(e = get_entry(pb, slapi_dn_normalize(dn))) )
	{

get_entry() does not examine the managedsait control, so it just returns a referral.

On a side note, it would be very, very nice to move all of the special purpose password and password policy handling code to the backend and/or be pre/post op plugins . . .

Comment 4 Noriko Hosoi 2011-12-22 19:14:09 UTC
Yes, get_entry does not check the ManageDsaIT, but the control is examined in the backend findentry.

static struct backentry *
find_entry_internal_dn(...)
{
    [...]
    /* get the managedsait ldap message control */
    slapi_pblock_get( pb, SLAPI_MANAGEDSAIT, &managedsait );

    while ( (tries < LDBM_CACHE_RETRY_COUNT) &&
            (e = dn2entry_ext( be, sdn, txn, flags & TOMBSTONE_INCLUDED, &err ))
            != NULL )
    {
        /*
         * we found the entry. if the managedsait control is set,
         * we return the entry. if managedsait is not set, we check
         * for the presence of a ref attribute, returning to the
         * client a referral to the ref'ed entry if a ref is present,
         * returning the entry to the caller if not.
         */
        if ( !managedsait && !(flags & FE_REALLY_INTERNAL)) {
            /* see if the entry is a referral */
            if(check_entry_for_referral(pb, e->ep_entry, NULL, "find_entry_internal_dn"))
            {
                CACHE_RETURN( &inst->inst_cache, &e );
                return( NULL );
            }
        }

For me, if -M or "-e manageDSAit" is appended to openldap ldapmodify, the "managedsait" variable gets 1 in find_entry_internal_dn, and it returns the original entry instead of following the referral...  *puzzled*

I also tried with 1.2.10-0.4.a4 from 389 repo.  It also works fine with "-M" or "-e manageDSAit".
389-ds-base-1.2.10-0.4.a4.fc15.x86_64

Comment 5 Noriko Hosoi 2011-12-22 19:15:32 UTC
(In reply to comment #3)
> On a side note, it would be very, very nice to move all of the special purpose
> password and password policy handling code to the backend and/or be pre/post op
> plugins . . .

I agree with you.  Nathan also mentioned it some time back.  Shall we open a bug/ticket to work on the project?

Comment 6 Martin Kosek 2012-01-04 13:09:21 UTC
Upstream ticket:
https://fedorahosted.org/389/ticket/9

Comment 7 Noriko Hosoi 2012-01-07 01:44:24 UTC
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

Comment 8 Nathan Kinder 2012-01-07 16:19:31 UTC
(In reply to comment #7)
> 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)?
> 

I believe that the ipa_uuid plug-in is a part of the ipa-server package.

Comment 9 Noriko Hosoi 2012-01-09 17:18:05 UTC
(In reply to comment #8)
> (In reply to comment #7)
> > 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)?
> > 
> 
> I believe that the ipa_uuid plug-in is a part of the ipa-server package.

Yeah, that's right.  My problem is I searched "ipa-server" on these 2 systems, but both returns "No search results".  Where can I find the debuginfo package?
http://koji.fedoraproject.org/koji/
https://brewweb.devel.redhat.com/

Comment 10 Stephen Gallagher 2012-01-09 17:22:59 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > (In reply to comment #7)
> > > 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)?
> > > 
> > 
> > I believe that the ipa_uuid plug-in is a part of the ipa-server package.
> 
> Yeah, that's right.  My problem is I searched "ipa-server" on these 2 systems,
> but both returns "No search results".  Where can I find the debuginfo package?
> http://koji.fedoraproject.org/koji/

http://koji.fedoraproject.org/koji/packageinfo?packageID=11554

> https://brewweb.devel.redhat.com/

https://brewweb.devel.redhat.com/packageinfo?packageID=4384



Also, the upstream repository is
git://git.fedorahosted.org/git/freeipa.git

Comment 12 Noriko Hosoi 2012-01-09 17:54:46 UTC
Thanks a lot, Stephen!  I could get ipa-server-debuginfo!
#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?

Comment 13 Noriko Hosoi 2012-01-10 17:49:47 UTC
Let me change the component to freeipa.
Do I need to open a freeipa trac ticket, too?

Comment 14 Rich Megginson 2012-01-10 18:03:21 UTC
marking as screened because it has been cloned upstream(In reply to comment #13)
> Let me change the component to freeipa.
> Do I need to open a freeipa trac ticket, too?

yes

Comment 15 Noriko Hosoi 2012-01-10 18:20:03 UTC
(In reply to comment #14)
> marking as screened because it has been cloned upstream(In reply to comment
> #13)
> > Let me change the component to freeipa.
> > Do I need to open a freeipa trac ticket, too?
> 
> yes

https://fedorahosted.org/freeipa/ticket/2237

Comment 16 Martin Kosek 2012-06-05 07:39:04 UTC
Fixed upstream:
master: https://fedorahosted.org/freeipa/changeset/58732a83bc4ea99ce9894f07232b890ae26682ef


Note You need to log in before you can comment on or make changes to this bug.