mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-13 16:32:56 +00:00
Exit pageserver process with correct error code
When we shutdown pageserver due to an error (e g one of th important thrads panicked) use 1 exit code so systemd can properly restart it
This commit is contained in:
committed by
Dmitry Rodionov
parent
9a396e1feb
commit
ad25736f3a
@@ -295,7 +295,7 @@ fn start_pageserver(conf: &'static PageServerConf, daemonize: bool) -> Result<()
|
||||
signal.name()
|
||||
);
|
||||
profiling::exit_profiler(conf, &profiler_guard);
|
||||
pageserver::shutdown_pageserver();
|
||||
pageserver::shutdown_pageserver(0);
|
||||
unreachable!()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -67,7 +67,7 @@ pub type RepositoryImpl = LayeredRepository;
|
||||
|
||||
pub type DatadirTimelineImpl = DatadirTimeline<RepositoryImpl>;
|
||||
|
||||
pub fn shutdown_pageserver() {
|
||||
pub fn shutdown_pageserver(exit_code: i32) {
|
||||
// Shut down the libpq endpoint thread. This prevents new connections from
|
||||
// being accepted.
|
||||
thread_mgr::shutdown_threads(Some(ThreadKind::LibpqEndpointListener), None, None);
|
||||
@@ -94,5 +94,5 @@ pub fn shutdown_pageserver() {
|
||||
thread_mgr::shutdown_threads(None, None, None);
|
||||
|
||||
info!("Shut down successfully completed");
|
||||
std::process::exit(0);
|
||||
std::process::exit(exit_code);
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@ fn thread_wrapper<F>(
|
||||
"Shutting down: thread '{}' exited with error: {:?}",
|
||||
thread_name, err
|
||||
);
|
||||
shutdown_pageserver();
|
||||
shutdown_pageserver(1);
|
||||
} else {
|
||||
error!("Thread '{}' exited with error: {:?}", thread_name, err);
|
||||
}
|
||||
@@ -241,7 +241,7 @@ fn thread_wrapper<F>(
|
||||
"Shutting down: thread '{}' panicked: {:?}",
|
||||
thread_name, err
|
||||
);
|
||||
shutdown_pageserver();
|
||||
shutdown_pageserver(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user