- Notifications
You must be signed in to change notification settings - Fork5.5k
Update session_exists() to account for invalid sessions due to culling#4219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
When kernels are culled, the kernel is terminated in the background,unbeknownst to the session management. As a result, invalid sessionscan be produced that appear to exist, yet cannot produce a model fromthe persisted row due to the associated kernel no longer being active.Prior to this change, these sessions, when encountered via a subsequentcall to `get_session()`, would be deleted and a KeyError would be raised.This change updates the existence check to tolerate those kinds of sessions.It removes such sessions (as would happen previously), but rather thanraise a KeyError when attempting to convert the row to a dictionary,it logs a warning and returns None, which then allows `session_exists()`to return False since the session was removed (as was ultimately thecase previously).Calls to `get_session()` remain just as before and have the potentialto raise `KeyError` in such cases. The difference now being that the`KeyError` is accompanied by a message indicating the cause.Fixesjupyter#4209
Member
minrk commentedNov 19, 2018
Thanks! |
This was referencedSep 24, 2019
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
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.
When kernels are culled, the kernel is terminated in the background,
unbeknownst to the session management. As a result, invalid sessions
can be produced that appear to exist, yet cannot produce a model from
the persisted row due to the associated kernel no longer being active.
Prior to this change, these sessions, when encountered via a subsequent
call to
get_session(), would be deleted and a KeyError would be raised.This change updates the existence check to tolerate those kinds of sessions.
It removes such sessions (as would happen previously), but rather than
raise a KeyError when attempting to convert the row to a dictionary,
it logs a warning and returns None, which then allows
session_exists()to return False since the session was removed (as was ultimately the
case previously).
Calls to
get_session()remain just as before and have the potentialto raise
KeyErrorin such cases. The difference now being that theKeyErroris accompanied by a message indicating the cause.Fixes#4209