[
https://issues.apache.org/jira/browse/SPARK-59196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
L. C. Hsieh resolved SPARK-59196.
---------------------------------
Fix Version/s: connect-gateway-0.1.0
Resolution: Fixed
Issue resolved by pull request 19
[https://github.com/apache/spark-connect-gateway/pull/19]
> Run the graceful-drain and multi-replica HA smoke examples in CI
> ----------------------------------------------------------------
>
> Key: SPARK-59196
> URL: https://issues.apache.org/jira/browse/SPARK-59196
> Project: Spark
> Issue Type: Sub-task
> Components: Connect
> Affects Versions: connect-gateway-0.1.0
> Reporter: L. C. Hsieh
> Assignee: L. C. Hsieh
> Priority: Major
> Labels: pull-request-available
> Fix For: connect-gateway-0.1.0
>
>
> Two binaries under crates/proxy/examples/ assert end-to-end invariants but
> were
> only ever compiled by `cargo clippy --all-targets`, never executed, so the
> behaviour they cover had no CI verification at all:
> - drain_smoke — exercises the two-step drain the gateway performs on SIGTERM
> (in-process, triggered through the same channel shutdown_signal() uses).
> Asserts that /readyz flips to not-ready when the drain starts, that
> in-flight
> streams keep receiving messages through the drain, and that the gateway
> shuts
> down cleanly afterwards. No external dependencies.
> - ha_smoke — spawns two real SparkConnectProxy gateways sharing one Redis
> affinity store and one static pool of two fake backends, then verifies
> three
> failover preserves an existing session binding, and that the op-id reverse
> index resolves across replicas. Needs a Redis (REDIS_URL, default
> redis://127.0.0.1:6399).
> Both signal failure by panicking on an assert, so a plain `cargo run` is a
> sufficient CI check. This adds them as two steps in the `integration` job,
> plus a
> Redis service container on :6399 for ha_smoke. The Redis *tests* in that job
> are
> unaffected — they start their own container through testcontainers and do not
> use
> the service.
>
> Verified locally with a Redis on :6399, running all four steps of the job in
> sequence: the testcontainers tests still pass (4 + 5), tracing passes, and
> both
> smoke examples exit 0 ("all drain invariants passed" / "all HA invariants
> passed").
>
> This covers graceful drain and multi-replica HA, both of which are production
> behaviours that previously had no automated coverage. The kind/Helm end-to-end
> walkthroughs under deploy/examples/ remain out of scope; they need a much
> heavier
> harness and are better suited to a separate scheduled workflow.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]