WIP: test: qualify controlled Redis replica promotion #4

Draft
KofTwentyTwo wants to merge 4 commits from test/redis-topology-1301 into test/redis-mtls-1317
pull from: test/redis-topology-1301
KofTwentyTwo commented 2026-10-26 12:47:44 +00:00 (Migrated from github.com)

The explicit-endpoint Redis client lacked a real primary/replica promotion test. This adds controlled promotion coverage using two QQQ instances, bounded pools and actual Pub/Sub: reject writes on a read-only replica, stop the old primary, promote the replica, preserve a replicated marker, reconnect both subscriptions and deliver a fresh cross-node event. It does not add discovery or change runtime behavior.

Stacked on PR3 (test/redis-mtls-1317, 54adcfe) to preserve the existing TLS qualification work. No merge is requested by creating this draft.

Validation: focused promotion test passed. Full wrapper verify rerun passed25tests with zero failures/errors/skips, packaging and coverage. The first full run failed an existing heartbeat test's eight-second first-pulse deadline; the isolated test and full rerun then passed without a timeout/runtime change. Added sanitized transport/pool counters to future timeout messages. The original failure remains unexplained and is not claimed fixed.

Local promotion-through-reconnect/event measurements were683ms and1216ms; these are fixture observations, not an SLA. Docs retain remaining endpoint-routing, partition/fencing/healing, session-store semantics, combined TLS/auth/pool pressure, and write-readiness requirements. A stopped primary is not proof of live-old-primary fencing; a replicated marker is not session durability.

Tracks QRun-IO/qqq#1301; does not close it. No publication or deployment.

The explicit-endpoint Redis client lacked a real primary/replica promotion test. This adds controlled promotion coverage using two QQQ instances, bounded pools and actual Pub/Sub: reject writes on a read-only replica, stop the old primary, promote the replica, preserve a replicated marker, reconnect both subscriptions and deliver a fresh cross-node event. It does not add discovery or change runtime behavior. Stacked on PR3 (`test/redis-mtls-1317`, 54adcfe) to preserve the existing TLS qualification work. No merge is requested by creating this draft. Validation: focused promotion test passed. Full wrapper verify rerun passed25tests with zero failures/errors/skips, packaging and coverage. The first full run failed an existing heartbeat test's eight-second first-pulse deadline; the isolated test and full rerun then passed without a timeout/runtime change. Added sanitized transport/pool counters to future timeout messages. The original failure remains unexplained and is not claimed fixed. Local promotion-through-reconnect/event measurements were683ms and1216ms; these are fixture observations, not an SLA. Docs retain remaining endpoint-routing, partition/fencing/healing, session-store semantics, combined TLS/auth/pool pressure, and write-readiness requirements. A stopped primary is not proof of live-old-primary fencing; a replicated marker is not session durability. Tracks QRun-IO/qqq#1301; does not close it. No publication or deployment.
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin test/redis-topology-1301:test/redis-topology-1301
git checkout test/redis-topology-1301
Sign in to join this conversation.