[pve-devel] [PATCH cluster] pvecm updatecerts: time out after 30 seconds

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Jul 2 16:34:10 CEST 2018


We call this in pve-cluster.service as ExecStartPost. We prefix it
with '-' to tell systemd that it should ignore non-zero exit codes,
but if the command hangs (e.g., on IO) systemd kills it after a
timeout (90 seconds default) which then doesn't get ignored and the
unit will also be put in failure state and stopped.
We specifically do not want this to happen, so wrap the updatecerts
call in run_with_timeout and give it a maximum of 30 seconds to
finish.

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
 data/PVE/CLI/pvecm.pm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/data/PVE/CLI/pvecm.pm b/data/PVE/CLI/pvecm.pm
index 3f0ac12..4a6e373 100755
--- a/data/PVE/CLI/pvecm.pm
+++ b/data/PVE/CLI/pvecm.pm
@@ -290,7 +290,9 @@ __PACKAGE__->register_method ({
     code => sub {
 	my ($param) = @_;
 
-	PVE::Cluster::updatecerts_and_ssh($param->@{qw(force silent)});
+	PVE::Tools::run_with_timeout(30, sub {
+	    PVE::Cluster::updatecerts_and_ssh($param->@{qw(force silent)});
+	});
 
 	return undef;
     }});
-- 
2.17.1





More information about the pve-devel mailing list