[ 
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]

Reply via email to