mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-31 16:06:31 +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