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/workflows/build.yml |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 06fca12..a6843b1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1136,8 +1136,15 @@
       fail-fast: false
       matrix:
         topology: [rs534, combined]
-        # none: the base run; restart-ds: a directory server restarts during the load
-        disturbance: [none, restart-ds]
+        # none: the base run; restart-ds and kill-ds: a directory server restarts or crashes;
+        # kill-rs and restart-rs: one RS is killed or gracefully restarted per fresh topology
+        # while every DS writes. Only rs534 has replication servers apart from directory servers.
+        disturbance: [none, restart-ds, kill-ds, kill-rs, restart-rs]
+        exclude:
+          - topology: combined
+            disturbance: kill-rs
+          - topology: combined
+            disturbance: restart-rs
     steps:
       - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
         with:
@@ -1145,12 +1152,15 @@
             .github/scripts/replication
       # what a green row does not show: what a disturbance window of the errors log check
       # expects - nothing it expects is logged outside the window there, and a base row has
-      # none - and where restart-ds opens and closes the window
-      - name: Self-tests of the errors log check and of restart-ds
+      # none - and where each disturbance opens and closes its windows
+      - name: Self-tests of the errors log check, disturbances and summary
         shell: bash
         run: |
           .github/scripts/replication/selftest-replication-errors.sh
           .github/scripts/replication/selftest-disturb-restart-ds.sh
+          .github/scripts/replication/selftest-disturb-kill-ds.sh
+          .github/scripts/replication/selftest-disturb-rs.sh
+          .github/scripts/replication/selftest-summary.sh
       - name: Download the image
         uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
         with:
@@ -1164,10 +1174,8 @@
         env:
           TOPOLOGY: ${{ matrix.topology }}
           DISTURBANCE: ${{ matrix.disturbance }}
-          # a disturbed row runs half the load of the base one: what it is after happens around
-          # the disturbance, a third of the way in, and for as long as it runs it holds one of
-          # the runners the whole organization shares
-          DURATION: ${{ matrix.disturbance == 'none' && '1800' || '900' }}
+          # Every row runs 900 s of load; disturbed rows act a third of the way in.
+          DURATION: "900"
           # the replicas fall behind during the load and catch up after it: 900 s at 325 and 65
           # a second converged in 396 s (run 38944365728), 1800 s at 423 and 85 in 2489 s (run
           # 39043600905), the backlog growing faster than the load above the replay capacity; a

--
Gitblit v1.10.0