From f251af3f68a38e2f83154ed80be92667326d286c Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Sat, 07 Nov 2026 11:48:53 +0000
Subject: [PATCH] [#1208] Test directory and replication server crashes and restarts (#1244)
---
.github/scripts/replication/disturb-restart-ds.sh | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/.github/scripts/replication/disturb-restart-ds.sh b/.github/scripts/replication/disturb-restart-ds.sh
index 6cb18b5..a589038 100644
--- a/.github/scripts/replication/disturb-restart-ds.sh
+++ b/.github/scripts/replication/disturb-restart-ds.sh
@@ -22,6 +22,7 @@
# runs restarts with it.
DISTURBED=$(echo $DS_NODES | cut -d' ' -f2)
+DISTURB_STEPS=1
# docker restart sends SIGTERM and kills the server once its timeout is over: 10 s by default,
# less than a server under load may need to stop, and a killed server is another disturbance.
@@ -30,11 +31,17 @@
# its start fails on a loaded runner are expected there (replication_errors). The window closes
# 10 s after the server serves again: a handshake its start began can still fail then, and a
# peer logs 145 only once its wait for the domain lock, of up to 8 s, is over
-# (ServerHandler.lockDomainWithTimeout). A handshake that fails later is an error again
+# (ServerHandler.lockDomainWithTimeout). A handshake that fails later is an error again.
+# A combined server also restarts its RS, whose hostname can temporarily stop resolving.
+# Expect ERROR 51 only for that exact hostname inside this window; a DS-only restart receives
+# no DNS allowance, and disconnect, recovery and monitor errors remain failures.
disturb() {
local from served
echo " [$SECONDS s] restarting $DISTURBED"
- window_open
+ case " $RS_NODES " in
+ *" $DISTURBED "*) window_open "dns:$DISTURBED" ;;
+ *) window_open ;;
+ esac
from=$(date +%s)
docker restart -t 120 $DISTURBED >/dev/null
wait_until $DISTURB_TIMEOUT "$DISTURBED serves again" started_since $DISTURBED $from
--
Gitblit v1.10.0