diff --git a/src/cli/run.rs b/src/cli/run.rs index 333af4c23621ea4f41131f23290b7ed55cf32eef..258c8d6c656a3aca288316e93cf30c2f79989bd4 100644 --- a/src/cli/run.rs +++ b/src/cli/run.rs @@ -119,6 +119,11 @@ pub fn main(args: args::Run) -> ! { }) .start_non_joinable()?; + std::panic::set_hook(Box::new(|info| { + println!("Panic occurred, exiting: {}", info); + std::process::exit(1); + })); + // Note that we don't really need to pass the `config` here, // because it's stored in the global variable which we can // access from anywhere. But we still pass it explicitly just diff --git a/src/lib.rs b/src/lib.rs index 041fceac91eb6792421eebfee74148b6d8667441..4d20b3f285139eb2e3a9a5044fdcb0fded8cfceb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -342,7 +342,7 @@ fn redirect_interactive_sql() { .expect("overriding sql executor shouldn't fail") } -/// Sets a check that will performed when a user is logging in +/// Sets a check that will be performed when a user is logging in /// Checks for user exceeding maximum number of login attempts and if user was blocked. /// /// Also see [`storage::PropertyName::MaxLoginAttempts`]. @@ -691,10 +691,9 @@ fn start_discover( return Ok(()); } - // Start listenning only after we've checked if this is a restart. - // Postjoin phase has it's own idea of when to start listenning. - tarantool::set_cfg_field("listen", config.instance.listen().to_host_port()) - .expect("setting listen port shouldn't fail"); + // Start listening only after we've checked if this is a restart. + // Postjoin phase has its own idea of when to start listening. + tarantool::set_cfg_field("listen", config.instance.listen().to_host_port())?; let role = discovery::wait_global(); match role {