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 potential to raise `KeyError` in such cases. The difference now being that the `KeyError` is accompanied by a message indicating the cause. Fixes #4209
parent
d60445e926
commit
0e63ebb1db
Loading…
Reference in new issue