Skip to content

Failing multi-stage worker-base image when using Local Driver #37

@myntlabs

Description

@myntlabs

When defining the worker-base image as follows:

FROM python:3.12-slim AS builder

# Install system utilities
RUN apt-get update && apt-get install -y --no-install-recommends \
    iputils-ping \
    curl \
    nano \
    procps \
    net-tools \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Copy build context
COPY ../common-lib/flint ./common-lib/flint
COPY ./worker-base ./worker-base

WORKDIR /app/worker-base

# Install Python dependencies
RUN pip install --no-cache-dir poetry
RUN poetry config virtualenvs.create false && \
    poetry install --no-root --no-interaction --no-ansi

FROM python:3.12-slim AS runtime

WORKDIR /app

# Inject dependencies
COPY --from=builder /usr/local/lib/python3.12/site-packages \
                    /usr/local/lib/python3.12/site-packages
COPY --from=builder /app/worker-base /app

RUN mv ./startup/watchdog.py /root/watchdog.py
RUN mkdir -p /root/.ipython/profile_default/startup
RUN mv ./startup/00-flint-init.py /root/.ipython/profile_default/startup/00-flint-init.py

A strange error occurs in the Compute Manager. I have tried several different things to no avail. Frustratingly, this would cut the image size by ~40%... Here are the service logs:

workspace-1           | [D 2025-06-15 02:26:07.779 LabApp] 204 PUT /lab/api/workspaces/default?1749954367469 (4fe17d340e53462bb6972e091dd9b33c@172.18.0.8) 266.46ms
workspace-1           | [D 2025-06-15 02:26:07.779 ServerApp] 200 GET /api/nbconvert?1749954366933 (4fe17d340e53462bb6972e091dd9b33c@172.18.0.8) 840.36ms
reverse-proxy-1       | 172.18.0.1 - - [15/Jun/2025:02:26:07 +0000] "PUT /lab/api/workspaces/default?1749954367469 HTTP/1.1" 204 0 "http://localhost:8701/lab/tree/Untitled.ipynb" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" "-"                    
reverse-proxy-1       | 172.18.0.1 - - [15/Jun/2025:02:26:07 +0000] "GET /api/nbconvert?1749954366933 HTTP/1.1" 200 620 "http://localhost:8701/lab/tree/Untitled.ipynb" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" "-"                               
workspace-1           | [D 2025-06-15 02:26:08.240 LabApp] 204 PUT /lab/api/workspaces/default?1749954368237 (4fe17d340e53462bb6972e091dd9b33c@172.18.0.8) 0.95ms
reverse-proxy-1       | 172.18.0.1 - - [15/Jun/2025:02:26:08 +0000] "PUT /lab/api/workspaces/default?1749954368237 HTTP/1.1" 204 0 "http://localhost:8701/lab/tree/Untitled.ipynb" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" "-"                    
compute-manager-1     | 2025-06-15 02:26:08,315 [INFO] root: Getting container details for id '0d2c6764-6e00-4121-9399-d9a40aa70ad4'
compute-manager-1     | INFO:     172.18.0.8:42978 - "GET /container/0d2c6764-6e00-4121-9399-d9a40aa70ad4 HTTP/1.0" 200 OK
reverse-proxy-1       | 172.18.0.7 - - [15/Jun/2025:02:26:08 +0000] "GET /compute-manager/container/0d2c6764-6e00-4121-9399-d9a40aa70ad4 HTTP/1.1" 200 273 "-" "python-requests/2.32.3" "-"                                                                                                                                 
compute-manager-1     | 2025-06-15 02:26:08,487 [ERROR] root: Failed to launch container 0d2c6764-6e00-4121-9399-d9a40aa70ad4: 500 Server Error for http+docker://localhost/v1.49/containers/a21e0017c6bdab77de1be76e96c3cc2acdba36169339ace2b96c5e8fcecd99af/archive?path=%2Ftmp: Internal Server Error ("RWLayer of container a21e0017c6bdab77de1be76e96c3cc2acdba36169339ace2b96c5e8fcecd99af is unexpectedly nil")
compute-manager-1     | Traceback (most recent call last):
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/docker/api/client.py", line 275, in _raise_for_status                                 
compute-manager-1     |     response.raise_for_status()                                                                                                       
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
compute-manager-1     |     raise HTTPError(http_error_msg, response=self)                                                                                    
compute-manager-1     | requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/v1.49/containers/a21e0017c6bdab77de1be76e96c3cc2acdba36169339ace2b96c5e8fcecd99af/archive?path=%2Ftmp                                                                                       
compute-manager-1     | 
compute-manager-1     | The above exception was the direct cause of the following exception:                                                                  
compute-manager-1     | 
compute-manager-1     | Traceback (most recent call last):                                                                                                    
compute-manager-1     |   File "/app/src/driver/local.py", line 95, in launch_container                                                                       
compute-manager-1     |     await asyncio.to_thread(container.put_archive, "/tmp", tarstream.read())                                                          
compute-manager-1     |   File "/usr/local/lib/python3.12/asyncio/threads.py", line 25, in to_thread
compute-manager-1     |     return await loop.run_in_executor(None, func_call)                                                                                
compute-manager-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                
compute-manager-1     |   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run                                                      
compute-manager-1     |     result = self.fn(*self.args, **self.kwargs)                                                                                       
compute-manager-1     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                       
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/docker/models/containers.py", line 350, in put_archive                                
compute-manager-1     |     return self.client.api.put_archive(self.id, path, data)
compute-manager-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                           
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/docker/utils/decorators.py", line 19, in wrapped                                      
compute-manager-1     |     return f(self, resource_id, *args, **kwargs)                                                                                      
compute-manager-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/docker/api/container.py", line 991, in put_archive                                    
compute-manager-1     |     self._raise_for_status(res)                                                                                                       
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/docker/api/client.py", line 277, in _raise_for_status                                 
compute-manager-1     |     raise create_api_error_from_http_exception(e) from e                                                                              
compute-manager-1     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/docker/errors.py", line 39, in create_api_error_from_http_exception                   
compute-manager-1     |     raise cls(e, response=response, explanation=explanation) from e                                                                   
compute-manager-1     | docker.errors.APIError: 500 Server Error for http+docker://localhost/v1.49/containers/a21e0017c6bdab77de1be76e96c3cc2acdba36169339ace2b96c5e8fcecd99af/archive?path=%2Ftmp: Internal Server Error ("RWLayer of container a21e0017c6bdab77de1be76e96c3cc2acdba36169339ace2b96c5e8fcecd99af is unexpectedly nil")
compute-manager-1     | 2025-06-15 02:26:09,319 [INFO] root: Getting container details for id '0d2c6764-6e00-4121-9399-d9a40aa70ad4'
compute-manager-1     | INFO:     172.18.0.8:42994 - "GET /container/0d2c6764-6e00-4121-9399-d9a40aa70ad4 HTTP/1.0" 500 Internal Server Error
reverse-proxy-1       | 172.18.0.7 - - [15/Jun/2025:02:26:09 +0000] "GET /compute-manager/container/0d2c6764-6e00-4121-9399-d9a40aa70ad4 HTTP/1.1" 500 21 "-" "python-requests/2.32.3" "-"                                                                                                                                  
workspace-1           | [E 2025-06-15 02:26:09.320 ServerApp] Expecting value: line 1 column 1 (char 0)
compute-manager-1     | ERROR:    Exception in ASGI application
reverse-proxy-1       | 172.18.0.1 - - [15/Jun/2025:02:26:09 +0000] "POST /api/sessions?1749954367246 HTTP/1.1" 500 72 "http://localhost:8701/lab/tree/Untitled.ipynb" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" "-"                                
workspace-1           |     Traceback (most recent call last):
compute-manager-1     | Traceback (most recent call last):                                                                                                    
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 974, in json
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi                            
workspace-1           |         return complexjson.loads(self.text, **kwargs)                                                                                 
compute-manager-1     |     result = await app(  # type: ignore[func-returns-value]                                                                           
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
compute-manager-1     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                           
workspace-1           |       File "/usr/local/lib/python3.12/json/__init__.py", line 346, in loads                                                           
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__                            
workspace-1           |         return _default_decoder.decode(s)
compute-manager-1     |     return await self.app(scope, receive, send)                                                                                       
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                             
compute-manager-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                       
workspace-1           |       File "/usr/local/lib/python3.12/json/decoder.py", line 338, in decode                                                           
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
workspace-1           |         obj, end = self.raw_decode(s, idx=_w(s, 0).end())                                                                             
compute-manager-1     |     await super().__call__(scope, receive, send)                                                                                      
workspace-1           |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                             
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 112, in __call__                                     
workspace-1           |       File "/usr/local/lib/python3.12/json/decoder.py", line 356, in raw_decode
compute-manager-1     |     await self.middleware_stack(scope, receive, send)                                                                                 
workspace-1           |         raise JSONDecodeError("Expecting value", s, err.value) from None                                                              
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__                                
workspace-1           |     json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)                                                           
compute-manager-1     |     raise exc
workspace-1           |                                                                                                                                       
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__                                
workspace-1           |     During handling of the above exception, another exception occurred:                                                               
compute-manager-1     |     await self.app(scope, receive, _send)                                                                                             
workspace-1           |     
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__                             
workspace-1           |     Traceback (most recent call last):                                                                                                
compute-manager-1     |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)                                                          
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 87, in wrapper                                   
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
workspace-1           |         out = await method(self, *args, **kwargs)                                                                                     
compute-manager-1     |     raise exc                                                                                                                         
workspace-1           |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                     
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app                             
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 435, in _async_start_kernel
compute-manager-1     |     await app(scope, receive, sender)                                                                                                 
workspace-1           |         kernel_cmd, kw = await self._async_pre_start_kernel(**kw)                                                                     
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 714, in __call__                                          
workspace-1           |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                     
compute-manager-1     |     await self.middleware_stack(scope, receive, send)
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 400, in _async_pre_start_kernel                  
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 734, in app                                               
workspace-1           |         kw = await self.provisioner.pre_launch(**kw)                                                                                  
compute-manager-1     |     await route.handle(scope, receive, send)                                                                                          
workspace-1           |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle                                            
workspace-1           |       File "/app/workspace/backend/provisioner.py", line 30, in pre_launch                                                            
compute-manager-1     |     await self.app(scope, receive, send)                                                                                              
workspace-1           |         info = requests.get(f"http://reverse-proxy/compute-manager/container/{self.container_id}").json()                             
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                             
compute-manager-1     |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)                                                            
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 978, in json                                            
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app                             
workspace-1           |         raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
compute-manager-1     |     raise exc                                                                                                                         
workspace-1           |     requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)                                                    
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app                             
workspace-1           | [E 2025-06-15 02:26:09.322 ServerApp] Expecting value: line 1 column 1 (char 0)                                                       
compute-manager-1     |     await app(scope, receive, sender)
workspace-1           |     Traceback (most recent call last):                                                                                                
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app                                                
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 974, in json                                            
compute-manager-1     |     response = await f(request)                                                                                                       
workspace-1           |         return complexjson.loads(self.text, **kwargs)
compute-manager-1     |                ^^^^^^^^^^^^^^^^                                                                                                       
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                 
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 327, in app                                                 
workspace-1           |       File "/usr/local/lib/python3.12/json/__init__.py", line 346, in loads                                                           
compute-manager-1     |     content = await serialize_response(
workspace-1           |         return _default_decoder.decode(s)                                                                                             
compute-manager-1     |               ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                               
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                             
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 181, in serialize_response                                  
workspace-1           |       File "/usr/local/lib/python3.12/json/decoder.py", line 338, in decode
compute-manager-1     |     return field.serialize(                                                                                                           
workspace-1           |         obj, end = self.raw_decode(s, idx=_w(s, 0).end())                                                                             
compute-manager-1     |            ^^^^^^^^^^^^^^^^                                                                                                           
workspace-1           |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                             
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/fastapi/_compat.py", line 151, in serialize
workspace-1           |       File "/usr/local/lib/python3.12/json/decoder.py", line 356, in raw_decode                                                       
compute-manager-1     |     return self._type_adapter.dump_python(                                                                                            
workspace-1           |         raise JSONDecodeError("Expecting value", s, err.value) from None                                                              
compute-manager-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                            
workspace-1           |     json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
compute-manager-1     |   File "/usr/local/lib/python3.12/site-packages/pydantic/type_adapter.py", line 572, in dump_python                                   
workspace-1           |                                                                                                                                       
compute-manager-1     |     return self.serializer.to_python(                                                                                                 
workspace-1           |     During handling of the above exception, another exception occurred:                                                               
compute-manager-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
workspace-1           |                                                                                                                                       
compute-manager-1     | pydantic_core._pydantic_core.PydanticSerializationError: Unable to serialize unknown type: <class 'docker.errors.APIError'>           
workspace-1           |     Traceback (most recent call last):                                                                                                
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/multikernelmanager.py", line 232, in _add_kernel_when_ready        
workspace-1           |         await kernel_awaitable
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_core/utils/__init__.py", line 197, in ensure_async                        
workspace-1           |         result = await obj                                                                                                            
workspace-1           |                  ^^^^^^^^^                                                                                                            
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 833, in wrapped_method    
workspace-1           |         raise err
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 797, in wrapped_method    
workspace-1           |         out = await method(self, *args, **kwargs)                                                                                     
workspace-1           |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                     
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 902, in start_kernel      
workspace-1           |         return await super().start_kernel(*args, **kwargs)
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                            
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 96, in wrapper                                   
workspace-1           |         raise e                                                                                                                       
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 87, in wrapper                                   
workspace-1           |         out = await method(self, *args, **kwargs)
workspace-1           |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                     
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 435, in _async_start_kernel                      
workspace-1           |         kernel_cmd, kw = await self._async_pre_start_kernel(**kw)                                                                     
workspace-1           |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                     
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 400, in _async_pre_start_kernel
workspace-1           |         kw = await self.provisioner.pre_launch(**kw)                                                                                  
workspace-1           |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                  
workspace-1           |       File "/app/workspace/backend/provisioner.py", line 30, in pre_launch                                                            
workspace-1           |         info = requests.get(f"http://reverse-proxy/compute-manager/container/{self.container_id}").json()                             
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 978, in json                                            
workspace-1           |         raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)                                                                            
workspace-1           |     requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)                                                    
workspace-1           | [W 2025-06-15 02:26:09.323 ServerApp] 500 POST /api/sessions?1749954367246 (172.18.0.8): Expecting value: line 1 column 1 (char 0)    
workspace-1           | [W 2025-06-15 02:26:09.323 ServerApp] wrote error: 'Expecting value: line 1 column 1 (char 0)'
workspace-1           |     Traceback (most recent call last):                                                                                                
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 974, in json                                            
workspace-1           |         return complexjson.loads(self.text, **kwargs)                                                                                 
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                 
workspace-1           |       File "/usr/local/lib/python3.12/json/__init__.py", line 346, in loads
workspace-1           |         return _default_decoder.decode(s)                                                                                             
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                             
workspace-1           |       File "/usr/local/lib/python3.12/json/decoder.py", line 338, in decode                                                           
workspace-1           |         obj, end = self.raw_decode(s, idx=_w(s, 0).end())                                                                             
workspace-1           |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
workspace-1           |       File "/usr/local/lib/python3.12/json/decoder.py", line 356, in raw_decode                                                       
workspace-1           |         raise JSONDecodeError("Expecting value", s, err.value) from None                                                              
workspace-1           |     json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)                                                           
workspace-1           |     
workspace-1           |     During handling of the above exception, another exception occurred:                                                               
workspace-1           |     
workspace-1           |     Traceback (most recent call last):                                                                                                
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/sessions/handlers.py", line 90, in post                   
workspace-1           |         s_model = await sm.create_session(                                                                                            
workspace-1           |                   ^^^^^^^^^^^^^^^^^^^^^^^^
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/sessions/sessionmanager.py", line 285, in create_session  
workspace-1           |         kernel_id = await self.start_kernel_for_session(                                                                              
workspace-1           |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                              
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/sessions/sessionmanager.py", line 343, in start_kernel_for_session                                                                                                                                                      
workspace-1           |         kernel_id = await self.kernel_manager.start_kernel(
workspace-1           |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                           
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 233, in _async_start_kernel                                                                                                                                                             
workspace-1           |         kernel_id = await self.pinned_superclass._async_start_kernel(self, **kwargs)
workspace-1           |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                  
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/multikernelmanager.py", line 283, in _async_start_kernel
workspace-1           |         raise km.ready.exception()  # type: ignore[misc]                                                                              
workspace-1           |         ^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                    
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/multikernelmanager.py", line 232, in _add_kernel_when_ready        
workspace-1           |         await kernel_awaitable                                                                                                        
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_core/utils/__init__.py", line 197, in ensure_async
workspace-1           |         result = await obj                                                                                                            
workspace-1           |                  ^^^^^^^^^                                                                                                            
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 833, in wrapped_method    
workspace-1           |         raise err                                                                                                                     
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 797, in wrapped_method
workspace-1           |         out = await method(self, *args, **kwargs)                                                                                     
workspace-1           |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 902, in start_kernel      
workspace-1           |         return await super().start_kernel(*args, **kwargs)                                                                            
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                            
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 96, in wrapper
workspace-1           |         raise e                                                                                                                       
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 87, in wrapper                                   
workspace-1           |         out = await method(self, *args, **kwargs)                                                                                     
workspace-1           |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 435, in _async_start_kernel                      
workspace-1           |         kernel_cmd, kw = await self._async_pre_start_kernel(**kw)                                                                     
workspace-1           |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                     
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_client/manager.py", line 400, in _async_pre_start_kernel
workspace-1           |         kw = await self.provisioner.pre_launch(**kw)                                                                                  
workspace-1           |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                  
workspace-1           |       File "/app/workspace/backend/provisioner.py", line 30, in pre_launch
workspace-1           |         info = requests.get(f"http://reverse-proxy/compute-manager/container/{self.container_id}").json()                             
workspace-1           |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                             
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 978, in json
workspace-1           |         raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)                                                                            
workspace-1           |     requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)                                                    
workspace-1           |                                                                                                                                       
workspace-1           |     The above exception was the direct cause of the following exception:                                                              
workspace-1           |     
workspace-1           |     Traceback (most recent call last):                                                                                                
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/tornado/web.py", line 1848, in _execute                                           
workspace-1           |         result = await result                                                                                                         
workspace-1           |                  ^^^^^^^^^^^^                                                                                                         
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/auth/decorator.py", line 73, in inner
workspace-1           |         return await out                                                                                                              
workspace-1           |                ^^^^^^^^^                                                                                                              
workspace-1           |       File "/usr/local/lib/python3.12/site-packages/jupyter_server/services/sessions/handlers.py", line 108, in post                  
workspace-1           |         raise web.HTTPError(500, str(e)) from e
workspace-1           |     tornado.web.HTTPError: HTTP 500: Internal Server Error (Expecting value: line 1 column 1 (char 0))                                
workspace-1           | [E 2025-06-15 02:26:09.325 ServerApp] {                                                                                               
workspace-1           |       "Host": "localhost",                                                                                                            
workspace-1           |       "Accept": "*/*",                                                                                                                
workspace-1           |       "Referer": "http://localhost:8701/lab/tree/Untitled.ipynb",
workspace-1           |       "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" 
workspace-1           |     }                                                                                                                                 
workspace-1           | [E 2025-06-15 02:26:09.325 ServerApp] 500 POST /api/sessions?1749954367246 (4fe17d340e53462bb6972e091dd9b33c@172.18.0.8) 2034.99ms referer=http://localhost:8701/lab/tree/Untitled.ipynb                                                                                                            
workspace-1           | [D 2025-06-15 02:26:12.061 ServerApp] 200 GET /api/kernels?1749954372058 (4fe17d340e53462bb6972e091dd9b33c@172.18.0.8) 0.86ms
workspace-1           | [D 2025-06-15 02:26:12.061 TerminalsExtensionApp] 200 GET /api/terminals?1749954372058 (4fe17d340e53462bb6972e091dd9b33c@172.18.0.8) 0.91ms

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions