From: Ondřej Kuzník Date: Fri, 25 Aug 2017 15:25:23 +0000 (+0100) Subject: ITS#8444 Do not clear the pending operation when checkpointing X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=9e156bf91467da256ade7842b03b0aa6f9b7405c;p=openldap ITS#8444 Do not clear the pending operation when checkpointing When a checkpoint happens, if we remove the CSN from the pending list, accesslog won't pass it onto the accesslog DB. But in a delta-mmr scenario, an accesslog entry without a CSN faces a race where it might be applied twice - that usually fails and causes a full refresh, other times it can cause a silent desync - both are undesirable. --- diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index e2f79f03a1..2f0f5e8fee 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -1492,6 +1492,7 @@ syncprov_checkpoint( Operation *op, slap_overinst *on ) opm.o_bd->bd_info = on->on_info->oi_orig; opm.o_managedsait = SLAP_CONTROL_NONCRITICAL; opm.o_no_schema_check = 1; + opm.o_opid = -1; opm.o_bd->be_modify( &opm, &rsm ); if ( rsm.sr_err == LDAP_NO_SUCH_OBJECT &&