From 9e156bf91467da256ade7842b03b0aa6f9b7405c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Fri, 25 Aug 2017 16:25:23 +0100 Subject: [PATCH] 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. --- servers/slapd/overlays/syncprov.c | 1 + 1 file changed, 1 insertion(+) 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 && -- 2.39.5