summary refs log tree commit diff
diff options
context:
space:
mode:
authorMolly Miller <mm@flyingcircus.io>2023-10-06 10:34:54 +0200
committerAlyssa Ross <hi@alyssa.is>2023-10-12 10:39:18 +0000
commit1a794a3e4b28c311a39449198a304a0dbed9cc00 (patch)
treebffe71efca222c47b39e4c4408e08df607948845
parent6ebe8cd15053d4545eca5b82588b6318fcfb2f23 (diff)
downloadnixpkgs-1a794a3e4b28c311a39449198a304a0dbed9cc00.tar
nixpkgs-1a794a3e4b28c311a39449198a304a0dbed9cc00.tar.gz
nixpkgs-1a794a3e4b28c311a39449198a304a0dbed9cc00.tar.bz2
nixpkgs-1a794a3e4b28c311a39449198a304a0dbed9cc00.tar.lz
nixpkgs-1a794a3e4b28c311a39449198a304a0dbed9cc00.tar.xz
nixpkgs-1a794a3e4b28c311a39449198a304a0dbed9cc00.tar.zst
nixpkgs-1a794a3e4b28c311a39449198a304a0dbed9cc00.zip
nixos/mailman: store locks in ephemeral runtime directory
nixosTests.mailman: test mailman master lock handling
-rw-r--r--nixos/modules/services/mail/mailman.nix2
-rw-r--r--nixos/tests/mailman.nix6
2 files changed, 7 insertions, 1 deletions
diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix
index ec2a19f58bb..a61c45a43bb 100644
--- a/nixos/modules/services/mail/mailman.nix
+++ b/nixos/modules/services/mail/mailman.nix
@@ -314,7 +314,7 @@ in {
         queue_dir = "$var_dir/queue";
         template_dir = "$var_dir/templates";
         log_dir = "/var/log/mailman";
-        lock_dir = "$var_dir/lock";
+        lock_dir = "/run/mailman/lock";
         etc_dir = "/etc";
         pid_file = "/run/mailman/master.pid";
       };
diff --git a/nixos/tests/mailman.nix b/nixos/tests/mailman.nix
index 2806e9166d9..f9b43861a12 100644
--- a/nixos/tests/mailman.nix
+++ b/nixos/tests/mailman.nix
@@ -63,5 +63,11 @@ import ./make-test-python.nix {
         wait_for_api()
         machine.succeed("curl --fail-with-body -sLSu restadmin:secretpassword http://localhost:8001/3.1/domains")
         machine.succeed("curl --fail-with-body -sILS http://localhost/")
+
+    with subtest("service locking"):
+        machine.fail("su -s /bin/sh -c 'mailman start' mailman")
+        machine.execute("systemctl kill --signal=SIGKILL mailman")
+        machine.succeed("systemctl restart mailman")
+        wait_for_api()
   '';
 }