Improve kernel restart logic to reestablish ZMQ connection when a kernel is restarted with new ports #3284
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.
This proposal is based on jupyter/jupyter_client#348.
This proposal defines the logic for creating new ZMQ connection without closing existing websocket connection if a kernel was restarted with new ports (e.g. when the kernel is not responding during initial startup).
The following changes were added to the
on_kernel_restarted
function:kwargs
supportnewports
parameter fromkwargs
used if it is defined. If the parameter is not inkwargs
set it toFalse
newports == True
then existing ZMQ connection to the kernel is closed and new stream with updated ports is opened.newports == False
then client is notified that the kernel was restartedThis proposal solves the issue described in Kernel is not restarted with new ports if the kernel dies after the polling is started jupyter_client#347