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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.