Skip to content

Commit 2f529bf

Browse files
Backport PR #1014 on branch 1.x (Handle client 8 pending kernels) (#1026)
Co-authored-by: Steven Silvester <[email protected]>
1 parent 7d8c2d3 commit 2f529bf

File tree

6 files changed

+20
-7
lines changed

6 files changed

+20
-7
lines changed

.github/workflows/python-tests.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,7 @@ jobs:
118118
pip check
119119
- name: Run the tests
120120
run: |
121-
pip install jupyter_client@https://github.com/blink1073/jupyter_client/archive/refs/heads/synchronous_managers.zip
122-
pytest -vv || pytest -vv --lf
121+
pytest -vv -W default || pytest -vv -W default --lf
123122
124123
make_sdist:
125124
name: Make SDist

jupyter_server/services/kernels/handlers.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,11 @@ async def pre_get(self):
397397
kernel = self.kernel_manager.get_kernel(self.kernel_id)
398398

399399
if hasattr(kernel, "ready"):
400+
ready = kernel.ready
401+
if not isinstance(ready, asyncio.Future):
402+
ready = asyncio.wrap_future(ready)
400403
try:
401-
await kernel.ready
404+
await ready
402405
except Exception as e:
403406
kernel.execution_state = "dead"
404407
kernel.reason = str(e)

jupyter_server/services/kernels/kernelmanager.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,11 @@ async def start_kernel(self, kernel_id=None, path=None, **kwargs):
246246
async def _finish_kernel_start(self, kernel_id):
247247
km = self.get_kernel(kernel_id)
248248
if hasattr(km, "ready"):
249+
ready = km.ready
250+
if not isinstance(ready, asyncio.Future):
251+
ready = asyncio.wrap_future(ready)
249252
try:
250-
await km.ready
253+
await ready
251254
except Exception:
252255
self.log.exception("Error waiting for kernel manager ready")
253256
return

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ test =
6565
pytest-mock
6666
pytest-timeout
6767
pytest-tornasync
68-
pytest>=6.0
68+
pytest>=7.0
6969
requests
7070
requests
7171

tests/services/kernels/test_api.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
import json
23
import os
34
import time
@@ -22,7 +23,10 @@ async def _(kernel_id):
2223
if getattr(km, "use_pending_kernels", False):
2324
kernel = km.get_kernel(kernel_id)
2425
if getattr(kernel, "ready", None):
25-
await kernel.ready
26+
ready = kernel.ready
27+
if not isinstance(ready, asyncio.Future):
28+
ready = asyncio.wrap_future(ready)
29+
await ready
2630

2731
return _
2832

tests/services/sessions/test_api.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
import json
23
import os
34
import shutil
@@ -163,7 +164,10 @@ async def _(session_id):
163164
kernel_id = session["kernel"]["id"]
164165
kernel = mkm.get_kernel(kernel_id)
165166
if getattr(kernel, "ready", None):
166-
await kernel.ready
167+
ready = kernel.ready
168+
if not isinstance(ready, asyncio.Future):
169+
ready = asyncio.wrap_future(ready)
170+
await ready
167171

168172
return _
169173

0 commit comments

Comments
 (0)