From 82b510b88bca638fea7959b4d2a858e381ccf227 Mon Sep 17 00:00:00 2001 From: Paul Masurel Date: Wed, 19 Feb 2025 17:19:28 +0900 Subject: [PATCH] Adding panic handler for the rayon merge thread pool --- src/indexer/segment_updater.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/indexer/segment_updater.rs b/src/indexer/segment_updater.rs index b2fa1d648..4583c62ed 100644 --- a/src/indexer/segment_updater.rs +++ b/src/indexer/segment_updater.rs @@ -287,6 +287,17 @@ impl SegmentUpdater { let merge_thread_pool = ThreadPoolBuilder::new() .thread_name(|i| format!("merge_thread_{i}")) .num_threads(num_merge_threads) + .panic_handler(move |panic| { + let message = if let Some(msg) = panic.downcast_ref::<&str>() { + *msg + } else if let Some(msg) = panic.downcast_ref::() { + msg.as_str() + } else { + "UNKNOWN" + }; + eprintln!("merge thread panicked with: {message}") + + }) .build() .map_err(|_| { crate::TantivyError::SystemError(