From ba4366eae098c0e4950a78b1da8d79ffe8b34fee Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Fri, 3 Feb 2012 11:16:10 -0800 Subject: [PATCH] ITS#7052 ignore Adds with too old entryCSN --- servers/slapd/syncrepl.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 48b315ebb8..39382881a1 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -2820,6 +2820,23 @@ syncrepl_entry( */ op->o_csn = a->a_vals[0]; freecsn = 0; + /* There was no cookie CSN attached to this op, + * make sure it's new enough + */ + if ( !syncCSN ) { + int i, sid = slap_parse_csn_sid( &a->a_vals[0] ); + for ( i = 0; isi_cookieState->cs_num; i++ ) { + if ( sid < si->si_cookieState->cs_sids[i] ) + break; + if ( sid == si->si_cookieState->cs_sids[i] ) { + if ( ber_bvcmp( &a->a_vals[0], &si->si_cookieState->cs_vals[i] ) <= 0 ) { + Debug( LDAP_DEBUG_SYNC, "do_syncrep2: %s entryCSN too old, ignoring %s (%s)\n", + si->si_ridtxt, a->a_vals[0].bv_val, entry->e_name.bv_val ); + goto done; + } + } + } + } } } retry_add:; -- 2.39.5