[ 
https://issues.apache.org/jira/browse/SPARK-61215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

DB Tsai updated SPARK-61215:
----------------------------
    Fix Version/s: connect-rust-4.3.0

> Match streaming listener parsing and failure handling in Spark Connect Rust
> ---------------------------------------------------------------------------
>
>                 Key: SPARK-61215
>                 URL: https://issues.apache.org/jira/browse/SPARK-61215
>             Project: Spark
>          Issue Type: Bug
>          Components: Connect
>    Affects Versions: connect-rust-4.3.0
>            Reporter: DB Tsai
>            Priority: Major
>             Fix For: connect-rust-4.3.0
>
>
> Malformed streaming listener events can disappear or leave registrations 
> active, and terminal transport failures can clear listeners without PySpark's 
> handler warning.
> Propagate synchronous start-event decoding errors from start() and toTable(), 
> including with no registered listeners. Decode each asynchronous event once 
> and share it across all registrations; report transport, malformed-event and 
> unknown-event failures once before clearing the affected subscription. 
> Per-listener Exception warnings continue dispatch. Native Rust listeners 
> retain a silent default error hook and can override it. Callbacks and warning 
> hooks hold no listener-bus state lock; concurrent non-last removal waits 
> through event/error notification.
> The independent patch is based on master 
> 925dc876f63f1f779fe176f62575a0aa96cc6886 and preserves its existing lifecycle 
> and generation-scoped removal semantics.
> Executed validation: formatting, release library tests, integration-test 
> compilation with and without wasm-udf, extension build, 2605 Python passes 
> with 8 inherited live-server skips, all 53 required listener cases and five 
> new native unit tests. The current source carries that execution through 
> exactly three comment-only replacements. Fresh strict validation on the 
> current artifact passed 25 distinct Python cases once each (75 passing 
> setup/call/teardown reports) plus three selected native error regression unit 
> cases. Live Spark validation passed 7 native Python cases with no skips and 
> all three native streaming e2e callers with 1 passed / 0 ignored each. The 
> live selection deselected 194 other cases and used staging-harness provenance.
> The 12-group API public-name and Row tuple/name gates and no-stubs audit 
> passed. Rustdoc exited 0 with two inherited types.rs warnings (unresolved 
> from_json link and unclosed int tag). Workspace/all-target Clippy exited 101; 
> all 472 source diagnostics and 721 spans map to unchanged saved-master 
> statements and preserved current statements. Complete source review round 12 
> reported no findings. These results are scoped and do not establish full 
> API/client parity or certify the README's broad parity statement.
> Retain the documented limits: normal EOF silently clears registrations; 
> uncaught asynchronous BaseException or warning-as-error clears registrations, 
> with best-effort terminal warning; local stop()/close() cancels and clears 
> without removal RPCs or joining active callbacks. A listener can retain its 
> session through listener.spark; initial RPC establishment retains transport 
> deadlines/retries. The inherited single-generation dispatch-marker boundary 
> is unchanged.
> This artifact's official configuration and DataFrame-creation modules ran 
> through its raw-transport plugin against a live JVM: 23 passed, 1 skipped and 
> no failures/errors. Its current source, saved extension and reviewed source 
> match.
> Assessed common transport regression evidence is carried from a separate 
> pandas artifact with all 53 shared transport/build/dependency inputs equal. 
> The donor's full ordinary phase covered 87 modules: 2586 passed, 641 skipped, 
> 1 manifest deselection and one expected missing-catalog drift-check failure, 
> with no unexpected failures. Its separate cluster/resource phase covered 4 
> modules: 15 passed and 14 skipped (10 functional passes and 5 guard passes). 
> Only the donor executed the full phases; this streaming artifact 
> independently executed the plugin smoke and native checks described above.
> Saved harness/source/artifact/endpoint evidence is retained, but complete 
> official/dependency whole-tree start/end attestations, per-case skip 
> provenance and raw per-module pytest exit codes were not all recorded. Totals 
> count test executions; no whole-client parity claim is made.
> This pull request and its description were written by OpenAI Codex.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to