015b31e Bug 741744 - MOD operations with chained delete/add get back error 53 on backend config

Authored and Committed by rmeggins 12 years ago
    Bug 741744 - MOD operations with chained delete/add get back error 53 on backend config
    
    https://bugzilla.redhat.com/show_bug.cgi?id=741744
    Resolves: bug 741744
    Bug Description: MOD operations with chained delete/add get back error 53 on backend config
    Reviewed by: nkinder (Thanks!)
    Branch: master
    Fix Description: Allow ldbm config mods to use MOD_ADD and MOD_DELETE.  The
    purpose of this fix is to allow the specific sequence of
    
    changetype: modify
    delete: attrname
    -
    add: attrname
    attrname: somevalue
    -
    
    Unfortunately, the way the DSE code works presents us with some quirks in
    the behavior:
    - There is an internal flag which keeps track of whether the value is the
    default value or not
    - Deleting an attribute resets the value to the default, but it will also
    delete the attribute from the internal DSE representation, which means
    if you attempt to delete an attribute which has already been deleted,
    the server will return No such attribute (16) because the attribute has
    already been deleted from the internal DSE - however, if you do an ldap
    search for the value, you will see it in the entry with the default value.
    - If the attribute gets in a weird state where it can't be deleted and it
    can't be added, a mod_replace will get it back to normal
    Platforms tested: RHEL6 x86_64
    Flag Day: no
    Doc impact: no