Skip to content

Commit cd1b1b8

Browse files
authored
wait to cleanup kernels after kernel is finished pending (#748)
1 parent 65b06aa commit cd1b1b8

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

jupyter_server/services/kernels/kernelmanager.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ def cwd_for_path(self, path):
188188
os_path = os.path.dirname(os_path)
189189
return os_path
190190

191+
async def _remove_kernel_when_ready(self, kernel_id, kernel_awaitable):
192+
await super()._remove_kernel_when_ready(kernel_id, kernel_awaitable)
193+
self._kernel_connections.pop(kernel_id, None)
194+
self._kernel_ports.pop(kernel_id, None)
195+
191196
async def start_kernel(self, kernel_id=None, path=None, **kwargs):
192197
"""Start a kernel for a session and return its kernel_id.
193198
@@ -384,19 +389,12 @@ def shutdown_kernel(self, kernel_id, now=False, restart=False):
384389
self._check_kernel_id(kernel_id)
385390
self.stop_watching_activity(kernel_id)
386391
self.stop_buffering(kernel_id)
387-
self._kernel_connections.pop(kernel_id, None)
388392

389393
# Decrease the metric of number of kernels
390394
# running for the relevant kernel type by 1
391395
KERNEL_CURRENTLY_RUNNING_TOTAL.labels(type=self._kernels[kernel_id].kernel_name).dec()
392396

393397
self.pinned_superclass.shutdown_kernel(self, kernel_id, now=now, restart=restart)
394-
# Unlike its async sibling method in AsyncMappingKernelManager, removing the kernel_id
395-
# from the connections dictionary isn't as problematic before the shutdown since the
396-
# method is synchronous. However, we'll keep the relative call orders the same from
397-
# a maintenance perspective.
398-
self._kernel_connections.pop(kernel_id, None)
399-
self._kernel_ports.pop(kernel_id, None)
400398

401399
async def restart_kernel(self, kernel_id, now=False):
402400
"""Restart a kernel by kernel_id"""
@@ -655,6 +653,4 @@ async def shutdown_kernel(self, kernel_id, now=False, restart=False):
655653
ret = await self.pinned_superclass.shutdown_kernel(
656654
self, kernel_id, now=now, restart=restart
657655
)
658-
self._kernel_connections.pop(kernel_id, None)
659-
self._kernel_ports.pop(kernel_id, None)
660656
return ret

0 commit comments

Comments
 (0)