summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorNiklas Hambüchen <mail@nh2.me>2017-12-29 22:54:50 +0100
committerNiklas Hambüchen <mail@nh2.me>2018-11-04 11:09:30 +0100
commit92f40bab2b9a437cdfb1f8fedd500699b5eda92b (patch)
tree603ca6264beafb0e9ba6ec7d805ad245226ad1e0 /nixos
parent3fc7d5eb83804e10ae55b1ae9b102f88b1ea2b08 (diff)
downloadnixpkgs-92f40bab2b9a437cdfb1f8fedd500699b5eda92b.tar
nixpkgs-92f40bab2b9a437cdfb1f8fedd500699b5eda92b.tar.gz
nixpkgs-92f40bab2b9a437cdfb1f8fedd500699b5eda92b.tar.bz2
nixpkgs-92f40bab2b9a437cdfb1f8fedd500699b5eda92b.tar.lz
nixpkgs-92f40bab2b9a437cdfb1f8fedd500699b5eda92b.tar.xz
nixpkgs-92f40bab2b9a437cdfb1f8fedd500699b5eda92b.tar.zst
nixpkgs-92f40bab2b9a437cdfb1f8fedd500699b5eda92b.zip
glusterfs service: Switch to simple unit instead of forking.
Gluster's pidfile handling is bug-ridden.

I have fixed https://bugzilla.redhat.com/show_bug.cgi?id=1509340
in an attempt to improve it but that is far from enough.

The gluster developers describe another pidfile issue as
"our brick-process management is a total nightmare", see
https://github.com/gluster/glusterfs/blob/f1071f17e02502c24375c0b480d369d37f4e4054/xlators/mgmt/glusterd/src/glusterd-utils.c#L5907-L5924

I have observed multiple cases where glusterd doesn't start correctly
and systemd doesn't notice because of the erroneous pidfile handling.

To improve the situation, we don't let glusterd daemonize itself any more
and instead use `--no-daemon` and the `Simple` service type.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/network-filesystems/glusterfs.nix4
1 files changed, 1 insertions, 3 deletions
diff --git a/nixos/modules/services/network-filesystems/glusterfs.nix b/nixos/modules/services/network-filesystems/glusterfs.nix
index 8ac9f801dcb..5be10535f5b 100644
--- a/nixos/modules/services/network-filesystems/glusterfs.nix
+++ b/nixos/modules/services/network-filesystems/glusterfs.nix
@@ -176,10 +176,8 @@ in
       '';
 
       serviceConfig = {
-        Type="forking";
-        PIDFile="/run/glusterd.pid";
         LimitNOFILE=65536;
-        ExecStart="${glusterfs}/sbin/glusterd -p /run/glusterd.pid --log-level=${cfg.logLevel} ${toString cfg.extraFlags}";
+        ExecStart="${glusterfs}/sbin/glusterd --no-daemon --log-level=${cfg.logLevel} ${toString cfg.extraFlags}";
         KillMode=cfg.killMode;
         TimeoutStopSec=cfg.stopKillTimeout;
       };