mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-05-29 18:34:50 +00:00
wait for vm scopes to be gone
This should help with the rare case where stop mode backups fail to restart due to the $vmid.scope not being completely gone when we want to restart. This queries systemd via dbus, and if the scope is still there, awaits a UnitRemoved signal for the scope from dbus. For now with a 5 second timeout... (given that the processes are already gone and it's really just waiting for systemd to wake up, this should be plenty...) Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
71fc647ff9
commit
4f8cfa190a
@ -5335,12 +5335,13 @@ sub vm_start {
|
|||||||
|
|
||||||
PVE::Storage::activate_volumes($storecfg, $vollist);
|
PVE::Storage::activate_volumes($storecfg, $vollist);
|
||||||
|
|
||||||
if (-d "/sys/fs/cgroup/systemd/qemu.slice/$vmid.scope") {
|
eval {
|
||||||
eval {
|
run_command(['/bin/systemctl', 'stop', "$vmid.scope"],
|
||||||
run_command(['/bin/systemctl', 'stop', "$vmid.scope"],
|
outfunc => sub {}, errfunc => sub {});
|
||||||
outfunc => sub {}, errfunc => sub {});
|
};
|
||||||
};
|
# Issues with the above 'stop' not being fully completed are extremely rare, a very low
|
||||||
}
|
# timeout should be more than enough here...
|
||||||
|
PVE::Systemd::wait_for_unit_removed("$vmid.scope", 5);
|
||||||
|
|
||||||
my $cpuunits = defined($conf->{cpuunits}) ? $conf->{cpuunits}
|
my $cpuunits = defined($conf->{cpuunits}) ? $conf->{cpuunits}
|
||||||
: $defaults->{cpuunits};
|
: $defaults->{cpuunits};
|
||||||
|
Loading…
Reference in New Issue
Block a user