** Description changed:

+ [Impact]
+ Encrypted swap partitions may not load correctly with ZFS root, due to 
ordering cycle on zfs-mount.service.
+ 
+ [Test Plan]
+ 1. Install Ubuntu 20.04 using ZFS-on-root
+ 2. Add encrypted partition to /etc/crypttab:
+    swap    /dev/nvme0n1p1  /dev/urandom    
swap,cipher=aes-xts-plain64,size=256
+ 3. Add swap partition to /etc/fstab:
+    /dev/mapper/swap        none    swap    sw      0 0
+ 4. Reboot and check whether swap has loaded correctly, and whether boot logs 
show ordering cycle:
+ [    6.638228] systemd[1]: systemd-random-seed.service: Found ordering cycle 
on zfs-mount.service/start
+ [    6.639418] systemd[1]: systemd-random-seed.service: Found dependency on 
zfs-import.target/start
+ [    6.640474] systemd[1]: systemd-random-seed.service: Found dependency on 
zfs-import-cache.service/start
+ [    6.641637] systemd[1]: systemd-random-seed.service: Found dependency on 
cryptsetup.target/start
+ [    6.642734] systemd[1]: systemd-random-seed.service: Found dependency on 
systemd-cryptsetup@swap.service/start
+ [    6.643951] systemd[1]: systemd-random-seed.service: Found dependency on 
systemd-random-seed.service/start
+ [    6.645098] systemd[1]: systemd-random-seed.service: Job 
zfs-mount.service/start deleted to break ordering cycle starting with 
systemd-random-seed.service/start
+ [ SKIP ] Ordering cycle found, skipping Mount ZFS filesystems
+ 
+ [Where problems could occur]
+ Since we're changing the zfs-mount-generator service, regressions could show 
up during mounting of ZFS partitions. We should thoroughly test different 
scenarios of ZFS such as ZFS-on-root, separate ZFS partitions and the presence 
of swap, to make sure all partitions are mounted correctly and no ordering 
cycles are present.
+ 
+ [Other Info]
+ This has been fixed upstream by the following commits:
+ * ec41cafee1da Fix a dependency loop [0]
+ * 62663fb7ec19 Fix another dependency loop [1]
+ 
+ The patches above have been introduced in version 2.1.0, with upstream
+ backports to zfs-2.0. In Ubuntu, it's present in Groovy and later
+ releases, so it's still needed in Focal.
+ 
+ $ rmadison -a source zfs-linux
+  zfs-linux | 0.8.3-1ubuntu12    | focal           | source
+  zfs-linux | 0.8.3-1ubuntu12.9  | focal-security  | source
+  zfs-linux | 0.8.3-1ubuntu12.10 | focal-updates   | source
+  zfs-linux | 0.8.4-1ubuntu11    | groovy          | source
+  zfs-linux | 0.8.4-1ubuntu11.2  | groovy-updates  | source
+  zfs-linux | 2.0.2-1ubuntu5     | hirsute         | source
+  zfs-linux | 2.0.3-8ubuntu5     | impish          | source
+ 
+ [0] https://github.com/openzfs/zfs/commit/ec41cafee1da
+ [1] https://github.com/openzfs/zfs/commit/62663fb7ec19
+ 
+ ORIGINAL DESCRIPTION
+ ====================
+ 
  root@eu1:/var/log# lsb_release -a
  No LSB modules are available.
  Distributor ID:       Ubuntu
  Description:  Ubuntu 20.04 LTS
  Release:      20.04
  Codename:     focal
  
  root@eu1:/var/log# apt-cache policy cryptsetup
  cryptsetup:
-   Installed: (none)
-   Candidate: 2:2.2.2-3ubuntu2
-   Version table:
-      2:2.2.2-3ubuntu2 500
-         500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
+   Installed: (none)
+   Candidate: 2:2.2.2-3ubuntu2
+   Version table:
+      2:2.2.2-3ubuntu2 500
+         500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
  
  OTHER BACKGROUND INFO:
  ======================
  
  1. machine has 2 drives. each drive is partitioned into 2 partitions,
  zfs and swap
  
+ 2. Ubuntu 20.04 installed on ZFS root using debootstrap
+ (debootstrap_1.0.118ubuntu1_all)
  
- 2. Ubuntu 20.04 installed on ZFS root using debootstrap 
(debootstrap_1.0.118ubuntu1_all)
- 
- 
- 3. The ZFS root pool is a 2 partition mirror (the first partition of each 
disk)
- 
+ 3. The ZFS root pool is a 2 partition mirror (the first partition of
+ each disk)
  
  4. /etc/crypttab is set up as follows:
  
  swap      
/dev/disk/by-id/nvme-SAMSUNG_MZVLB1T0HALR-00000_S3W6NX0M802914-part2    
/dev/urandom   swap,cipher=aes-xts-plain64,size=256
  swap      
/dev/disk/by-id/nvme-SAMSUNG_MZVLB1T0HALR-00000_S3W6NX0M802933-part2    
/dev/urandom   swap,cipher=aes-xts-plain64,size=256
- 
- 
  
  WHAT I EXPECTED
  ===============
  
  I expected machine would reboot and have encrypted swap that used two
  devices under /dev/mapper
  
- 
  WHAT HAPPENED INSTEAD
  =====================
  
- 
- On reboot, swap setup fails with the following messages in /var/log/syslog:
+ On reboot, swap setup fails with the following messages in
+ /var/log/syslog:
  
  Apr 28 17:13:01 eu1 kernel: [    5.360793] systemd[1]: cryptsetup.target: 
Found ordering cycle on systemd-cryptsetup@swap.service/start
  Apr 28 17:13:01 eu1 kernel: [    5.360795] systemd[1]: cryptsetup.target: 
Found dependency on systemd-random-seed.service/start
  Apr 28 17:13:01 eu1 kernel: [    5.360796] systemd[1]: cryptsetup.target: 
Found dependency on zfs-mount.service/start
  Apr 28 17:13:01 eu1 kernel: [    5.360797] systemd[1]: cryptsetup.target: 
Found dependency on zfs-load-module.service/start
  Apr 28 17:13:01 eu1 kernel: [    5.360798] systemd[1]: cryptsetup.target: 
Found dependency on cryptsetup.target/start
  Apr 28 17:13:01 eu1 kernel: [    5.360799] systemd[1]: cryptsetup.target: Job 
systemd-cryptsetup@swap.service/start deleted to break ordering cycle starting 
with cryptsetup.target/start
  . . . . . .
  Apr 28 17:13:01 eu1 kernel: [    5.361082] systemd[1]: Unnecessary job for 
/dev/disk/by-id/nvme-SAMSUNG_MZVLB1T0HALR-00000_S3W6NX0M802914-part2 was removed
  
- 
  Also, /dev/mapper does not contain any swap devices:
  
  root@eu1:/var/log# ls -l /dev/mapper
  total 0
  crw------- 1 root root 10, 236 Apr 28 17:13 control
  root@eu1:/var/log#
  
- 
  And top shows no swap:
  
  MiB Swap:      0.0 total,      0.0 free,      0.0 used.  63153.6 avail
  Mem

** Patch added: "lp1875577-focal.debdiff"
   
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1875577/+attachment/5510557/+files/lp1875577-focal.debdiff

** Changed in: zfs-linux (Ubuntu Focal)
       Status: Confirmed => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1875577

Title:
  Encrypted swap won't load on 20.04 with zfs root

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1875577/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to