Commit a1d98cf0 authored by Rein Tollevik's avatar Rein Tollevik Committed by Quanah Gibson-Mount
Browse files

ITS#6716 Extend test where consumer/provider holds CSNs with differing SIDs.

parent ad57aa2a
......@@ -134,6 +134,8 @@ SS1_DIR=$TESTDIR/ss1
SS2_DIR=$TESTDIR/ss2
SSC_DIR=$TESTDIR/ssc
MNUM=1
mkdir -p $TESTDIR
for dir in $SMC_DIR $SM1_DIR $SM2_DIR $SS1_DIR $SS2_DIR $SSC_DIR; do
......@@ -979,6 +981,29 @@ if test $RC != 0 ; then
exit $RC
fi
# Test for ITS#6716, modify on central master to ensure that the CSN
# order is "sid2 < sid3 < sid1". When site1 master starts it is likely
# to sync with central master before it syncs with site1 master. When
# central master syncs with site1 master they will share the sid1 and
# sid3 CSNs, the additonal sid2 CSN hold by site1 master will be the
# oldest. Central master will not receive the changes made on site1
# master unless it completely ignores the CSNs presented by central
# master.
echo "Using ldapmodify to modify central master..."
$LDAPMODIFY -D "$MANAGERDN" -H $URI1 -w $PASSWD <<EOF >> $TESTOUT 2>&1
dn: dc=example,dc=com
changetype: modify
add: description
description: Modify$MNUM
EOF
RC=$?
if test $RC != 0 ; then
echo "ldapmodify failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
if test -z "$SM1_PID" ; then
echo "Restarting site1 master slapd on TCP/IP port $PORT2..."
cd $SM1_DIR
......@@ -1027,6 +1052,44 @@ if test $RC != 0 ; then
exit $RC
fi
echo "Using ldapsearch to check that site1 master received central master update..."
RC=32
for i in 1 2 3 4 5; do
RESULT=`$LDAPSEARCH -H $URI2 \
-s base -b "$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
echo "Waiting $i seconds for syncrepl to receive changes..."
sleep $i
done
if test $RC != 0 ; then
echo "ldapsearch failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
echo "Using ldapsearch to check that site2 master received central master update..."
RC=32
for i in 1 2 3 4 5; do
RESULT=`$LDAPSEARCH -H $URI3 \
-s base -b "$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
echo "Waiting $i seconds for syncrepl to receive changes..."
sleep $i
done
if test $RC != 0 ; then
echo "ldapsearch failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
# Test done, now some more intialization...
echo "Adding syncrepl consumer on central search..."
......@@ -1519,8 +1582,6 @@ chmod +x $TESTDIR/checkcsn.sh
echo "Checking contextCSN after initial replication..."
. $TESTDIR/checkcsn.sh
MNUM=1
# TEST:
# Test that updates to the first backend on central master, which should
# be replicated to all servers actually is so, and that the contextCSN is
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment