[SPARK-47986][CONNECT][PYTHON] Unable to create a new session when the default session is closed by the server #46435
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
This is a follow-up to a previous improvement - 7d04d0f.
In some cases, particularly when running older versions of the Spark
cluster (3.5), the error actually manifests as a mismatch in the
observed server-side session id between calls.
With this fix, we also capture this case and ensure that this case is
also handled.
Further, we improve the implementation of
getActiveSession()
and introduce a similar
getDefaultSession()
that accounts forstopped sessions.
This ensures that all places where default or active session is used,
stopped sessions are considered neither default nor active.
Why are the changes needed?
Explained above.
Does this PR introduce any user-facing change?
Previously, when client encounters a session mismatch, a user
cannot create a new session. With this change, a user can
call
getOrCreate()
on the SparkSession builder and create anew session.
How was this patch tested?
Attached unit tests.
Was this patch authored or co-authored using generative AI tooling?
No.