Skip to content

Commit fffee71

Browse files
committed
fix: err handling of main loop
1 parent 42a09e6 commit fffee71

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

geyser-plugin-runner/src/main.rs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ fn main() -> Result<(), Box<dyn Error>> {
2020
let file = std::fs::File::open(file_path)?;
2121
let reader = BufReader::with_capacity(8 * 1024 * 1024, file);
2222
let mut item_index = 0;
23-
23+
2424
// Track the latest processed block number
2525
let mut latest_processed_block_number: Option<u64> = None;
26-
26+
2727
// Wrap the main processing logic to catch errors and print block number
28-
let result = {
28+
let result: Result<(), Box<dyn Error>> = (|| {
2929
let mut reader = node::NodeReader::new(reader)?;
3030
let header = reader.read_raw_header()?;
3131
println!("Header bytes: {:?}", header);
@@ -67,7 +67,7 @@ fn main() -> Result<(), Box<dyn Error>> {
6767

6868
// Update the latest processed block number
6969
latest_processed_block_number = Some(block.slot);
70-
70+
7171
// println!("Slot: {:?}", block.slot);
7272
// println!("Raw node: {:?}", raw_node);
7373
let mut entry_index: usize = 0;
@@ -259,22 +259,27 @@ fn main() -> Result<(), Box<dyn Error>> {
259259
Ok(())
260260
})?;
261261
}
262-
};
263-
262+
})();
263+
264264
// If there was an error, print the latest processed block number before exiting
265265
if let Err(ref error) = result {
266266
match latest_processed_block_number {
267267
Some(block_num) => {
268-
eprintln!("ERROR: Failed to process node from file. Latest processed block number: {}", block_num);
268+
eprintln!(
269+
"ERROR: Failed to process node from file. Latest processed block number: {}",
270+
block_num
271+
);
269272
eprintln!("Error details: {}", error);
270273
}
271274
None => {
272275
eprintln!("ERROR: Failed to process node from file. No blocks were successfully processed yet.");
273276
eprintln!("Error details: {}", error);
274277
}
275278
}
279+
eprintln!("Sleeping for 30 seconds before exit...");
280+
std::thread::sleep(std::time::Duration::from_secs(30));
276281
}
277-
282+
278283
result
279284
}
280285

0 commit comments

Comments
 (0)