Fixes: #1415 do not block pvestatd when nfsd is stopped on the server side

Wrap the -d test with run_or_get_killed sub this test
can make pvestatd hang on I/O wait when a nfsd process is stopped

This might help with other file based storages, for instance
directory storages on unplugged USB devices.
This commit is contained in:
Emmanuel Kasper
2017-06-29 14:48:13 +02:00
committed by Wolfgang Bumiller
parent 67680141d7
commit e53050ed13

View File

@ -853,8 +853,13 @@ sub activate_storage {
die "storage definintion has no path\n" if !$path;
die "unable to activate storage '$storeid' - " .
"directory '$path' does not exist\n" if ! -d $path;
# this path test may hang indefinitely on unresponsive mounts
my $timeout = 2;
if (! PVE::Tools::run_fork_with_timeout($timeout, sub {-d $path})) {
die "unable to activate storage '$storeid' - " .
"directory '$path' does not exist or is unreachable\n";
}
return if defined($scfg->{mkdir}) && !$scfg->{mkdir};