mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-10-24 20:46:27 +00:00
Introduce a new internal error type to categorize panics
This commit is contained in:
@@ -49,6 +49,8 @@ pub enum InternalError {
|
||||
InvalidDatabaseTyping,
|
||||
#[error(transparent)]
|
||||
RayonThreadPool(#[from] ThreadPoolBuildError),
|
||||
#[error("A panic occured. Read the logs to find more information about it.")]
|
||||
PanicInThreadPool,
|
||||
#[error(transparent)]
|
||||
SerdeJson(#[from] serde_json::Error),
|
||||
#[error(transparent)]
|
||||
|
||||
@@ -540,6 +540,11 @@ where
|
||||
Ok(())
|
||||
})?;
|
||||
|
||||
// While reseting the pool panic catcher we return an error if we catched one.
|
||||
if pool_catched_panic.swap(false, Ordering::SeqCst) {
|
||||
return Err(InternalError::PanicInThreadPool.into());
|
||||
}
|
||||
|
||||
// We write the field distribution into the main database
|
||||
self.index.put_field_distribution(self.wtxn, &field_distribution)?;
|
||||
|
||||
@@ -568,6 +573,11 @@ where
|
||||
}
|
||||
Result::Ok(())
|
||||
})?;
|
||||
|
||||
// While reseting the pool panic catcher we return an error if we catched one.
|
||||
if pool_catched_panic.swap(false, Ordering::SeqCst) {
|
||||
return Err(InternalError::PanicInThreadPool.into());
|
||||
}
|
||||
}
|
||||
|
||||
self.execute_prefix_databases(
|
||||
|
||||
Reference in New Issue
Block a user