Merge branch 'corrections' into 'master'

ITS#9888/ITS#10250/ITS#10229/ITS#10266 Corrections to 2.7 ITSs

See merge request openldap/openldap!857
This commit is contained in:
Ondřej Kuzník 2026-04-10 14:04:40 +00:00
commit 7498ffecd8
5 changed files with 37 additions and 63 deletions

View file

@ -128,6 +128,18 @@ timeout specified was exceeded.
and
.B ldap_msgid()
return \-1 on error.
.SH BUGS
When there are multiple messages in
.BR **result
including a result message (common with searches), the return value of
.B ldap_result
will vary depending on various factors. Some implementations have started
depending on this behaviour and as such it is unlikely to be be fixed in the
2.x release series. To get the actual message type you're interested, use
.B ldap_first_message
or
.B ldap_parse_result
as needed.
.SH SEE ALSO
.BR ldap (3),
.BR ldap_first_message (3),

View file

@ -148,7 +148,6 @@ handle_unsolicited( LloadConnection *c, BerElement *ber )
assert( c->c_state != LLOAD_C_INVALID );
if ( c->c_state == LLOAD_C_DYING ) {
CONNECTION_UNLOCK(c);
goto out;
}
c->c_state = LLOAD_C_CLOSING;
@ -208,12 +207,6 @@ handle_unsolicited( LloadConnection *c, BerElement *ber )
RELEASE_REF( client, c_refcnt, client->c_destroy );
}
if ( c->c_state == LLOAD_C_CLOSING && c->c_ops ) {
CONNECTION_UNLOCK(c);
} else {
CONNECTION_DESTROY(c);
}
out:
ber_free( ber, 1 );
if ( c->c_state == LLOAD_C_CLOSING && c->c_ops ) {

View file

@ -5992,8 +5992,15 @@ void syncrepl_diff_entry( Operation *op, Attribute *old, Attribute *new,
/* These are all missing from provider */
while ( old ) {
Modifications *mod = ch_malloc( sizeof( Modifications ) );
Modifications *mod;
/* Skip contextCSN we screen ourselves */
if ( is_ctx && old->a_desc == slap_schema.si_ad_contextCSN ) {
old = old->a_next;
continue;
}
mod = ch_malloc( sizeof( Modifications ) );
mod->sml_op = LDAP_MOD_DELETE;
mod->sml_flags = 0;
mod->sml_desc = old->a_desc;

View file

@ -21,7 +21,7 @@ if test $SYNCPROV = syncprovno; then
exit 0
fi
ITS=9288
ITS=9888
CFPRO=$TESTDIR/cfpro.d
CFCON=$TESTDIR/cfcon.d
@ -226,6 +226,13 @@ add: olcUpdateRef
olcUpdateRef: $URI1
EOF
RC=$?
if test $RC != 0 ; then
echo "ldapmodify failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
sleep 1
echo "Using ldapsearch to check that syncrepl received config changes..."
@ -482,7 +489,7 @@ timestamp=`date --utc +"%Y%m%d%H%M%S.%6NZ"`
newcsn="${timestamp}#000000#001#000000"
sed -i -e "s/entryCSN:.*/entryCSN: $newcsn/" testrun/config-consumer.ldif
sed -i -e 's/contextCSN: .*#001#.*/contextCSN: 20230724180831.311873Z#000000#001#000000/' testrun/config-consumer.ldif
sed -i -e 's/contextCSN: .*#001#.*/contextCSN: $newcsn/' testrun/config-consumer.ldif
mv testrun/db.1.a testrun/db.1.a.orig
mkdir -p testrun/db.1.a

View file

@ -712,53 +712,9 @@ echo "$CHECK < Comparing retrieved entries from provider and consumer..."
$CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
if test $? != 0 ; then
# FIXME: keep the original workaround in place, in case we needed again
if test 1 = 1 ; then
echo "test failed - provider and consumer databases differ"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit 1
fi
echo " test failed - provider and consumer databases differ (ignored by now)"
echo " Stopping proxy to see if it auto-recovers..."
kill -HUP $PROXYPID
wait $PROXYPID
echo " ${CHECK}.1 > Restarting proxy..."
echo "======================= RESTART =======================" >> $LOG3
$SLAPD -f $CONF3 -h $URI3 -d $LVL >> $LOG3 2>&1 &
PROXYPID=$!
if test $WAIT != 0 ; then
echo PROXYPID $PROXYPID
read foo
fi
KILLPIDS="$PROVIDERPID $CONSUMERPID $PROXYPID"
echo " Waiting $SLEEP2 seconds for syncrepl to receive changes..."
sleep $SLEEP2
#echo "Using ldapsearch to read all the entries from the consumer..."
$LDAPSEARCH -S "" -b "$BASEDN" -H $URI2 \
'(objectClass=*)' > "${CONSUMEROUT}.5.1" 2>&1
RC=$?
if test $RC != 0 ; then
echo " ldapsearch failed at consumer ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
#echo "Filtering consumer results..."
$LDIFFILTER < "${CONSUMEROUT}.5.1" > $CONSUMERFLT
echo " ${CHECK}.1 < Comparing retrieved entries from provider and consumer..."
$CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
if test $? != 0 ; then
echo " test failed - provider and consumer databases differ"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit 1
fi
echo "test failed - provider and consumer databases differ"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit 1
fi
#
@ -844,18 +800,17 @@ if test $RC != 0 ; then
fi
#echo "Filtering provider results..."
$LDIFFILTER < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
$LDIFFILTER -s a < "${PROVIDEROUT}.$CHECK" > $PROVIDERFLT
#echo "Filtering consumer results..."
$LDIFFILTER < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
$LDIFFILTER -s a < "${CONSUMEROUT}.$CHECK" > $CONSUMERFLT
echo "$CHECK < Comparing retrieved entries from provider and consumer..."
$CMP $PROVIDERFLT $CONSUMERFLT > $CMPOUT
if test $? != 0 ; then
echo "test failed - provider and consumer databases differ (ignored by now)"
#echo "test failed - provider and consumer databases differ"
#test $KILLSERVERS != no && kill -HUP $KILLPIDS
#exit 1
echo "test failed - provider and consumer databases differ"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit 1
fi
test $KILLSERVERS != no && kill -HUP $KILLPIDS