From c4d91fab9e005179803a3ab978e8f2896a5a5b16 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Wed, 28 Oct 2026 16:25:28 +0000
Subject: [PATCH] [#1208] Restart a directory server during the load of the replication convergence run, in rows of its own (#1233)
---
.github/scripts/replication/run.sh | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/.github/scripts/replication/run.sh b/.github/scripts/replication/run.sh
index 306fed0..2f3d6d4 100755
--- a/.github/scripts/replication/run.sh
+++ b/.github/scripts/replication/run.sh
@@ -33,6 +33,13 @@
. "$HERE/load.sh"
. "$HERE/assert-converged.sh"
. "$HERE/collect.sh"
+if [ "$DISTURBANCE" != none ]; then
+ [ -f "$HERE/disturb-$DISTURBANCE.sh" ] \
+ || { echo "unknown DISTURBANCE $DISTURBANCE: none, or the <name> of a disturb-<name>.sh in $HERE" >&2; exit 2; }
+ [ "$DISTURB_AT" -gt 0 ] && [ "$DISTURB_AT" -lt "$DURATION" ] \
+ || { echo "DISTURB_AT=$DISTURB_AT is not within the load of $DURATION s" >&2; exit 2; }
+ . "$HERE/disturb-$DISTURBANCE.sh"
+fi
# the files of an earlier run would mix into this one's: the samples are appended to, and the
# summary of a run that failed early would show what a run that got further left
@@ -67,7 +74,7 @@
mark_logs
record_server_ids
-phase "load ($DURATION s)"
+phase "load ($DURATION s${DISTURBED:+, $DISTURBANCE of $DISTURBED at $DISTURB_AT s})"
# the changes of the load: assert_changelogs looks for gaps among the changes made in between
LOAD_START_MS=$(($(date +%s) * 1000))
sampler_start
@@ -75,7 +82,11 @@
sampler_stop
phase "converge"
-wait_converged
+load_end=$SECONDS
+# a disturbed server is left as topology_up leaves every server, and the wait for convergence
+# still counts from the end of the load
+[ "$DISTURBANCE" = none ] || settle
+wait_converged $load_end
echo "converged in $CONVERGED_IN s"
LOAD_END_MS=$(($(date +%s) * 1000))
--
Gitblit v1.10.0