From 7c62a57e543c47d656bbade775aeb964e9c6b0b7 Mon Sep 17 00:00:00 2001 From: Patrick Insinger Date: Thu, 9 Sep 2021 15:53:55 -0700 Subject: [PATCH] initialize tenant_mgr after daemonizing Ran into problems launching the WAL redo process on OS X after 4b73ad. Launching the `initdb` process was met with "bad file descriptor" errors. Using dtrace, I found shortly after calling `posix_spawn` for `initdb`, `kevent` was returning this error. I haven't dug super deep to see if the daemonization itself is the problem, but this commit fixes it for me. My hunch is that some file descriptors used when the Tokio runtime is initailzed become invalid in the daemon process. --- pageserver/src/bin/pageserver.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pageserver/src/bin/pageserver.rs b/pageserver/src/bin/pageserver.rs index bf6cc90ece..1e6948daf1 100644 --- a/pageserver/src/bin/pageserver.rs +++ b/pageserver/src/bin/pageserver.rs @@ -294,9 +294,6 @@ fn start_pageserver(conf: &'static PageServerConf) -> Result<()> { ); let pageserver_listener = TcpListener::bind(conf.listen_addr.clone())?; - // Initialize tenant manager. - tenant_mgr::init(conf); - if conf.daemonize { info!("daemonizing..."); @@ -317,6 +314,9 @@ fn start_pageserver(conf: &'static PageServerConf) -> Result<()> { } } + // Initialize tenant manager. + tenant_mgr::init(conf); + // keep join handles for spawned threads let mut join_handles = vec![];