mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-27 01:59:38 -05:00
During the refresh phase the sync filter needs to be adjusted (skipping
the "(entrycsn>=cookie)" part that was inserted) when checking whether a change needs to be replicated, otherwise we lose DELETES that happen during the refresh phase (ITS#6555).
This commit is contained in:
parent
c45fca65fc
commit
a06696a1ef
1 changed files with 9 additions and 1 deletions
|
|
@ -1302,7 +1302,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",
|
||||
|
|
|
|||
Loading…
Reference in a new issue