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/workflows/build.yml | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8de66c6..06fca12 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1124,11 +1124,11 @@
docker-convergence:
# #1090: writes to every directory server of a replication topology at once, then checks
- # that the replicas hold the same data; next to docker-test, on the image of build-docker
+ # that the replicas hold the same data; next to docker-test, on the image of build-docker.
+ # Each row but the base one disturbs the topology during the load in one way (#1208)
needs: build-docker
# a red row turns the Build run red, and deploy.yml then skips the snapshot deploy and the
- # publishing of the docs of a push to master: rs534 fails until #1206 is fixed and can fail
- # until #1215 is, combined can fail until #1195 is
+ # publishing of the docs of a push to master
runs-on: 'ubuntu-latest'
permissions:
contents: read
@@ -1136,11 +1136,21 @@
fail-fast: false
matrix:
topology: [rs534, combined]
+ # none: the base run; restart-ds: a directory server restarts during the load
+ disturbance: [none, restart-ds]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
sparse-checkout: |
.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
+ shell: bash
+ run: |
+ .github/scripts/replication/selftest-replication-errors.sh
+ .github/scripts/replication/selftest-disturb-restart-ds.sh
- name: Download the image
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
@@ -1149,11 +1159,15 @@
- name: Load the image
shell: bash
run: docker load -i "$RUNNER_TEMP/image/image.tar"
- - name: Convergence run (${{ matrix.topology }})
+ - name: Convergence run (${{ matrix.topology }}, ${{ matrix.disturbance }})
shell: bash
env:
TOPOLOGY: ${{ matrix.topology }}
- DURATION: "1800"
+ 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' }}
# 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
@@ -1166,7 +1180,8 @@
if: always()
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
- name: convergence-${{ matrix.topology }}
+ # the base rows keep the names they had before the disturbed ones came
+ name: convergence-${{ matrix.topology }}${{ matrix.disturbance != 'none' && format('-{0}', matrix.disturbance) || '' }}
path: ${{ runner.temp }}/replication-out
if-no-files-found: warn
retention-days: 5
--
Gitblit v1.10.0