Skip to content

Commit

Permalink
Handle client 8 pending kernels (#1014)
Browse files Browse the repository at this point in the history
  • Loading branch information
blink1073 committed Oct 11, 2022
1 parent ece308b commit 32de53b
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 4 deletions.
5 changes: 4 additions & 1 deletion jupyter_server/services/kernels/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,8 +397,11 @@ async def pre_get(self):
kernel = self.kernel_manager.get_kernel(self.kernel_id)

if hasattr(kernel, "ready"):
ready = kernel.ready
if not isinstance(ready, asyncio.Future):
ready = asyncio.wrap_future(ready)
try:
await kernel.ready
await ready
except Exception as e:
kernel.execution_state = "dead"
kernel.reason = str(e)
Expand Down
5 changes: 4 additions & 1 deletion jupyter_server/services/kernels/kernelmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,8 +246,11 @@ async def start_kernel(self, kernel_id=None, path=None, **kwargs):
async def _finish_kernel_start(self, kernel_id):
km = self.get_kernel(kernel_id)
if hasattr(km, "ready"):
ready = km.ready
if not isinstance(ready, asyncio.Future):
ready = asyncio.wrap_future(ready)
try:
await km.ready
await ready
except Exception:
self.log.exception("Error waiting for kernel manager ready")
return
Expand Down
6 changes: 5 additions & 1 deletion tests/services/kernels/test_api.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import asyncio
import json
import os
import time
Expand All @@ -22,7 +23,10 @@ async def _(kernel_id):
if getattr(km, "use_pending_kernels", False):
kernel = km.get_kernel(kernel_id)
if getattr(kernel, "ready", None):
await kernel.ready
ready = kernel.ready
if not isinstance(ready, asyncio.Future):
ready = asyncio.wrap_future(ready)
await ready

return _

Expand Down
6 changes: 5 additions & 1 deletion tests/services/sessions/test_api.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import asyncio
import json
import os
import shutil
Expand Down Expand Up @@ -163,7 +164,10 @@ async def _(session_id):
kernel_id = session["kernel"]["id"]
kernel = mkm.get_kernel(kernel_id)
if getattr(kernel, "ready", None):
await kernel.ready
ready = kernel.ready
if not isinstance(ready, asyncio.Future):
ready = asyncio.wrap_future(ready)
await ready

return _

Expand Down

0 comments on commit 32de53b

Please sign in to comment.