Skip to content

GR tests: match router image to server version, surface docker problem - #13

Open
kaushikpuneet07 wants to merge 2 commits into
mainfrom
gr-97
Open

kaushikpuneet07 wants to merge 2 commits into
mainfrom
gr-97

Conversation

@kaushikpuneet07

@kaushikpuneet07 kaushikpuneet07 commented Sep 25, 2026 •

Copy link
Copy Markdown
  • Default ROUTER_IMAGE is now derived from SERVER_IMAGE (/percona-server:X.Y.Z -> /percona-mysql-router:X.Y.Z), falling back to percona/percona-mysql-router:8.4. A fixed 8.4 router cannot bootstrap against a 9.7 cluster and crash-looped, failing the [router] tests.
  • mysqlsh_available() only returns False for a missing binary (exit 127); other docker failures (e.g. socket permission denied) now raise with the real error instead of skipping as "mysqlsh not available".
  • README: document the derived router default.

kaushikpuneet07 and others added 2 commits September 25, 2026 12:28
…errors

- Default ROUTER_IMAGE is now derived from SERVER_IMAGE
  (<repo>/percona-server:X.Y.Z -> <repo>/percona-mysql-router:X.Y.Z), falling
  back to percona/percona-mysql-router:8.4. A fixed 8.4 router cannot bootstrap
  against a 9.7 cluster and crash-looped, failing the [router] tests.
- mysqlsh_available() only returns False for a missing binary (exit 127);
  other docker failures (e.g. socket permission denied) now raise with the
  real error instead of skipping as "mysqlsh not available".
- README: document the derived router default.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… failure

- Default XTRABACKUP_IMAGE is now derived from SERVER_IMAGE
  (<repo>/percona-server:X.Y.Z -> <repo>/percona-xtrabackup:X.Y). XtraBackup
  refuses servers of another X.Y ("Unsupported server version: '9.7.2-2'"), so
  the fixed 8.4 default failed test_backup_restore on 9.7.
- Move the router/xtrabackup image derivation into generic_helper.companion_image().
- On a failed test, attach each node's container state and docker logs tail
  to the pytest report; teardown otherwise destroys all server-side evidence.
- README: document the derived defaults.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@kaushikpuneet07 kaushikpuneet07 changed the title GR tests: match router image to server version, surface docker probe … GR tests: match router image to server version, surface docker problem Sep 25, 2026
@kaushikpuneet07

Copy link
Copy Markdown
Author

puneet-work@puneet-work:~/server-qa/test_scripts/ps/group-replication$ SERVER_IMAGE=perconalab/percona-server:9.7.2 pytest -v 2>&1 | tee run-972.log
============================= test session starts ==============================
platform linux -- Python 3.10.12, pytest-9.1.1, pluggy-1.6.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /home/puneet-work/server-qa/test_scripts/ps/group-replication
configfile: pytest.ini
testpaths: .
plugins: testinfra-10.2.2, testinfra-6.0.0
collecting ... collected 25 items

test_backup_restore.py::test_full_and_incremental_backup_restore[haproxy] PASSED [ 4%]
test_basic.py::test_replicates_table_across_nodes[router] PASSED [ 8%]
test_basic.py::test_replicates_table_across_nodes[haproxy] PASSED [ 12%]
test_equal_partition.py::test_equal_partition[router] PASSED [ 16%]
test_equal_partition.py::test_equal_partition[haproxy] PASSED [ 20%]
test_majority_loss.py::test_majority_loss[router] PASSED [ 24%]
test_majority_loss.py::test_majority_loss[haproxy] PASSED [ 28%]
test_majority_loss_kill.py::test_majority_loss_by_kill[secondaries-router] PASSED [ 32%]
test_majority_loss_kill.py::test_majority_loss_by_kill[primary_and_secondary-router] PASSED [ 36%]
test_majority_loss_kill.py::test_majority_loss_by_kill[secondaries-haproxy] PASSED [ 40%]
test_majority_loss_kill.py::test_majority_loss_by_kill[primary_and_secondary-haproxy] PASSED [ 44%]
test_primary_isolation_failover.py::test_primary_isolation_failover[router] PASSED [ 48%]
test_primary_isolation_failover.py::test_primary_isolation_failover[haproxy] PASSED [ 52%]
test_primary_shutdown_failover.py::test_primary_shutdown_failover_and_recovery[stop-router] PASSED [ 56%]
test_primary_shutdown_failover.py::test_primary_shutdown_failover_and_recovery[kill-router] PASSED [ 60%]
test_primary_shutdown_failover.py::test_primary_shutdown_failover_and_recovery[stop-haproxy] PASSED [ 64%]
test_primary_shutdown_failover.py::test_primary_shutdown_failover_and_recovery[kill-haproxy] PASSED [ 68%]
test_rejoin_after_scale_up.py::test_rejoin_after_scale_up[router] PASSED [ 72%]
test_rejoin_after_scale_up.py::test_rejoin_after_scale_up[haproxy] PASSED [ 76%]
test_scaling.py::test_scale_up_and_down[router] PASSED [ 80%]
test_scaling.py::test_scale_up_and_down[haproxy] PASSED [ 84%]
test_secondary_isolation_ist.py::test_secondary_isolation_ist_recovery[router] PASSED [ 88%]
test_secondary_isolation_ist.py::test_secondary_isolation_ist_recovery[haproxy] PASSED [ 92%]
test_secondary_isolation_sst.py::test_secondary_isolation_sst_recovery[router] PASSED [ 96%]
test_secondary_isolation_sst.py::test_secondary_isolation_sst_recovery[haproxy] PASSED [100%]

======================= 25 passed in 3846.83s (1:04:06) ========================

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants