From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id BFCDB1FF171 for ; Fri, 29 Nov 2024 16:38:15 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id CCF3F1C54F; Fri, 29 Nov 2024 16:38:17 +0100 (CET) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Fri, 29 Nov 2024 16:37:44 +0100 Message-Id: <20241129153744.4128441-1-d.csapak@proxmox.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.016 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [server.rs] Subject: [pbs-devel] [PATCH proxmox] daemon: clean up middle process of double fork X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" so we don't leave around a zombie process when the old daemon still needs to run, because of e.g. a running task. Since this is mostly a cosmetic issue though, only try a clean up once, so we don't unnecessarily block or run into other issues here. (It could happen that it didn't exit at that point, but it's very unlikely.) Signed-off-by: Dominik Csapak --- maybe the comment could be improved, but i tried to be not overly verbose there, since it's not really an issue anyway proxmox-daemon/src/server.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/proxmox-daemon/src/server.rs b/proxmox-daemon/src/server.rs index efea9078..edc64795 100644 --- a/proxmox-daemon/src/server.rs +++ b/proxmox-daemon/src/server.rs @@ -165,10 +165,12 @@ impl Reloader { // No matter how we managed to get here, this is the time where we bail out quickly: unsafe { libc::_exit(-1) } } - Ok(ForkResult::Parent { child }) => { + Ok(ForkResult::Parent { + child: middle_child, + }) => { log::debug!( "forked off a new server (first pid: {}), waiting for 2nd pid", - child + middle_child ); std::mem::drop(pnew); let mut pold = std::fs::File::from(pold); @@ -211,6 +213,13 @@ impl Reloader { log::error!("child vanished during reload: {}", e); } + // try exactly once to get rid of the zombie process of middle_child, but + // non blocking and without error handling, since it's just cosmetic + let _ = nix::sys::wait::waitpid( + middle_child, + Some(nix::sys::wait::WaitPidFlag::WNOHANG), + ); + Ok(()) } Err(e) => { -- 2.39.5 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel