From 088cf824990ecefbc5045929a34455ebf1bd7e8a Mon Sep 17 00:00:00 2001 From: eskimor Date: Fri, 16 Dec 2022 13:56:33 +0100 Subject: [PATCH] Make sure errors get logged instead of silently dropped. --- node/overseer/src/lib.rs | 10 +++++++++- node/overseer/src/tests.rs | 14 +++++++------- node/service/src/lib.rs | 4 ++-- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/node/overseer/src/lib.rs b/node/overseer/src/lib.rs index 78d1e1fe7889..3497bc88c059 100644 --- a/node/overseer/src/lib.rs +++ b/node/overseer/src/lib.rs @@ -711,7 +711,15 @@ where } /// Run the `Overseer`. - pub async fn run(mut self) -> SubsystemResult<()> { + /// + /// Logging any errors. + pub async fn run(self) { + if let Err(err) = self.run_inner().await { + gum::error!(target: LOG_TARGET, ?err, "Overseer exited with error"); + } + } + + async fn run_inner(mut self) -> SubsystemResult<()> { let metrics = self.metrics.clone(); spawn_metronome_metrics(&mut self, metrics)?; diff --git a/node/overseer/src/tests.rs b/node/overseer/src/tests.rs index dee4c7cbbba9..ca84f033b599 100644 --- a/node/overseer/src/tests.rs +++ b/node/overseer/src/tests.rs @@ -241,7 +241,7 @@ fn overseer_metrics_work() { .unwrap(); let mut handle = Handle::new(handle); - let overseer_fut = overseer.run().fuse(); + let overseer_fut = overseer.run_inner().fuse(); pin_mut!(overseer_fut); @@ -302,7 +302,7 @@ fn overseer_ends_on_subsystem_exit() { .build() .unwrap(); - overseer.run().await.unwrap(); + overseer.run_inner().await.unwrap(); }) } @@ -400,7 +400,7 @@ fn overseer_start_stop_works() { .unwrap(); let mut handle = Handle::new(handle); - let overseer_fut = overseer.run().fuse(); + let overseer_fut = overseer.run_inner().fuse(); pin_mut!(overseer_fut); let mut ss5_results = Vec::new(); @@ -499,7 +499,7 @@ fn overseer_finalize_works() { .unwrap(); let mut handle = Handle::new(handle); - let overseer_fut = overseer.run().fuse(); + let overseer_fut = overseer.run_inner().fuse(); pin_mut!(overseer_fut); let mut ss5_results = Vec::new(); @@ -595,7 +595,7 @@ fn overseer_finalize_leaf_preserves_it() { .unwrap(); let mut handle = Handle::new(handle); - let overseer_fut = overseer.run().fuse(); + let overseer_fut = overseer.run_inner().fuse(); pin_mut!(overseer_fut); let mut ss5_results = Vec::new(); @@ -684,7 +684,7 @@ fn do_not_send_empty_leaves_update_on_block_finalization() { let mut handle = Handle::new(handle); - let overseer_fut = overseer.run().fuse(); + let overseer_fut = overseer.run_inner().fuse(); pin_mut!(overseer_fut); let mut ss5_results = Vec::new(); @@ -947,7 +947,7 @@ fn overseer_all_subsystems_receive_signals_and_messages() { .unwrap(); let mut handle = Handle::new(handle); - let overseer_fut = overseer.run().fuse(); + let overseer_fut = overseer.run_inner().fuse(); pin_mut!(overseer_fut); diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index 4252474a68f5..76be6c2d6f36 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -1112,8 +1112,8 @@ where pin_mut!(forward); select! { - _ = forward => (), - _ = overseer_fut => (), + () = forward => (), + () = overseer_fut => (), complete => (), } }),