Re: Fedora-directory-devel Digest, Vol 19, Issue 8Re: [Fedora-directory-devel] Please review: distributed numeric assignment plugin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Date: Mon, 22 Jan 2007 13:02:40 -0700
> From: Richard Megginson <rmeggins@xxxxxxxxxx>

> Rob Crittenden wrote:
>> Pete Rowley wrote:
>>> New pre-operation plugin:
>>
>> In dna_get_next_value() what could cause a call to >> slapi_search_internal_get_entry() to fail that you have to try 3 times?
>>
> It's actually the mod operation that can fail, the original value is > deleted and the new value added in one operation with two mods, if the > original value has changed since the search the mod operation will > fail. It's a way to get an atomic increment.
Ok. So I think the errors should be treated a little differently. If the search fails, that's bad - probably a fatal error, or perhaps someone deleted the configuration entry out from under you. I think that if the mod fails, you should check the error code, for something like LDAP_TYPE_OR_VALUE_EXISTS, which means the mod->add failed because attribute already has that value, or whatever specific error is returned from the mod->delete value operation when the value doesn't exist. Other errors are probably fatal.

You should only be able to get LDAP_NO_SUCH_ATTRIBUTE, not LDAP_TYPE_OR_VALUE_EXISTS from this operation. The delete of the old value must fail before it even tries to add the new value. This is the standard test-and-set operation in LDAP. (And of course LDAP_NO_SUCH_OBJECT if someone is really messing with you...)

--
  -- Howard Chu
  Chief Architect, Symas Corp.  http://www.symas.com
  Director, Highland Sun        http://highlandsun.com/hyc
  OpenLDAP Core Team            http://www.openldap.org/project/

--
Fedora-directory-devel mailing list
Fedora-directory-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-directory-devel

[Index of Archives]     [Fedora Directory Announce]     [Fedora Users]     [Older Fedora Users Mail]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Review]     [Fedora Art]     [Fedora Music]     [Fedora Packaging]     [CentOS]     [Fedora SELinux]     [Big List of Linux Books]     [KDE Users]     [Fedora Art]     [Fedora Docs]

  Powered by Linux