mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-03 03:47:02 +02:00
Remove panics
This commit is contained in:
parent
3fc16c627d
commit
ef007d547d
3 changed files with 14 additions and 11 deletions
|
@ -100,7 +100,7 @@ pub struct EmbedderStatsView {
|
||||||
|
|
||||||
impl From<&EmbedderStats> for EmbedderStatsView {
|
impl From<&EmbedderStats> for EmbedderStatsView {
|
||||||
fn from(stats: &EmbedderStats) -> Self {
|
fn from(stats: &EmbedderStats) -> Self {
|
||||||
let errors = stats.errors.read().unwrap();
|
let errors = stats.errors.read().unwrap_or_else(|p| p.into_inner());
|
||||||
Self {
|
Self {
|
||||||
total_count: stats.total_count.load(std::sync::atomic::Ordering::Relaxed),
|
total_count: stats.total_count.load(std::sync::atomic::Ordering::Relaxed),
|
||||||
error_count: errors.1 as usize,
|
error_count: errors.1 as usize,
|
||||||
|
|
|
@ -30,7 +30,9 @@ pub struct EmbedderStats {
|
||||||
|
|
||||||
impl std::fmt::Debug for EmbedderStats {
|
impl std::fmt::Debug for EmbedderStats {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
let (error, count) = self.errors.read().unwrap().clone();
|
let guard = self.errors.read().unwrap_or_else(|p| p.into_inner());
|
||||||
|
let (error, count) = (guard.0.clone(), guard.1);
|
||||||
|
std::mem::drop(guard);
|
||||||
f.debug_struct("EmbedderStats")
|
f.debug_struct("EmbedderStats")
|
||||||
.field("last_error", &error)
|
.field("last_error", &error)
|
||||||
.field("total_count", &self.total_count.load(Ordering::Relaxed))
|
.field("total_count", &self.total_count.load(Ordering::Relaxed))
|
||||||
|
|
|
@ -335,10 +335,11 @@ where
|
||||||
Err(retry) => {
|
Err(retry) => {
|
||||||
tracing::warn!("Failed: {}", retry.error);
|
tracing::warn!("Failed: {}", retry.error);
|
||||||
if let Some(embedder_stats) = &embedder_stats {
|
if let Some(embedder_stats) = &embedder_stats {
|
||||||
if let Ok(mut errors) = embedder_stats.errors.write() {
|
let stringified_error = retry.error.to_string();
|
||||||
errors.0 = Some(retry.error.to_string());
|
let mut errors =
|
||||||
errors.1 += 1;
|
embedder_stats.errors.write().unwrap_or_else(|p| p.into_inner());
|
||||||
}
|
errors.0 = Some(stringified_error);
|
||||||
|
errors.1 += 1;
|
||||||
}
|
}
|
||||||
if let Some(deadline) = deadline {
|
if let Some(deadline) = deadline {
|
||||||
let now = std::time::Instant::now();
|
let now = std::time::Instant::now();
|
||||||
|
@ -377,11 +378,11 @@ where
|
||||||
Ok(response) => Ok(response),
|
Ok(response) => Ok(response),
|
||||||
Err(retry) => {
|
Err(retry) => {
|
||||||
if let Some(embedder_stats) = &embedder_stats {
|
if let Some(embedder_stats) = &embedder_stats {
|
||||||
if let Ok(mut errors) = embedder_stats.errors.write() {
|
let stringified_error = retry.error.to_string();
|
||||||
errors.0 = Some(retry.error.to_string());
|
let mut errors = embedder_stats.errors.write().unwrap_or_else(|p| p.into_inner());
|
||||||
errors.1 += 1;
|
errors.0 = Some(stringified_error);
|
||||||
}
|
errors.1 += 1;
|
||||||
}
|
};
|
||||||
Err(retry.into_error())
|
Err(retry.into_error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue