From: Quanah Gibson-Mount Date: Thu, 10 Jun 2010 20:50:47 +0000 (+0000) Subject: ITS#6555 X-Git-Tag: OPENLDAP_REL_ENG_2_4_23~13 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=17f0d5f7b58078cc2f8ff99729d0eea2f21d9ca5;p=openldap ITS#6555 --- diff --git a/CHANGES b/CHANGES index 0c064721c1..9f0700416c 100644 --- a/CHANGES +++ b/CHANGES @@ -10,6 +10,7 @@ OpenLDAP 2.4.23 Engineering Fixed slapo-ppolicy to use Debug (ITS#6566) Fixed slapo-rwm to use Debug (ITS#6566) Fixed slapo-sssvlv to use Debug (ITS#6566) + Fixed slapo-syncprov lost deletes in refresh phase (ITS#6555) Fixed slapo-valsort to use Debug (ITS#6566) Fixed contrib/nssov network.c missing patch (ITS#6562) Build Environment diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 0e8afedaa0..8a3727d375 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -1301,7 +1301,15 @@ syncprov_matchops( Operation *op, opcookie *opc, int saveit ) op2.o_hdr = &oh; op2.o_extra = op->o_extra; op2.o_callback = NULL; - rc = test_filter( &op2, e, ss->s_op->ors_filter ); + ldap_pvt_thread_mutex_lock( &ss->s_mutex ); + if (ss->s_flags & PS_FIX_FILTER) { + /* Skip the AND/GE clause that we stuck on in front. We + would lose deletes/mods that happen during the refresh + phase otherwise (ITS#6555) */ + op2.ors_filter = ss->s_op->ors_filter->f_and->f_next; + } + ldap_pvt_thread_mutex_unlock( &ss->s_mutex ); + rc = test_filter( &op2, e, op2.ors_filter ); } Debug( LDAP_DEBUG_TRACE, "syncprov_matchops: sid %03x fscope %d rc %d\n",