[pve-devel] [PATCH v2 storage 2/2] RBD plugin: librados connect: increase timeout when in worker

Fiona Ebner f.ebner at proxmox.com
Fri Sep 2 09:33:07 CEST 2022


The default timeout in PVE/RADOS.pm is 5 seconds, but this is not
always enough for external clusters under load. Workers can and should
take their time to not fail here too quickly.

Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---

Changes from v1:
    * Add missing use statement. Was transitively used via e.g.
      PVE::RADOS, so it still worked, but let's be explicit about it.

 PVE/Storage/RBDPlugin.pm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/PVE/Storage/RBDPlugin.pm b/PVE/Storage/RBDPlugin.pm
index 0d6f596..d76d5d3 100644
--- a/PVE/Storage/RBDPlugin.pm
+++ b/PVE/Storage/RBDPlugin.pm
@@ -13,6 +13,7 @@ use PVE::Cluster qw(cfs_read_file);;
 use PVE::JSONSchema qw(get_standard_option);
 use PVE::ProcFSTools;
 use PVE::RADOS;
+use PVE::RPCEnvironment;
 use PVE::Storage::Plugin;
 use PVE::Tools qw(run_command trim file_read_firstline);
 
@@ -27,6 +28,9 @@ my $get_parent_image_name = sub {
 my $librados_connect = sub {
     my ($scfg, $storeid, $options) = @_;
 
+    $options->{timeout} = 60
+	if !defined($options->{timeout}) && PVE::RPCEnvironment->is_worker();
+
     my $librados_config = PVE::CephConfig::ceph_connect_option($scfg, $storeid, $options->%*);
 
     my $rados = PVE::RADOS->new(%$librados_config);
-- 
2.30.2






More information about the pve-devel mailing list