1. Bug description: The initial value of lastusn is -1, but since
the entryusn has the unsigned long long integer type, the server
returns 18446744073709551615 == 0XFFFFFFFFFFFFFFFF.
Fix description: The initial value "-1" is returned as it is.
2. Bug description: Entryusn syntax is defined as an integer in
the schema. If negative values are accidentally stored in the
entryusn value in the database, it was casted to the unsigned
integer in the entryusn initialization code (usn_get_last_usn).
Fix description: When an entryusn value is retrieved from the
database, it's checked as a singed integer once and if it is
negative, it's replaced with the initial value "-1".
git patch file (master) - phase1: ported from 1.2.11
The difference from 1.2.11:
2) The urp calling timing was moved from SLAPI_PLUGIN_BE_TXN_PRE_* to
SLAPI_PLUGIN_BE_PRE_*. (Note: SLAPI_PLUGIN_BE_PRE_* is also in the
backend transaction.) This is necessary since urp needs to be done
prior to parent checking.
[ldbm_add.c] Moved SLAPI_PLUGIN_BE_PRE_ADD_FN inside of the transaction.
Other operations are already calling SLAPI_PLUGIN_BE_PRE function at the
git patch file (master) - phase2
1) Make sure add/modify/modrdn/delete plug-in callbacks return
SLAPI_PLUGIN_SUCCESS (==0) on SUCCESS and SLAPI_PLUGIN_FAILURE
(==-1) on FAILURE. And set error code to SLAPI_RESULT_CODE in
pblock, if any.
2) replication: eliminated multimaster_betxnpreop_* which were
used for calling urp. Urp needs to be processed at bepreop