[
https://issues.apache.org/jira/browse/SPARK-61097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated SPARK-61097:
-----------------------------------
Labels: pull-request-available (was: )
> 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
> 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 tracks the remaining listener
> lifecycle behavior.
> Terminal SparkSession.stop() and SparkConnectClient.close() must cancel local
> listener registration and dispatch without waiting for a callback. Otherwise
> a callback waiting on the terminal caller, a lock, an Event, or an RPC can
> deadlock teardown. A registration whose event stream is already established
> but not yet acknowledged must also be cancelled. Ordinary failed listener
> removal must preserve registrations for retry, while generation changes
> prevent old workers from clearing newer listeners.
> Keep RPCs and callback joins outside the state lock. The real worker must
> hold a weak bus reference so dropping the last native session/manager can
> release a quiet subscription. Regression coverage includes callback
> reentrancy, stop/client-close races, failed removal retry, stale generations,
> progress handler lock reentrancy, and real-worker ownership release.
> This follow-up preserves the original issue's connect-rust-4.3.0 release
> tracking. The implementation is undergoing validation before publication.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]