From 9b47ad6682fbf3ba3c6ce006a54440e0126fdf04 Mon Sep 17 00:00:00 2001 From: Mikaela Allan Date: Tue, 16 May 2023 10:34:06 -0400 Subject: [PATCH 1/2] nixos/config/swap: check failure in swap file test --- nixos/tests/swap-file-btrfs.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/tests/swap-file-btrfs.nix b/nixos/tests/swap-file-btrfs.nix index d9fcd2be1160..35b9fb4fa50a 100644 --- a/nixos/tests/swap-file-btrfs.nix +++ b/nixos/tests/swap-file-btrfs.nix @@ -32,6 +32,8 @@ import ./make-test-python.nix ({ lib, ... }: testScript = '' machine.wait_for_unit('var-swapfile.swap') + # Ensure the swap file creation script ran to completion without failing when creating the swap file + machine.fail("systemctl is-failed --quiet mkswap-var-swapfile.service") machine.succeed("stat --file-system --format=%T /var/swapfile | grep btrfs") # First run. Auto creation. machine.succeed("swapon --show | grep /var/swapfile") @@ -41,6 +43,8 @@ import ./make-test-python.nix ({ lib, ... }: # Second run. Use it as-is. machine.wait_for_unit('var-swapfile.swap') + # Ensure the swap file creation script ran to completion without failing when the swap file already exists + machine.fail("systemctl is-failed --quiet mkswap-var-swapfile.service") machine.succeed("swapon --show | grep /var/swapfile") ''; }) From 4101d3b56fed568b8ec52046f13bd57c9ba266f9 Mon Sep 17 00:00:00 2001 From: Mikaela Allan Date: Tue, 16 May 2023 09:32:53 -0400 Subject: [PATCH 2/2] nixos/config/swap: resolve swapfile issue !232229 --- nixos/modules/config/swap.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/nixos/modules/config/swap.nix b/nixos/modules/config/swap.nix index 5c812a9226e8..0a7e45bffb26 100644 --- a/nixos/modules/config/swap.nix +++ b/nixos/modules/config/swap.nix @@ -275,12 +275,11 @@ in ''} ${optionalString sw.randomEncryption.enable '' cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} \ - '' + concatMapStrings (arg: arg + " \\\n") (flatten [ - (optional (sw.randomEncryption.sectorSize != null) "--sector-size=${toString sw.randomEncryption.sectorSize}") - (optional (sw.randomEncryption.keySize != null) "--key-size=${toString sw.randomEncryption.keySize}") - (optional sw.randomEncryption.allowDiscards "--allow-discards") - ]) + '' - ${sw.device} ${sw.deviceName} + ${concatStringsSep " \\\n" (flatten [ + (optional (sw.randomEncryption.sectorSize != null) "--sector-size=${toString sw.randomEncryption.sectorSize}") + (optional (sw.randomEncryption.keySize != null) "--key-size=${toString sw.randomEncryption.keySize}") + (optional sw.randomEncryption.allowDiscards "--allow-discards") + ])} ${sw.device} ${sw.deviceName} mkswap ${sw.realDevice} ''} '';