summary refs log tree commit diff
path: root/pkgs/tools/filesystems
diff options
context:
space:
mode:
authorNiklas Hambüchen <mail@nh2.me>2017-09-08 03:49:33 +0200
committerNiklas Hambüchen <mail@nh2.me>2017-09-08 04:29:13 +0200
commite7325f82a32cea8d7e6cfafff9e61e4468fd19dc (patch)
tree599e191733a76ae0cb562b3bd2893dc8385a8b18 /pkgs/tools/filesystems
parent8e329da496f8e7f3c5b95c721b7a95317f5854c4 (diff)
downloadnixlib-e7325f82a32cea8d7e6cfafff9e61e4468fd19dc.tar
nixlib-e7325f82a32cea8d7e6cfafff9e61e4468fd19dc.tar.gz
nixlib-e7325f82a32cea8d7e6cfafff9e61e4468fd19dc.tar.bz2
nixlib-e7325f82a32cea8d7e6cfafff9e61e4468fd19dc.tar.lz
nixlib-e7325f82a32cea8d7e6cfafff9e61e4468fd19dc.tar.xz
nixlib-e7325f82a32cea8d7e6cfafff9e61e4468fd19dc.tar.zst
nixlib-e7325f82a32cea8d7e6cfafff9e61e4468fd19dc.zip
glusterfs: Patch upstream bug preventing glusterfind from running.
See: https://bugzilla.redhat.com/show_bug.cgi?id=1489610

Also add patch to correctly log stderr from remote nodes
when glusterfind fails.
This, too, should be removed when fixed upstream.
Diffstat (limited to 'pkgs/tools/filesystems')
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix3
-rw-r--r--pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch27
-rw-r--r--pkgs/tools/filesystems/glusterfs/glusterfs-glusterfind-log-remote-node_cmd-error.patch49
3 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 2cba75860fe9..6d9cd33f86e2 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -73,6 +73,9 @@ rec {
     ./glusterfs-use-PATH-instead-of-hardcodes.patch
     ./glusterfs-fix-unsubstituted-autoconf-macros.patch
     ./glusterfs-python-remove-find_library.patch
+    # Remove when https://bugzilla.redhat.com/show_bug.cgi?id=1489610 is fixed
+    ./glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch
+    ./glusterfs-glusterfind-log-remote-node_cmd-error.patch
   ];
 
    # Note that the VERSION file is something that is present in release tarballs
diff --git a/pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch b/pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch
new file mode 100644
index 000000000000..8a3da0d6db76
--- /dev/null
+++ b/pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch
@@ -0,0 +1,27 @@
+From 965eb1e08e10ff82bb91d485dc24672acc7c72cf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
+Date: Fri, 8 Sep 2017 00:51:53 +0200
+Subject: [PATCH] Fix "glusterfind saves var data under $prefix instead of
+ localstatedir". Fixes #1489610
+
+Change-Id: I6d71297fb7a5a9d12cc3726b4a4ad94efcd644f9
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0c3a38689..d508fda71 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1057,7 +1057,7 @@ if test "x$prefix" = xNONE; then
+ 	prefix=$ac_default_prefix
+ fi
+ GLUSTERFS_LIBEXECDIR="$(eval echo $prefix)/libexec/glusterfs"
+-GLUSTERFSD_MISCDIR="$(eval echo $prefix)/var/lib/misc/glusterfsd"
++GLUSTERFSD_MISCDIR="$(eval echo $localstatedir)/var/lib/misc/glusterfsd"
+ prefix=$old_prefix
+ 
+ ### Dirty hacky stuff to make LOCALSTATEDIR work
+-- 
+2.12.0
+
diff --git a/pkgs/tools/filesystems/glusterfs/glusterfs-glusterfind-log-remote-node_cmd-error.patch b/pkgs/tools/filesystems/glusterfs/glusterfs-glusterfind-log-remote-node_cmd-error.patch
new file mode 100644
index 000000000000..8bc00fdbf75c
--- /dev/null
+++ b/pkgs/tools/filesystems/glusterfs/glusterfs-glusterfind-log-remote-node_cmd-error.patch
@@ -0,0 +1,49 @@
+From 92a6b84a37e7e2e0ec0655ca45cedb64ab72080e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
+Date: Fri, 8 Sep 2017 02:40:01 +0200
+Subject: [PATCH] glusterfind: Log remote stderr on `node_cmd` error.
+
+The problem of lost stderr was introduced in
+commit feea851fad4f89b48bfe89fe3b75250cc7bd6501.
+
+Change-Id: Ic98f9bc9682ae3bd9c3ebea3855667fc8ba2843d
+---
+ tools/glusterfind/src/main.py | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/tools/glusterfind/src/main.py b/tools/glusterfind/src/main.py
+index c125f970a..6fffce4b3 100644
+--- a/tools/glusterfind/src/main.py
++++ b/tools/glusterfind/src/main.py
+@@ -75,12 +75,27 @@ def node_cmd(host, host_uuid, task, cmd, args, opts):
+             cmd = ["ssh",
+                    "-oNumberOfPasswordPrompts=0",
+                    "-oStrictHostKeyChecking=no",
++                   # We force TTY allocation (-t -t) so that Ctrl+C is handed
++                   # through; see:
++                   #   https://bugzilla.redhat.com/show_bug.cgi?id=1382236
++                   # Note that this turns stderr of the remote `cmd`
++                   # into stdout locally.
+                    "-t",
+                    "-t",
+                    "-i", pem_key_path,
+                    "root@%s" % host] + cmd
+ 
+-        execute(cmd, exit_msg="%s - %s failed" % (host, task), logger=logger)
++        (returncode, err, out) = execute(cmd, logger=logger)
++        if returncode != 0:
++            # Because the `-t -t` above turns the remote stderr into
++            # local stdout, we need to log both stderr and stdout
++            # here to print all error messages.
++            fail("%s - %s failed; stdout (including remote stderr):\n"
++                 "%s\n"
++                 "stderr:\n"
++                 "%s" % (host, task, out, err),
++                 returncode,
++                 logger=logger)
+ 
+         if opts.get("copy_outfile", False) and not localdir:
+             cmd_copy = ["scp",
+-- 
+2.12.0
+