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