From ba32a22105b8f14db3947eda802ffbe2dfdbf7ca Mon Sep 17 00:00:00 2001 From: octodog Date: Wed, 25 Sep 2024 13:34:35 +0900 Subject: [PATCH] fix: Assign main kernel ID to `kernel_id` for correct log retrieval (#2820) (#2859) Co-authored-by: Jeongseok Kang Co-authored-by: Kyujin Cho --- changes/2820.fix.md | 1 + src/ai/backend/manager/api/session.py | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 changes/2820.fix.md diff --git a/changes/2820.fix.md b/changes/2820.fix.md new file mode 100644 index 0000000000..ea9eaae43b --- /dev/null +++ b/changes/2820.fix.md @@ -0,0 +1 @@ +Fix `kernel_id` assignment for main kernel log retrieval diff --git a/src/ai/backend/manager/api/session.py b/src/ai/backend/manager/api/session.py index c1ec679186..a68780403d 100644 --- a/src/ai/backend/manager/api/session.py +++ b/src/ai/backend/manager/api/session.py @@ -2135,6 +2135,7 @@ async def get_container_logs( requester_access_key, owner_access_key = await get_access_key_scopes( request, {"owner_access_key": params.owner_access_key} ) + # assume retrieving container log of main kernel when `params.kernel_id` is None kernel_id = KernelId(params.kernel_id) if params.kernel_id is not None else None log.info( "GET_CONTAINER_LOG (ak:{}/{}, s:{}, k:{})", @@ -2158,13 +2159,14 @@ async def get_container_logs( ) if compute_session.status in DEAD_SESSION_STATUSES: - if kernel_id is not None: + if kernel_id is None: + # Get logs from the main kernel + kernel_id = compute_session.main_kernel.id + kernel_log = compute_session.main_kernel.container_log + else: # Get logs from the specific kernel kernel_row = compute_session.get_kernel_by_id(kernel_id) kernel_log = kernel_row.container_log - else: - # Get logs from the main kernel - kernel_log = compute_session.main_kernel.container_log if kernel_log is not None: # Get logs from database record log.debug("returning log from database record")