]> git.proxmox.com Git - pve-container.git/commitdiff
use monitor commands to freeze on pure-v2 setups
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Mon, 25 Jan 2021 11:05:32 +0000 (12:05 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 26 Jan 2021 17:26:12 +0000 (18:26 +0100)
even an explicit query for the 'unified' cgroup hierarchy
does not work on lxc when run in a pure v2 environment via
the kernel options

    systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all

so let's use the freeze commands provided by lxc we already
have code for...

See-also: https://forum.proxmox.com/threads/short-read-on-command-socket-error-when-running-backup-of-lxc-containers.82978/

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Tested-By: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-By: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PVE/LXC.pm

index 112bd0c7b0f537d8680979c24606ca1c7fd8984e..bae236b0a2a3ca2833791242f9ddb678493b3ed8 100644 (file)
@@ -2507,12 +2507,20 @@ sub get_lxc_version() {
 
 sub freeze($) {
     my ($vmid) = @_;
-    PVE::LXC::CGroup->new($vmid)->freeze_thaw(1);
+    if (PVE::CGroup::cgroup_mode() == 2) {
+       PVE::LXC::Command::freeze($vmid, 30);
+    } else {
+       PVE::LXC::CGroup->new($vmid)->freeze_thaw(1);
+    }
 }
 
 sub thaw($) {
     my ($vmid) = @_;
-    PVE::LXC::CGroup->new($vmid)->freeze_thaw(0);
+    if (PVE::CGroup::cgroup_mode() == 2) {
+       PVE::LXC::Command::unfreeze($vmid, 30);
+    } else {
+       PVE::LXC::CGroup->new($vmid)->freeze_thaw(0);
+    }
 }
 
 1;