From 8e8526f4b00806f989d154542db4bcf86c441610 Mon Sep 17 00:00:00 2001 From: Ciprian Anton Date: Wed, 6 Jul 2022 14:53:26 +0300 Subject: [PATCH 1/9] Re-add LAUNCH_TIMEOUT_PAD support --- jupyter_server/gateway/gateway_client.py | 35 ++++++++++++++++---- tests/test_gateway.py | 41 +++++++++++++++++++++--- 2 files changed, 65 insertions(+), 11 deletions(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index 396a9a1abc..497460e0eb 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -348,17 +348,40 @@ def gateway_enabled(self): # Ensure KERNEL_LAUNCH_TIMEOUT has a default value. KERNEL_LAUNCH_TIMEOUT = int(os.environ.get("KERNEL_LAUNCH_TIMEOUT", 40)) + kernel_launch_timeout_pad_default_value = 0 + kernel_launch_timeout_pad_env = "JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD" + kernel_launch_timeout_pad = Int( + default_value=kernel_launch_timeout_pad_default_value, + config=True, + help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout. + (JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD env var)""", + ) + + @default("kernel_launch_timeout_pad") + def kernel_launch_timeout_pad_default(self): + return int( + os.environ.get( + "JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD", self.kernel_launch_timeout_pad_default_value + ) + ) + def init_static_args(self): """Initialize arguments used on every request. Since these are static values, we'll perform this operation once. """ - # Ensure that request timeout and KERNEL_LAUNCH_TIMEOUT are the same, taking the - # greater value of the two. - if self.request_timeout < float(GatewayClient.KERNEL_LAUNCH_TIMEOUT): - self.request_timeout = float(GatewayClient.KERNEL_LAUNCH_TIMEOUT) - elif self.request_timeout > float(GatewayClient.KERNEL_LAUNCH_TIMEOUT): - GatewayClient.KERNEL_LAUNCH_TIMEOUT = int(self.request_timeout) + # Ensure that request timeout and KERNEL_LAUNCH_TIMEOUT are in sync, taking the + # greater value of the two and taking into account the following relation: + # request_timeout = KERNEL_LAUNCH_TIME + padding + minimum_request_timeout = ( + float(GatewayClient.KERNEL_LAUNCH_TIMEOUT) + self.kernel_launch_timeout_pad + ) + if self.request_timeout < minimum_request_timeout: + self.request_timeout = minimum_request_timeout + elif self.request_timeout > minimum_request_timeout: + GatewayClient.KERNEL_LAUNCH_TIMEOUT = ( + int(self.request_timeout) - self.kernel_launch_timeout_pad + ) # Ensure any adjustments are reflected in env. os.environ["KERNEL_LAUNCH_TIMEOUT"] = str(GatewayClient.KERNEL_LAUNCH_TIMEOUT) diff --git a/tests/test_gateway.py b/tests/test_gateway.py index b45ed982db..0480d08f73 100644 --- a/tests/test_gateway.py +++ b/tests/test_gateway.py @@ -186,6 +186,7 @@ def init_gateway(monkeypatch): monkeypatch.setenv("JUPYTER_GATEWAY_HTTP_USER", mock_http_user) monkeypatch.setenv("JUPYTER_GATEWAY_REQUEST_TIMEOUT", "44.4") monkeypatch.setenv("JUPYTER_GATEWAY_CONNECT_TIMEOUT", "44.4") + monkeypatch.setenv("JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD", "1") yield GatewayClient.clear_instance() @@ -198,11 +199,10 @@ async def test_gateway_env_options(init_gateway, jp_serverapp): jp_serverapp.gateway_config.connect_timeout == jp_serverapp.gateway_config.request_timeout ) assert jp_serverapp.gateway_config.connect_timeout == 44.4 + assert jp_serverapp.gateway_config.kernel_launch_timeout_pad == 1 GatewayClient.instance().init_static_args() - assert GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == int( - jp_serverapp.gateway_config.request_timeout - ) + assert GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 43 async def test_gateway_cli_options(jp_configurable_serverapp): @@ -211,6 +211,7 @@ async def test_gateway_cli_options(jp_configurable_serverapp): "--GatewayClient.http_user=" + mock_http_user, "--GatewayClient.connect_timeout=44.4", "--GatewayClient.request_timeout=96.0", + "--GatewayClient.kernel_launch_timeout_pad=2", ] GatewayClient.clear_instance() @@ -221,10 +222,40 @@ async def test_gateway_cli_options(jp_configurable_serverapp): assert app.gateway_config.http_user == mock_http_user assert app.gateway_config.connect_timeout == 44.4 assert app.gateway_config.request_timeout == 96.0 + assert app.gateway_config.kernel_launch_timeout_pad == 2 GatewayClient.instance().init_static_args() assert ( - GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 96 - ) # Ensure KLT gets set from request-timeout + GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 94 + ) # Ensure KLT gets set from request-timeout - kernel_launch_timeout_pad + GatewayClient.clear_instance() + + +@pytest.mark.parametrize( + "request_timeout,kernel_launch_timeout,expected_request_timeout,expected_kernel_launch_timeout", + [(50, 10, 50, 45), (10, 50, 55, 50)], +) +async def test_gateway_request_timeout_pad_option( + jp_configurable_serverapp, + monkeypatch, + request_timeout, + kernel_launch_timeout, + expected_request_timeout, + expected_kernel_launch_timeout, +): + argv = [ + f"--GatewayClient.request_timeout={request_timeout}", + "--GatewayClient.kernel_launch_timeout_pad=5" + ] + + GatewayClient.clear_instance() + app = jp_configurable_serverapp(argv=argv) + + monkeypatch.setattr(GatewayClient, "KERNEL_LAUNCH_TIMEOUT", kernel_launch_timeout) + GatewayClient.instance().init_static_args() + + assert app.gateway_config.request_timeout == expected_request_timeout + assert GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == expected_kernel_launch_timeout + GatewayClient.clear_instance() From aca15ec2afc67cd9565e1a0437964362dfa56bed Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 12:01:56 +0000 Subject: [PATCH 2/9] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- jupyter_server/gateway/gateway_client.py | 5 +++-- tests/test_gateway.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index 497460e0eb..f7151e0867 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -353,7 +353,7 @@ def gateway_enabled(self): kernel_launch_timeout_pad = Int( default_value=kernel_launch_timeout_pad_default_value, config=True, - help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout. + help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout. (JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD env var)""", ) @@ -361,7 +361,8 @@ def gateway_enabled(self): def kernel_launch_timeout_pad_default(self): return int( os.environ.get( - "JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD", self.kernel_launch_timeout_pad_default_value + "JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD", + self.kernel_launch_timeout_pad_default_value, ) ) diff --git a/tests/test_gateway.py b/tests/test_gateway.py index 0480d08f73..c0297581f1 100644 --- a/tests/test_gateway.py +++ b/tests/test_gateway.py @@ -244,7 +244,7 @@ async def test_gateway_request_timeout_pad_option( ): argv = [ f"--GatewayClient.request_timeout={request_timeout}", - "--GatewayClient.kernel_launch_timeout_pad=5" + "--GatewayClient.kernel_launch_timeout_pad=5", ] GatewayClient.clear_instance() From e2ed218789e4f7babbe277635c1dd0e11daeeb2a Mon Sep 17 00:00:00 2001 From: Ciprian Anton Date: Wed, 6 Jul 2022 15:08:00 +0300 Subject: [PATCH 3/9] Move option next to other configs --- jupyter_server/gateway/gateway_client.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index f7151e0867..523718ce30 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -341,13 +341,6 @@ def gateway_retry_max_default(self): os.environ.get("JUPYTER_GATEWAY_RETRY_MAX", self.gateway_retry_max_default_value) ) - @property - def gateway_enabled(self): - return bool(self.url is not None and len(self.url) > 0) - - # Ensure KERNEL_LAUNCH_TIMEOUT has a default value. - KERNEL_LAUNCH_TIMEOUT = int(os.environ.get("KERNEL_LAUNCH_TIMEOUT", 40)) - kernel_launch_timeout_pad_default_value = 0 kernel_launch_timeout_pad_env = "JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD" kernel_launch_timeout_pad = Int( @@ -366,6 +359,13 @@ def kernel_launch_timeout_pad_default(self): ) ) + @property + def gateway_enabled(self): + return bool(self.url is not None and len(self.url) > 0) + + # Ensure KERNEL_LAUNCH_TIMEOUT has a default value. + KERNEL_LAUNCH_TIMEOUT = int(os.environ.get("KERNEL_LAUNCH_TIMEOUT", 40)) + def init_static_args(self): """Initialize arguments used on every request. Since these are static values, we'll perform this operation once. From 21bb207cabf739426b334462096fe88a3e621824 Mon Sep 17 00:00:00 2001 From: Ciprian Anton Date: Wed, 6 Jul 2022 22:11:38 +0300 Subject: [PATCH 4/9] Update jupyter_server/gateway/gateway_client.py Co-authored-by: Kevin Bates --- jupyter_server/gateway/gateway_client.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index 523718ce30..64ca9d28a6 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -346,7 +346,8 @@ def gateway_retry_max_default(self): kernel_launch_timeout_pad = Int( default_value=kernel_launch_timeout_pad_default_value, config=True, - help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout. + help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout + such that request_timeout >= KERNEL_LAUNCH_TIMEOUT + timeout_pad. (JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD env var)""", ) From 544be57f22936f86655e30d20716bc516447df4f Mon Sep 17 00:00:00 2001 From: Ciprian Anton Date: Wed, 6 Jul 2022 22:28:36 +0300 Subject: [PATCH 5/9] - Update request_timeout default value - Update pad_timeout default value - Rename kernel_launch_timeout_pad => launch_timeout_pad --- jupyter_server/gateway/gateway_client.py | 24 ++++++++++++------------ tests/test_gateway.py | 14 +++++++------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index 64ca9d28a6..c2ded769c9 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -128,7 +128,7 @@ def connect_timeout_default(self): os.environ.get("JUPYTER_GATEWAY_CONNECT_TIMEOUT", self.connect_timeout_default_value) ) - request_timeout_default_value = 40.0 + request_timeout_default_value = 42.0 request_timeout_env = "JUPYTER_GATEWAY_REQUEST_TIMEOUT" request_timeout = Float( default_value=request_timeout_default_value, @@ -341,22 +341,22 @@ def gateway_retry_max_default(self): os.environ.get("JUPYTER_GATEWAY_RETRY_MAX", self.gateway_retry_max_default_value) ) - kernel_launch_timeout_pad_default_value = 0 - kernel_launch_timeout_pad_env = "JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD" - kernel_launch_timeout_pad = Int( - default_value=kernel_launch_timeout_pad_default_value, + launch_timeout_pad_default_value = 2 + launch_timeout_pad_env = "JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD" + launch_timeout_pad = Int( + default_value=launch_timeout_pad_default_value, config=True, help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout such that request_timeout >= KERNEL_LAUNCH_TIMEOUT + timeout_pad. - (JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD env var)""", + (JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD env var)""", ) - @default("kernel_launch_timeout_pad") - def kernel_launch_timeout_pad_default(self): + @default("launch_timeout_pad") + def launch_timeout_pad_default(self): return int( os.environ.get( - "JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD", - self.kernel_launch_timeout_pad_default_value, + "JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD", + self.launch_timeout_pad_default_value, ) ) @@ -376,13 +376,13 @@ def init_static_args(self): # greater value of the two and taking into account the following relation: # request_timeout = KERNEL_LAUNCH_TIME + padding minimum_request_timeout = ( - float(GatewayClient.KERNEL_LAUNCH_TIMEOUT) + self.kernel_launch_timeout_pad + float(GatewayClient.KERNEL_LAUNCH_TIMEOUT) + self.launch_timeout_pad ) if self.request_timeout < minimum_request_timeout: self.request_timeout = minimum_request_timeout elif self.request_timeout > minimum_request_timeout: GatewayClient.KERNEL_LAUNCH_TIMEOUT = ( - int(self.request_timeout) - self.kernel_launch_timeout_pad + int(self.request_timeout) - self.launch_timeout_pad ) # Ensure any adjustments are reflected in env. os.environ["KERNEL_LAUNCH_TIMEOUT"] = str(GatewayClient.KERNEL_LAUNCH_TIMEOUT) diff --git a/tests/test_gateway.py b/tests/test_gateway.py index c0297581f1..b128fa9b47 100644 --- a/tests/test_gateway.py +++ b/tests/test_gateway.py @@ -186,7 +186,7 @@ def init_gateway(monkeypatch): monkeypatch.setenv("JUPYTER_GATEWAY_HTTP_USER", mock_http_user) monkeypatch.setenv("JUPYTER_GATEWAY_REQUEST_TIMEOUT", "44.4") monkeypatch.setenv("JUPYTER_GATEWAY_CONNECT_TIMEOUT", "44.4") - monkeypatch.setenv("JUPYTER_GATEWAY_KERNEL_LAUNCH_TIMEOUT_PAD", "1") + monkeypatch.setenv("JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD", "1") yield GatewayClient.clear_instance() @@ -199,7 +199,7 @@ async def test_gateway_env_options(init_gateway, jp_serverapp): jp_serverapp.gateway_config.connect_timeout == jp_serverapp.gateway_config.request_timeout ) assert jp_serverapp.gateway_config.connect_timeout == 44.4 - assert jp_serverapp.gateway_config.kernel_launch_timeout_pad == 1 + assert jp_serverapp.gateway_config.launch_timeout_pad == 1 GatewayClient.instance().init_static_args() assert GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 43 @@ -211,7 +211,7 @@ async def test_gateway_cli_options(jp_configurable_serverapp): "--GatewayClient.http_user=" + mock_http_user, "--GatewayClient.connect_timeout=44.4", "--GatewayClient.request_timeout=96.0", - "--GatewayClient.kernel_launch_timeout_pad=2", + "--GatewayClient.launch_timeout_pad=6", ] GatewayClient.clear_instance() @@ -222,11 +222,11 @@ async def test_gateway_cli_options(jp_configurable_serverapp): assert app.gateway_config.http_user == mock_http_user assert app.gateway_config.connect_timeout == 44.4 assert app.gateway_config.request_timeout == 96.0 - assert app.gateway_config.kernel_launch_timeout_pad == 2 + assert app.gateway_config.launch_timeout_pad == 6 GatewayClient.instance().init_static_args() assert ( - GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 94 - ) # Ensure KLT gets set from request-timeout - kernel_launch_timeout_pad + GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 90 + ) # Ensure KLT gets set from request-timeout - launch_timeout_pad GatewayClient.clear_instance() @@ -244,7 +244,7 @@ async def test_gateway_request_timeout_pad_option( ): argv = [ f"--GatewayClient.request_timeout={request_timeout}", - "--GatewayClient.kernel_launch_timeout_pad=5", + "--GatewayClient.launch_timeout_pad=5", ] GatewayClient.clear_instance() From 96faf7c37ac396e21512cf06d7a3243f5b09fcef Mon Sep 17 00:00:00 2001 From: Ciprian Anton Date: Thu, 7 Jul 2022 08:09:47 +0300 Subject: [PATCH 6/9] Update help with suggestion Co-authored-by: Kevin Bates --- jupyter_server/gateway/gateway_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index c2ded769c9..9138a82b64 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -347,7 +347,7 @@ def gateway_retry_max_default(self): default_value=launch_timeout_pad_default_value, config=True, help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout - such that request_timeout >= KERNEL_LAUNCH_TIMEOUT + timeout_pad. + such that request_timeout >= KERNEL_LAUNCH_TIMEOUT + launch_timeout_pad. (JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD env var)""", ) From 1f73b15465222bbe87b32f0b40ed4e5183e0ef95 Mon Sep 17 00:00:00 2001 From: Ciprian Anton Date: Thu, 7 Jul 2022 08:34:44 +0300 Subject: [PATCH 7/9] Make the launch_timeout_pad be flow for consitency with other timeouts defined in this file --- jupyter_server/gateway/gateway_client.py | 6 +++--- tests/test_gateway.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index 9138a82b64..57e96151e1 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -343,7 +343,7 @@ def gateway_retry_max_default(self): launch_timeout_pad_default_value = 2 launch_timeout_pad_env = "JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD" - launch_timeout_pad = Int( + launch_timeout_pad = Float( default_value=launch_timeout_pad_default_value, config=True, help="""Timeout pad to be ensured between KERNEL_LAUNCH_TIMEOUT and request_timeout @@ -353,7 +353,7 @@ def gateway_retry_max_default(self): @default("launch_timeout_pad") def launch_timeout_pad_default(self): - return int( + return float( os.environ.get( "JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD", self.launch_timeout_pad_default_value, @@ -382,7 +382,7 @@ def init_static_args(self): self.request_timeout = minimum_request_timeout elif self.request_timeout > minimum_request_timeout: GatewayClient.KERNEL_LAUNCH_TIMEOUT = ( - int(self.request_timeout) - self.launch_timeout_pad + int(self.request_timeout - self.launch_timeout_pad) ) # Ensure any adjustments are reflected in env. os.environ["KERNEL_LAUNCH_TIMEOUT"] = str(GatewayClient.KERNEL_LAUNCH_TIMEOUT) diff --git a/tests/test_gateway.py b/tests/test_gateway.py index b128fa9b47..e8e6ecb087 100644 --- a/tests/test_gateway.py +++ b/tests/test_gateway.py @@ -186,7 +186,7 @@ def init_gateway(monkeypatch): monkeypatch.setenv("JUPYTER_GATEWAY_HTTP_USER", mock_http_user) monkeypatch.setenv("JUPYTER_GATEWAY_REQUEST_TIMEOUT", "44.4") monkeypatch.setenv("JUPYTER_GATEWAY_CONNECT_TIMEOUT", "44.4") - monkeypatch.setenv("JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD", "1") + monkeypatch.setenv("JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD", "1.1") yield GatewayClient.clear_instance() @@ -199,7 +199,7 @@ async def test_gateway_env_options(init_gateway, jp_serverapp): jp_serverapp.gateway_config.connect_timeout == jp_serverapp.gateway_config.request_timeout ) assert jp_serverapp.gateway_config.connect_timeout == 44.4 - assert jp_serverapp.gateway_config.launch_timeout_pad == 1 + assert jp_serverapp.gateway_config.launch_timeout_pad == 1.1 GatewayClient.instance().init_static_args() assert GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 43 @@ -211,7 +211,7 @@ async def test_gateway_cli_options(jp_configurable_serverapp): "--GatewayClient.http_user=" + mock_http_user, "--GatewayClient.connect_timeout=44.4", "--GatewayClient.request_timeout=96.0", - "--GatewayClient.launch_timeout_pad=6", + "--GatewayClient.launch_timeout_pad=5.1", ] GatewayClient.clear_instance() @@ -222,7 +222,7 @@ async def test_gateway_cli_options(jp_configurable_serverapp): assert app.gateway_config.http_user == mock_http_user assert app.gateway_config.connect_timeout == 44.4 assert app.gateway_config.request_timeout == 96.0 - assert app.gateway_config.launch_timeout_pad == 6 + assert app.gateway_config.launch_timeout_pad == 5.1 GatewayClient.instance().init_static_args() assert ( GatewayClient.instance().KERNEL_LAUNCH_TIMEOUT == 90 From 283b3dc625a478c622806967b2e94d30aecf4727 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 7 Jul 2022 05:35:18 +0000 Subject: [PATCH 8/9] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- jupyter_server/gateway/gateway_client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index 57e96151e1..119214da58 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -381,8 +381,8 @@ def init_static_args(self): if self.request_timeout < minimum_request_timeout: self.request_timeout = minimum_request_timeout elif self.request_timeout > minimum_request_timeout: - GatewayClient.KERNEL_LAUNCH_TIMEOUT = ( - int(self.request_timeout - self.launch_timeout_pad) + GatewayClient.KERNEL_LAUNCH_TIMEOUT = int( + self.request_timeout - self.launch_timeout_pad ) # Ensure any adjustments are reflected in env. os.environ["KERNEL_LAUNCH_TIMEOUT"] = str(GatewayClient.KERNEL_LAUNCH_TIMEOUT) From 31cdee18ae604e8f49ecb2ef84836a82ff034f90 Mon Sep 17 00:00:00 2001 From: Ciprian Anton Date: Thu, 7 Jul 2022 08:36:58 +0300 Subject: [PATCH 9/9] Forgot to make default value also float. --- jupyter_server/gateway/gateway_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyter_server/gateway/gateway_client.py b/jupyter_server/gateway/gateway_client.py index 57e96151e1..495fd3abee 100644 --- a/jupyter_server/gateway/gateway_client.py +++ b/jupyter_server/gateway/gateway_client.py @@ -341,7 +341,7 @@ def gateway_retry_max_default(self): os.environ.get("JUPYTER_GATEWAY_RETRY_MAX", self.gateway_retry_max_default_value) ) - launch_timeout_pad_default_value = 2 + launch_timeout_pad_default_value = 2.0 launch_timeout_pad_env = "JUPYTER_GATEWAY_LAUNCH_TIMEOUT_PAD" launch_timeout_pad = Float( default_value=launch_timeout_pad_default_value,