From 06f253b7e44cf655701ca2def4cb9d2ea08eba2b Mon Sep 17 00:00:00 2001 From: Nick Date: Fri, 23 Feb 2024 22:47:59 +0300 Subject: [PATCH] fix(core-manager): add logging info (#2109) --- crates/core-manager/src/errors.rs | 13 ++++++++----- crates/core-manager/src/manager.rs | 9 +++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/crates/core-manager/src/errors.rs b/crates/core-manager/src/errors.rs index 815433f544..51fc5ff5c8 100644 --- a/crates/core-manager/src/errors.rs +++ b/crates/core-manager/src/errors.rs @@ -1,4 +1,5 @@ -use cpu_utils::CPUTopologyError; +use ccp_shared::types::CUID; +use cpu_utils::{CPUTopologyError, PhysicalCoreId}; use std::str::Utf8Error; use thiserror::Error; @@ -59,8 +60,10 @@ pub enum PersistError { #[derive(Debug, Error)] pub enum AcquireError { - #[error("Couldn't assign core: no free cores left")] - NotFoundAvailableCores, - #[error("Unexpected state")] - UnexpectedState, + #[error( + "Couldn't assign core: no free cores left. Current assignment: {current_assignment:?}" + )] + NotFoundAvailableCores { + current_assignment: Vec<(PhysicalCoreId, CUID)>, + }, } diff --git a/crates/core-manager/src/manager.rs b/crates/core-manager/src/manager.rs index d0ba09d79a..6ba33fe1dc 100644 --- a/crates/core-manager/src/manager.rs +++ b/crates/core-manager/src/manager.rs @@ -355,10 +355,11 @@ impl CoreManagerFunctions for PersistentCoreManager { let physical_core_id = lock.unit_id_mapping.get_by_right(&unit_id).cloned(); let physical_core_id = match physical_core_id { None => { - let core_id = lock - .available_cores - .pop_last() - .ok_or(AcquireError::NotFoundAvailableCores)?; + let core_id = lock.available_cores.pop_last().ok_or({ + let current_assignment: Vec<(PhysicalCoreId, CUID)> = + lock.unit_id_mapping.iter().map(|(k, v)| (*k, *v)).collect(); + AcquireError::NotFoundAvailableCores { current_assignment } + })?; lock.unit_id_mapping.insert(core_id, unit_id); lock.work_type_mapping .insert(unit_id, worker_unit_type.clone());