@@ -459,7 +459,10 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
459459 Arc :: clone( & gossip_sync_store) ,
460460 Arc :: clone( & gossip_sync_logger) ,
461461 )
462- . expect( "Persistence failed" ) ;
462+ . unwrap_or_else( |e| {
463+ log_error!( gossip_sync_logger, "Persistence failed: {}" , e) ;
464+ panic!( "Persistence failed" ) ;
465+ } ) ;
463466 }
464467 Err ( e) => log_error!(
465468 gossip_sync_logger,
@@ -478,6 +481,7 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
478481 let peer_manager_connection_handler = Arc :: clone ( & self . peer_manager ) ;
479482 let mut stop_listen = self . stop_receiver . clone ( ) ;
480483 let listening_address = listening_address. clone ( ) ;
484+ let listening_logger = Arc :: clone ( & self . logger ) ;
481485
482486 let bind_addr = listening_address
483487 . to_socket_addrs ( )
@@ -501,9 +505,14 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
501505
502506 runtime. spawn ( async move {
503507 let listener =
504- tokio:: net:: TcpListener :: bind ( bind_addr) . await . expect (
505- "Failed to bind to listen address/port - is something else already listening on it?" ,
506- ) ;
508+ tokio:: net:: TcpListener :: bind ( bind_addr) . await
509+ . unwrap_or_else ( |e| {
510+ log_error ! ( listening_logger, "Failed to bind to listen address/port - is something else already listening on it?: {}" , e) ;
511+ panic ! (
512+ "Failed to bind to listen address/port - is something else already listening on it?" ,
513+ ) ;
514+ } ) ;
515+
507516 loop {
508517 let peer_mgr = Arc :: clone ( & peer_manager_connection_handler) ;
509518 tokio:: select! {
@@ -614,7 +623,10 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
614623
615624 let unix_time_secs = SystemTime :: now( ) . duration_since( SystemTime :: UNIX_EPOCH ) . unwrap( ) . as_secs( ) ;
616625 io:: utils:: write_latest_node_ann_bcast_timestamp( unix_time_secs, Arc :: clone( & bcast_store) , Arc :: clone( & bcast_logger) )
617- . expect( "Persistence failed" ) ;
626+ . unwrap_or_else( |e| {
627+ log_error!( bcast_logger, "Persistence failed: {}" , e) ;
628+ panic!( "Persistence failed" ) ;
629+ } ) ;
618630 }
619631 }
620632 }
@@ -640,6 +652,7 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
640652 let background_gossip_sync = self . gossip_source . as_gossip_sync ( ) ;
641653 let background_peer_man = Arc :: clone ( & self . peer_manager ) ;
642654 let background_logger = Arc :: clone ( & self . logger ) ;
655+ let background_error_logger = Arc :: clone ( & self . logger ) ;
643656 let background_scorer = Arc :: clone ( & self . scorer ) ;
644657 let stop_bp = self . stop_receiver . clone ( ) ;
645658 let sleeper = move |d| {
@@ -670,7 +683,10 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
670683 true ,
671684 )
672685 . await
673- . expect ( "Failed to process events" ) ;
686+ . unwrap_or_else ( |e| {
687+ log_error ! ( background_error_logger, "Failed to process events: {}" , e) ;
688+ panic ! ( "Failed to process events" ) ;
689+ } ) ;
674690 } ) ;
675691
676692 * runtime_lock = Some ( runtime) ;
@@ -731,9 +747,14 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
731747 ///
732748 /// **Note:** This **MUST** be called after each event has been handled.
733749 pub fn event_handled ( & self ) {
734- self . event_queue
735- . event_handled ( )
736- . expect ( "Couldn't mark event handled due to persistence failure" ) ;
750+ self . event_queue . event_handled ( ) . unwrap_or_else ( |e| {
751+ log_error ! (
752+ self . logger,
753+ "Couldn't mark event handled due to persistence failure: {}" ,
754+ e
755+ ) ;
756+ panic ! ( "Couldn't mark event handled due to persistence failure" ) ;
757+ } ) ;
737758 }
738759
739760 /// Returns our own node id
0 commit comments