From c6d79639070fe33b915b73e7aff463cf4763b9c8 Mon Sep 17 00:00:00 2001 From: Devdutt Shenoi Date: Wed, 19 Mar 2025 12:21:36 +0530 Subject: [PATCH] fix: datasets API edgecase where stream is not hottiered --- src/prism/logstream/mod.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/prism/logstream/mod.rs b/src/prism/logstream/mod.rs index e37db20e4..f1672f66e 100644 --- a/src/prism/logstream/mod.rs +++ b/src/prism/logstream/mod.rs @@ -24,7 +24,7 @@ use chrono::Utc; use http::StatusCode; use serde::{Deserialize, Serialize}; use serde_json::{json, Value}; -use tracing::{debug, warn}; +use tracing::{debug, error, warn}; use crate::{ handlers::http::{ @@ -45,6 +45,7 @@ use crate::{ arrow::record_batches_to_json, time::{TimeParseError, TimeRange}, }, + validator::error::HotTierValidationError, LOCK_EXPECT, }; @@ -273,10 +274,13 @@ impl PrismDatasetRequest { } = get_prism_logstream_info(stream).await?; let hottier = match HotTierManager::global() { - Some(hot_tier_manager) => { - let stats = hot_tier_manager.get_hot_tier(stream).await?; - Some(stats) - } + Some(manager) => match manager.get_hot_tier(stream).await { + Ok(stats) => Some(stats), + Err(HotTierError::HotTierValidationError( + HotTierValidationError::NotFound(_), + )) => None, + Err(err) => return Err(err.into()), + }, _ => None, }; let records = CountsRequest {