@@ -461,7 +461,10 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
461461 Arc :: clone( & gossip_sync_store) ,
462462 Arc :: clone( & gossip_sync_logger) ,
463463 )
464- . expect( "Persistence failed" ) ;
464+ . unwrap_or_else( |e| {
465+ log_error!( gossip_sync_logger, "Persistence failed: {}" , e) ;
466+ panic!( "Persistence failed" ) ;
467+ } ) ;
465468 }
466469 Err ( e) => log_error!(
467470 gossip_sync_logger,
@@ -480,6 +483,7 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
480483 let peer_manager_connection_handler = Arc :: clone ( & self . peer_manager ) ;
481484 let mut stop_listen = self . stop_receiver . clone ( ) ;
482485 let listening_address = listening_address. clone ( ) ;
486+ let listening_logger = Arc :: clone ( & self . logger ) ;
483487
484488 let bind_addr = listening_address
485489 . to_socket_addrs ( )
@@ -503,9 +507,14 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
503507
504508 runtime. spawn ( async move {
505509 let listener =
506- tokio:: net:: TcpListener :: bind ( bind_addr) . await . expect (
507- "Failed to bind to listen address/port - is something else already listening on it?" ,
508- ) ;
510+ tokio:: net:: TcpListener :: bind ( bind_addr) . await
511+ . unwrap_or_else ( |e| {
512+ log_error ! ( listening_logger, "Failed to bind to listen address/port - is something else already listening on it?: {}" , e) ;
513+ panic ! (
514+ "Failed to bind to listen address/port - is something else already listening on it?" ,
515+ ) ;
516+ } ) ;
517+
509518 loop {
510519 let peer_mgr = Arc :: clone ( & peer_manager_connection_handler) ;
511520 tokio:: select! {
@@ -616,7 +625,10 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
616625
617626 let unix_time_secs = SystemTime :: now( ) . duration_since( SystemTime :: UNIX_EPOCH ) . unwrap( ) . as_secs( ) ;
618627 io:: utils:: write_latest_node_ann_bcast_timestamp( unix_time_secs, Arc :: clone( & bcast_store) , Arc :: clone( & bcast_logger) )
619- . expect( "Persistence failed" ) ;
628+ . unwrap_or_else( |e| {
629+ log_error!( bcast_logger, "Persistence failed: {}" , e) ;
630+ panic!( "Persistence failed" ) ;
631+ } ) ;
620632 }
621633 }
622634 }
@@ -642,6 +654,7 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
642654 let background_gossip_sync = self . gossip_source . as_gossip_sync ( ) ;
643655 let background_peer_man = Arc :: clone ( & self . peer_manager ) ;
644656 let background_logger = Arc :: clone ( & self . logger ) ;
657+ let background_error_logger = Arc :: clone ( & self . logger ) ;
645658 let background_scorer = Arc :: clone ( & self . scorer ) ;
646659 let stop_bp = self . stop_receiver . clone ( ) ;
647660 let sleeper = move |d| {
@@ -672,7 +685,10 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
672685 true ,
673686 )
674687 . await
675- . expect ( "Failed to process events" ) ;
688+ . unwrap_or_else ( |e| {
689+ log_error ! ( background_error_logger, "Failed to process events: {}" , e) ;
690+ panic ! ( "Failed to process events" ) ;
691+ } ) ;
676692 } ) ;
677693
678694 * runtime_lock = Some ( runtime) ;
@@ -733,9 +749,14 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
733749 ///
734750 /// **Note:** This **MUST** be called after each event has been handled.
735751 pub fn event_handled ( & self ) {
736- self . event_queue
737- . event_handled ( )
738- . expect ( "Couldn't mark event handled due to persistence failure" ) ;
752+ self . event_queue . event_handled ( ) . unwrap_or_else ( |e| {
753+ log_error ! (
754+ self . logger,
755+ "Couldn't mark event handled due to persistence failure: {}" ,
756+ e
757+ ) ;
758+ panic ! ( "Couldn't mark event handled due to persistence failure" ) ;
759+ } ) ;
739760 }
740761
741762 /// Returns our own node id
0 commit comments