This is an automated email from the ASF dual-hosted git repository.

krishvishal pushed a commit to branch vsr-dvc-headers
in repository https://gitbox.apache.org/repos/asf/iggy.git


The following commit(s) were added to refs/heads/vsr-dvc-headers by this push:
     new e32202d8b ci(go): run the Go cluster e2e against both replicas
e32202d8b is described below

commit e32202d8b83b13d668fd6c8ef54528f8e018adde
Author: Krishna Vishal <[email protected]>
AuthorDate: Sat Aug 8 12:37:44 2026 +0530

    ci(go): run the Go cluster e2e against both replicas
    
    The step started one replica against the two-node roster in
    core/server-ng/config.toml and called it a single-node cluster. A
    two-replica cluster commits on two acks, so the lone node journaled every
    op and committed none, and every client request blocked until it timed
    out. It passed before only because the replication quorum for two
    replicas was f+1=1, which is not durable.
---
 .github/actions/go/pre-merge/action.yml | 35 ++++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/.github/actions/go/pre-merge/action.yml 
b/.github/actions/go/pre-merge/action.yml
index cfb5ba7e6..d003e6274 100644
--- a/.github/actions/go/pre-merge/action.yml
+++ b/.github/actions/go/pre-merge/action.yml
@@ -215,7 +215,11 @@ runs:
         pid-file: ${{ steps.iggy-tls.outputs.pid_file }}
         log-file: ${{ steps.iggy-tls.outputs.log_file }}
 
-    - name: Start Iggy VSR cluster node
+    # Both replicas of the roster in `core/server-ng/config.toml`, not just 
this
+    # one: a two-replica cluster commits on 2 acks (`quorum_replication`), so a
+    # lone node journals every op and commits none, and each client request
+    # blocks until it times out.
+    - name: Start Iggy VSR cluster node 0
       id: iggy-cluster-0
       if: inputs.task == 'e2e'
       uses: ./.github/actions/utils/server-start
@@ -231,17 +235,41 @@ runs:
         IGGY_CLUSTER_ENABLED: "true"
         IGGY_SYSTEM_PATH: ${{ runner.temp }}/iggy-go-cluster-0-data
 
+    - name: Start Iggy VSR cluster node 1
+      id: iggy-cluster-1
+      if: inputs.task == 'e2e'
+      uses: ./.github/actions/utils/server-start
+      with:
+        cargo-bin: iggy-server-ng
+        cargo-features: vsr
+        replica-id: "1"
+        tcp_address: 127.0.0.1:8091
+        http_address: 127.0.0.1:3001
+        pid-file: ${{ runner.temp }}/iggy-go-cluster-1.pid
+        log-file: ${{ runner.temp }}/iggy-go-cluster-1.log
+        wait-timeout-seconds: "90"
+      env:
+        IGGY_CLUSTER_ENABLED: "true"
+        IGGY_SYSTEM_PATH: ${{ runner.temp }}/iggy-go-cluster-1-data
+
     - name: Run cluster e2e tests
       shell: bash
       if: inputs.task == 'e2e'
       env:
         IGGY_TCP_ADDRESS: 127.0.0.1:8090
       run: |
-        echo "🗳️ Running Go e2e tests against a single-node cluster..."
+        echo "🗳️ Running Go e2e tests against a two-node cluster..."
         cd foreign/go
         go test -v -race ./tests/...
 
-    - name: Stop Iggy VSR cluster node
+    - name: Stop Iggy VSR cluster node 1
+      if: always() && inputs.task == 'e2e'
+      uses: ./.github/actions/utils/server-stop
+      with:
+        pid-file: ${{ steps.iggy-cluster-1.outputs.pid_file }}
+        log-file: ${{ steps.iggy-cluster-1.outputs.log_file }}
+
+    - name: Stop Iggy VSR cluster node 0
       if: always() && inputs.task == 'e2e'
       uses: ./.github/actions/utils/server-stop
       with:
@@ -257,4 +285,5 @@ runs:
           ${{ steps.iggy.outputs.log_file }}
           ${{ steps.iggy-tls.outputs.log_file }}
           ${{ steps.iggy-cluster-0.outputs.log_file }}
+          ${{ steps.iggy-cluster-1.outputs.log_file }}
         if-no-files-found: ignore

Reply via email to