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

Hyukjin Kwon reassigned SPARK-61097:
------------------------------------

    Assignee: DB Tsai

> Cancel pending streaming listener registration and avoid callback deadlocks 
> during shutdown
> -------------------------------------------------------------------------------------------
>
>                 Key: SPARK-61097
>                 URL: https://issues.apache.org/jira/browse/SPARK-61097
>             Project: Spark
>          Issue Type: Bug
>          Components: Connect
>    Affects Versions: connect-rust-4.3.0
>            Reporter: DB Tsai
>            Assignee: DB Tsai
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: connect-rust-4.3.0
>
>
> The initial shared session manager and synchronous query-start delivery 
> landed in SPARK-61162 (PR #353). This follow-up proposes the remaining 
> listener lifecycle fixes in 
> https://github.com/apache/spark-connect-rust/pull/384.
> Terminal SparkSession.stop() cancels local listener registration and dispatch 
> without joining callbacks, releases the server session, and closes the client 
> even when release fails. SparkConnectClient.close() cancels local 
> registration and dispatch without releasing the session. Neither terminal 
> path performs a listener-removal RPC. The current event's listener snapshot 
> may finish after terminal return; later events are not dispatched. A 
> registration whose RPC event stream is established but not yet acknowledged 
> can be cancelled; initial stream establishment retains the transport deadline 
> and retry policy.
> Lifecycle RPCs and worker joins run outside the state lock. Ordinary failed 
> listener removal or close preserves registrations and worker state for retry, 
> and generations prevent an old worker from clearing newer listeners. Real 
> workers hold weak bus references so releasing the last native session or 
> manager can release a quiet subscription. Regression coverage exercises 
> callback reentrancy, terminal races, removal retry, stale generations, 
> progress-handler lock reentrancy, cancellation wiring and real-worker 
> ownership release.
> The fix retains upstream synchronous-start, duplicate-registration and 
> foreign-session removal semantics. Listener-held Python session cycles and 
> event-stream error warning parity remain limitations. This follow-up 
> preserves connect-rust-4.3.0 release tracking.



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