kill notebook its self when server cull idle kernel #5441
Closed
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.
As we know, kernelManager will periodic check if kernel is inactivity. When set
MappingKernelManager.cull_connected
=True
, it will cull idle kernel with connections. Then, whenNotebookApp.shutdown_no_activity_timeout
has exhausted, jupyter will call tornado'sioloop.stop()
to stop the whole server and release resources. Now we can find jupyter process hanging and will not exit automatic.Detail info (debug with tcpdump / wireshark / strace / telnet):
When kernel killed by kernel manager, it reply client a msg with
msg_type
=shutdown_reply
, but client does not handle this msg. Tornado server will wait for websocket connection produced by client, and never exit for a very long time.When we telnet tornado's port 8888, its status is listening but not accept new connection.
Debug jupyter process with strace we can find it block in a event:
poll([{fd=280, events=POLLIN}], 1, -1
.