autobuild v6.0-23
Resolves: bz#1344758 bz#1599802 bz#1685406 bz#1686800 bz#1724021 Resolves: bz#1726058 bz#1727755 bz#1731513 bz#1741193 bz#1758923 Resolves: bz#1761326 bz#1761486 bz#1762180 bz#1764095 bz#1766640 Signed-off-by: Rinku Kothiya <rkothiya@redhat.com>
This commit is contained in:
parent
620a383c4b
commit
6e04ab4906
52
0315-geo-rep-Fix-py2-py3-compatibility-in-repce.patch
Normal file
52
0315-geo-rep-Fix-py2-py3-compatibility-in-repce.patch
Normal file
@ -0,0 +1,52 @@
|
||||
From 4a04e1b5540921db22f1894f71eb30342127192d Mon Sep 17 00:00:00 2001
|
||||
From: Kotresh HR <khiremat@redhat.com>
|
||||
Date: Tue, 12 Nov 2019 21:53:20 +0530
|
||||
Subject: [PATCH 315/316] geo-rep: Fix py2/py3 compatibility in repce
|
||||
|
||||
Geo-rep fails to start on python2 only machine like
|
||||
centos6. It fails with "ImportError no module named _io".
|
||||
This patch fixes the same.
|
||||
|
||||
Backport of:
|
||||
> Patch: https://review.gluster.org/23702
|
||||
> fixes: bz#1771577
|
||||
> Change-Id: I8228458a853a230546f9faf29a0e9e0f23b3efec
|
||||
> Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||
|
||||
BUG: 1771524
|
||||
Change-Id: I8228458a853a230546f9faf29a0e9e0f23b3efec
|
||||
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185377
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunny Kumar <sunkumar@redhat.com>
|
||||
---
|
||||
geo-replication/syncdaemon/repce.py | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/geo-replication/syncdaemon/repce.py b/geo-replication/syncdaemon/repce.py
|
||||
index 6065b82..c622afa 100644
|
||||
--- a/geo-replication/syncdaemon/repce.py
|
||||
+++ b/geo-replication/syncdaemon/repce.py
|
||||
@@ -8,7 +8,6 @@
|
||||
# cases as published by the Free Software Foundation.
|
||||
#
|
||||
|
||||
-import _io
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
@@ -58,9 +57,9 @@ def recv(inf):
|
||||
"""load an object from input stream
|
||||
python2 and python3 compatibility, inf is sys.stdin
|
||||
and is opened as text stream by default. Hence using the
|
||||
- buffer attribute
|
||||
+ buffer attribute in python3
|
||||
"""
|
||||
- if isinstance(inf, _io.TextIOWrapper):
|
||||
+ if hasattr(inf, "buffer"):
|
||||
return pickle.load(inf.buffer)
|
||||
else:
|
||||
return pickle.load(inf)
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,51 @@
|
||||
From b9a19aef5de94eb91162448ad687f2d2d194f82c Mon Sep 17 00:00:00 2001
|
||||
From: Rinku Kothiya <rkothiya@redhat.com>
|
||||
Date: Thu, 14 Nov 2019 09:55:15 +0000
|
||||
Subject: [PATCH 316/316] spec: fixed python-prettytable dependency for rhel6
|
||||
|
||||
Installing glusterfs on rhel6 was failing with python-prettytable
|
||||
dependency as it required python2-prettytable for glusterfs-events.
|
||||
This patch conditionally sets the python version for rhel7 and
|
||||
fixes the problem.
|
||||
|
||||
Label: DOWNSTREAM ONLY
|
||||
|
||||
BUG: 1771614
|
||||
|
||||
Change-Id: I6288daa5d8c2d82a6d73a0d9722786a2a99b9db5
|
||||
fixes: bz#1771614
|
||||
Signed-off-by: Rinku Kothiya <rkothiya@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185385
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
glusterfs.spec.in | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/glusterfs.spec.in b/glusterfs.spec.in
|
||||
index 3c2e2dc..eeadb65 100644
|
||||
--- a/glusterfs.spec.in
|
||||
+++ b/glusterfs.spec.in
|
||||
@@ -706,7 +706,7 @@ This package provides the translators needed on any GlusterFS client.
|
||||
%package events
|
||||
Summary: GlusterFS Events
|
||||
Requires: %{name}-server%{?_isa} = %{version}-%{release}
|
||||
-Requires: python%{_pythonver} python%{_pythonver}-prettytable
|
||||
+Requires: python%{_pythonver}
|
||||
Requires: python%{_pythonver}-gluster = %{version}-%{release}
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
|
||||
Requires: python-requests
|
||||
@@ -714,7 +714,10 @@ Requires: python-requests
|
||||
Requires: python%{_pythonver}-requests
|
||||
%endif
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
+Requires: python-prettytable
|
||||
Requires: python-argparse
|
||||
+%else
|
||||
+Requires: python%{_pythonver}-prettytable
|
||||
%endif
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
%{?systemd_requires}
|
||||
--
|
||||
1.8.3.1
|
||||
|
43
0317-Update-rfc.sh-to-rhgs-3.5.1.patch
Normal file
43
0317-Update-rfc.sh-to-rhgs-3.5.1.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 985ef94c63859907339c11b158e4540a5568d638 Mon Sep 17 00:00:00 2001
|
||||
From: Rinku Kothiya <rkothiya@redhat.com>
|
||||
Date: Mon, 18 Nov 2019 02:25:25 -0500
|
||||
Subject: [PATCH 317/335] Update rfc.sh to rhgs-3.5.1
|
||||
|
||||
Signed-off-by: Rinku Kothiya <rkothiya@redhat.com>
|
||||
---
|
||||
README | 9 +++++++++
|
||||
rfc.sh | 2 +-
|
||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||
create mode 100644 README
|
||||
|
||||
diff --git a/README b/README
|
||||
new file mode 100644
|
||||
index 0000000..44a118b
|
||||
--- /dev/null
|
||||
+++ b/README
|
||||
@@ -0,0 +1,9 @@
|
||||
+
|
||||
+'master' branch is just dummy branch in downstream. Any reference to 'upstream'
|
||||
+will point to http://git.gluster.org.
|
||||
+
|
||||
+You can checkout the release specific branch by running below command
|
||||
+ bash$ git checkout -t -b rhs-x.y origin/rhs-x.y
|
||||
+
|
||||
+Happy Hacking!!
|
||||
+
|
||||
diff --git a/rfc.sh b/rfc.sh
|
||||
index 94c92ef..69ddd2b 100755
|
||||
--- a/rfc.sh
|
||||
+++ b/rfc.sh
|
||||
@@ -18,7 +18,7 @@ done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
|
||||
-branch="rhgs-3.5.0";
|
||||
+branch="rhgs-3.5.1";
|
||||
|
||||
set_hooks_commit_msg()
|
||||
{
|
||||
--
|
||||
1.8.3.1
|
||||
|
114
0318-Update-rfc.sh-to-rhgs-3.5.1.patch
Normal file
114
0318-Update-rfc.sh-to-rhgs-3.5.1.patch
Normal file
@ -0,0 +1,114 @@
|
||||
From 1f03327887645be2500cd29f69f7a77a4f5d0164 Mon Sep 17 00:00:00 2001
|
||||
From: Rinku Kothiya <rkothiya@redhat.com>
|
||||
Date: Mon, 18 Nov 2019 14:25:12 -0500
|
||||
Subject: [PATCH 318/335] Update rfc.sh to rhgs-3.5.1
|
||||
|
||||
Removed the checks for updates and fixes from rfc.sh
|
||||
|
||||
Label: DOWNSTREAM ONLY
|
||||
|
||||
Change-Id: I436c959aa3b3366cd313b29f41c2466c4072efd7
|
||||
Signed-off-by: Rinku Kothiya <rkothiya@redhat.com>
|
||||
---
|
||||
rfc.sh | 47 ++++++++---------------------------------------
|
||||
1 file changed, 8 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/rfc.sh b/rfc.sh
|
||||
index 69ddd2b..918fb11 100755
|
||||
--- a/rfc.sh
|
||||
+++ b/rfc.sh
|
||||
@@ -129,13 +129,8 @@ editor_mode()
|
||||
|
||||
if [ $(basename "$1") = "COMMIT_EDITMSG" ]; then
|
||||
# see note above function warn_reference_missing for regex elaboration
|
||||
- # Lets first check for github issues
|
||||
- ref=$(git log -n1 --format='%b' | grep -ow -E "([fF][iI][xX][eE][sS]|[uU][pP][dD][aA][tT][eE][sS])(:)?[[:space:]]+(gluster\/glusterfs)?#[[:digit:]]+" | awk -F '#' '{print $2}');
|
||||
- if [ "x${ref}" = "x" ]; then
|
||||
- # if not found, check for bugs
|
||||
- ref=$(git log -n1 --format='%b' | grep -ow -E "([fF][iI][xX][eE][sS]|[uU][pP][dD][aA][tT][eE][sS])(:)?[[:space:]]+bz#[[:digit:]]+" | awk -F '#' '{print $2}');
|
||||
- fi
|
||||
|
||||
+ ref=$(git log -n1 --format='%b' | grep -ow -E "^[bB][uU][gG](:)[[:space:]]+[[:digit:]]+")
|
||||
if [ "x${ref}" != "x" ]; then
|
||||
return;
|
||||
fi
|
||||
@@ -157,16 +152,6 @@ editor_mode()
|
||||
bz_string=""
|
||||
fi
|
||||
|
||||
- echo "Select yes '(y)' if this patch fixes the bug/feature completely,"
|
||||
- echo -n "or is the last of the patchset which brings feature (Y/n): "
|
||||
- read fixes
|
||||
- fixes_string="fixes"
|
||||
- if [ "${fixes}" = 'N' ] || [ "${fixes}" = 'n' ]; then
|
||||
- fixes_string="updates"
|
||||
- fi
|
||||
-
|
||||
- sed "/^Change-Id:/{p; s/^.*$/${fixes_string}: ${bz_string}#${bug}/;}" $1 > $1.new && \
|
||||
- mv $1.new $1;
|
||||
return;
|
||||
done
|
||||
fi
|
||||
@@ -234,8 +219,8 @@ check_patches_for_coding_style()
|
||||
# IOW, the above helps us find the pattern with leading or training spaces
|
||||
# or non word consituents like , or ;
|
||||
#
|
||||
-# [fF][iI][xX][eE][sS]|[uU][pP][dD][aA][tT][eE][sS])
|
||||
-# Finds 'fixes' OR 'updates' in any case combination
|
||||
+# [bB][uU][gG]
|
||||
+# Finds 'bug' in any case
|
||||
#
|
||||
# (:)?
|
||||
# Followed by an optional : (colon)
|
||||
@@ -256,28 +241,11 @@ warn_reference_missing()
|
||||
echo ""
|
||||
echo "=== Missing a reference in commit! ==="
|
||||
echo ""
|
||||
- echo "Gluster commits are made with a reference to a bug or a github issue"
|
||||
- echo ""
|
||||
- echo "Submissions that are enhancements (IOW, not functional"
|
||||
- echo "bug fixes, but improvements of any nature to the code) are tracked"
|
||||
- echo "using github issues [1]."
|
||||
+ echo "You must give BUG: <bugid>"
|
||||
echo ""
|
||||
- echo "Submissions that are bug fixes are tracked using Bugzilla [2]."
|
||||
+ echo "for example:"
|
||||
echo ""
|
||||
- echo "A check on the commit message, reveals that there is no bug or"
|
||||
- echo "github issue referenced in the commit message"
|
||||
- echo ""
|
||||
- echo "[1] https://github.com/gluster/glusterfs/issues/new"
|
||||
- echo "[2] https://bugzilla.redhat.com/enter_bug.cgi?product=GlusterFS"
|
||||
- echo ""
|
||||
- echo "Please file an issue or a bug report and reference the same in the"
|
||||
- echo "commit message using the following tags:"
|
||||
- echo "GitHub Issues:"
|
||||
- echo "\"Fixes: gluster/glusterfs#n\" OR \"Updates: gluster/glusterfs#n\","
|
||||
- echo "\"Fixes: #n\" OR \"Updates: #n\","
|
||||
- echo "Bugzilla ID:"
|
||||
- echo "\"Fixes: bz#n\" OR \"Updates: bz#n\","
|
||||
- echo "where n is the issue or bug number"
|
||||
+ echo "BUG: 1234567"
|
||||
echo ""
|
||||
echo "You may abort the submission choosing 'N' below and use"
|
||||
echo "'git commit --amend' to add the issue reference before posting"
|
||||
@@ -312,7 +280,7 @@ main()
|
||||
assert_diverge;
|
||||
|
||||
# see note above function warn_reference_missing for regex elaboration
|
||||
- reference=$(git log -n1 --format='%b' | grep -ow -E "([fF][iI][xX][eE][sS]|[uU][pP][dD][aA][tT][eE][sS])(:)?[[:space:]]+(gluster\/glusterfs)?(bz)?#[[:digit:]]+" | awk -F '#' '{print $2}');
|
||||
+ reference=$(git log -n1 --format='%b' | grep -ow -E "^[bB][uU][gG](:)[[:space:]]+[[:digit:]]+" | awk '{print $2}')
|
||||
|
||||
# If this is a commit against master and does not have a bug ID or a github
|
||||
# issue reference. Warn the contributor that one of the 2 is required
|
||||
@@ -320,6 +288,7 @@ main()
|
||||
warn_reference_missing;
|
||||
fi
|
||||
|
||||
+
|
||||
# TODO: add clang-format command here. It will after the changes are done everywhere else
|
||||
clang_format=$(clang-format --version)
|
||||
if [ ! -z "${clang_format}" ]; then
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,48 @@
|
||||
From 659bd2a0fde9ba0cb8fc3905bcdb63d91e3dfa9d Mon Sep 17 00:00:00 2001
|
||||
From: Raghavendra Bhat <raghavendra@redhat.com>
|
||||
Date: Tue, 2 Jul 2019 16:50:23 -0400
|
||||
Subject: [PATCH 319/335] features/snapview-server: obtain the list of
|
||||
snapshots inside the lock
|
||||
|
||||
The current list of snapshots from priv->dirents is obtained outside
|
||||
the lock.
|
||||
|
||||
Upstream patch:
|
||||
> Change-Id: I8876ec0a38308da5db058397382fbc82cc7ac177
|
||||
> Fixes: bz#1726783
|
||||
> Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
|
||||
> patch: https://review.gluster.org/#/c/glusterfs/+/22990/
|
||||
|
||||
BUG: 1731513
|
||||
Change-Id: I8876ec0a38308da5db058397382fbc82cc7ac177
|
||||
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185838
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
xlators/features/snapview-server/src/snapview-server-mgmt.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xlators/features/snapview-server/src/snapview-server-mgmt.c b/xlators/features/snapview-server/src/snapview-server-mgmt.c
|
||||
index bc415ef..3d64383 100644
|
||||
--- a/xlators/features/snapview-server/src/snapview-server-mgmt.c
|
||||
+++ b/xlators/features/snapview-server/src/snapview-server-mgmt.c
|
||||
@@ -256,7 +256,6 @@ mgmt_get_snapinfo_cbk(struct rpc_req *req, struct iovec *iov, int count,
|
||||
this = frame->this;
|
||||
ctx = frame->this->ctx;
|
||||
priv = this->private;
|
||||
- old_dirents = priv->dirents;
|
||||
|
||||
if (!ctx) {
|
||||
errno = EINVAL;
|
||||
@@ -388,6 +387,7 @@ mgmt_get_snapinfo_cbk(struct rpc_req *req, struct iovec *iov, int count,
|
||||
LOCK(&priv->snaplist_lock);
|
||||
{
|
||||
oldcount = priv->num_snaps;
|
||||
+ old_dirents = priv->dirents;
|
||||
for (i = 0; i < priv->num_snaps; i++) {
|
||||
for (j = 0; j < snapcount; j++) {
|
||||
if ((!strcmp(old_dirents[i].name, dirents[j].name)) &&
|
||||
--
|
||||
1.8.3.1
|
||||
|
58
0320-gf-event-Handle-unix-volfile-servers.patch
Normal file
58
0320-gf-event-Handle-unix-volfile-servers.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From 7e5d8dcb4f557eaca259e8d81cf34d651907396c Mon Sep 17 00:00:00 2001
|
||||
From: Pranith Kumar K <pkarampu@redhat.com>
|
||||
Date: Thu, 24 Oct 2019 12:24:35 +0530
|
||||
Subject: [PATCH 320/335] gf-event: Handle unix volfile-servers
|
||||
|
||||
Problem:
|
||||
glfsheal program uses unix-socket-based volfile server.
|
||||
volfile server will be the path to socket in this case.
|
||||
gf_event expects this to be hostname in all cases. So getaddrinfo
|
||||
will fail on the unix-socket path, events won't be sent in this case.
|
||||
|
||||
Fix:
|
||||
In case of unix sockets, default to localhost
|
||||
|
||||
upstream-patch: https://review.gluster.org/c/glusterfs/+/23606
|
||||
BUG: 1758923
|
||||
Change-Id: I60d27608792c29d83fb82beb5fde5ef4754bece8
|
||||
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185851
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
libglusterfs/src/events.c | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libglusterfs/src/events.c b/libglusterfs/src/events.c
|
||||
index 9d33783..4e2f8f9 100644
|
||||
--- a/libglusterfs/src/events.c
|
||||
+++ b/libglusterfs/src/events.c
|
||||
@@ -43,6 +43,7 @@ _gf_event(eventtypes_t event, const char *fmt, ...)
|
||||
struct addrinfo *result = NULL;
|
||||
xlator_t *this = THIS;
|
||||
int sin_family = AF_INET;
|
||||
+ char *volfile_server_transport = NULL;
|
||||
|
||||
/* Global context */
|
||||
ctx = THIS->ctx;
|
||||
@@ -62,8 +63,16 @@ _gf_event(eventtypes_t event, const char *fmt, ...)
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_family = AF_UNSPEC;
|
||||
|
||||
+ if (ctx) {
|
||||
+ volfile_server_transport = ctx->cmd_args.volfile_server_transport;
|
||||
+ }
|
||||
+
|
||||
+ if (!volfile_server_transport) {
|
||||
+ volfile_server_transport = "tcp";
|
||||
+ }
|
||||
/* Get Host name to send message */
|
||||
- if (ctx && ctx->cmd_args.volfile_server) {
|
||||
+ if (ctx && ctx->cmd_args.volfile_server &&
|
||||
+ (strcmp(volfile_server_transport, "unix"))) {
|
||||
/* If it is client code then volfile_server is set
|
||||
use that information to push the events. */
|
||||
if ((getaddrinfo(ctx->cmd_args.volfile_server, NULL, &hints,
|
||||
--
|
||||
1.8.3.1
|
||||
|
55
0321-Adding-white-spaces-to-description-of-set-group.patch
Normal file
55
0321-Adding-white-spaces-to-description-of-set-group.patch
Normal file
@ -0,0 +1,55 @@
|
||||
From 5e7a2ad35a174d6d0ee5ed58a3e27955e85aa47c Mon Sep 17 00:00:00 2001
|
||||
From: kshithijiyer <kshithij.ki@gmail.com>
|
||||
Date: Mon, 24 Jun 2019 20:08:48 +0530
|
||||
Subject: [PATCH 321/335] Adding white spaces to description of set group.
|
||||
|
||||
The description of set group is missing spaces which
|
||||
leads to the description look like:
|
||||
volume set <VOLNAME> group <GROUP> - This option can be used for
|
||||
setting multiple pre-defined volume optionswhere group_name is a
|
||||
file under /var/lib/glusterd/groups containing onekey, value pair
|
||||
per line
|
||||
|
||||
Instead of:
|
||||
volume set <VOLNAME> group <GROUP> - This option can be used for
|
||||
setting multiple pre-defined volume options where group_name is a
|
||||
file under /var/lib/glusterd/groups containing one key value
|
||||
pair per line
|
||||
|
||||
> upstream patch: https://review.gluster.org/#/c/glusterfs/+/22934/
|
||||
> Fixes: bz#1723455
|
||||
> Change-Id: I4957988c0c1f35f043db3f64089c049193e60e8f
|
||||
> Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
||||
|
||||
BUG: 1724021
|
||||
Change-Id: I4957988c0c1f35f043db3f64089c049193e60e8f
|
||||
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185756
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
cli/src/cli-cmd-volume.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c
|
||||
index 6b958bd..66beb1b 100644
|
||||
--- a/cli/src/cli-cmd-volume.c
|
||||
+++ b/cli/src/cli-cmd-volume.c
|
||||
@@ -3393,10 +3393,10 @@ struct cli_cmd volume_cmds[] = {
|
||||
{"volume set <VOLNAME> <KEY> <VALUE>", cli_cmd_volume_set_cbk,
|
||||
"set options for volume <VOLNAME>"},
|
||||
|
||||
- {"volume set <VOLNAME> group <GROUP>", cli_cmd_volume_set_cbk,
|
||||
- "This option can be used for setting multiple pre-defined volume options"
|
||||
- "where group_name is a file under /var/lib/glusterd/groups containing one"
|
||||
- "key, value pair per line"},
|
||||
+ {"volume set <VOLNAME> group <GROUP>", cli_cmd_volume_set_cbk,
|
||||
+ "This option can be used for setting multiple pre-defined volume options "
|
||||
+ "where group_name is a file under /var/lib/glusterd/groups containing one "
|
||||
+ "key value pair per line"},
|
||||
|
||||
{"volume log <VOLNAME> rotate [BRICK]", cli_cmd_log_rotate_cbk,
|
||||
"rotate the log file for corresponding volume/brick"},
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,65 @@
|
||||
From 9be255f76c78fcbbda1e3a72eb2e99d3aface53e Mon Sep 17 00:00:00 2001
|
||||
From: Sanju Rakonde <srakonde@redhat.com>
|
||||
Date: Wed, 16 Oct 2019 23:26:03 +0530
|
||||
Subject: [PATCH 322/335] glusterd: display correct rebalance data size after
|
||||
glusterd restart
|
||||
|
||||
Problem: After completion of rebalance, if glusterd is restarted,
|
||||
rebalance status displays wrong rebalance data size in its output.
|
||||
|
||||
Cause: While glusterd restoring the information from /var/lib/glusterd/
|
||||
into its memory, glusterd fetches rebalance_data from
|
||||
/var/lib/glusterd/vols/volname/node_state.info. This value is
|
||||
converted into an integer using atoi(), which is returning
|
||||
incorrect value for larger values.
|
||||
|
||||
Solution: use sscanf() instead of atoi() to convert string to
|
||||
integer(in this case it is unsigned long)
|
||||
|
||||
> upstream patch: https://review.gluster.org/#/c/glusterfs/+/23560/
|
||||
> fixes: bz#1762438
|
||||
> Change-Id: Icbdb096919612b4a1d6fb0e315f09d38900abf4e
|
||||
> Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
||||
|
||||
BUG: 1761486
|
||||
Change-Id: Icbdb096919612b4a1d6fb0e315f09d38900abf4e
|
||||
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185752
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
xlators/mgmt/glusterd/src/glusterd-store.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c
|
||||
index 8a10eb8..b3b5ee9 100644
|
||||
--- a/xlators/mgmt/glusterd/src/glusterd-store.c
|
||||
+++ b/xlators/mgmt/glusterd/src/glusterd-store.c
|
||||
@@ -2974,19 +2974,19 @@ glusterd_store_retrieve_node_state(glusterd_volinfo_t *volinfo)
|
||||
volinfo->rebal.op = atoi(value);
|
||||
} else if (!strncmp(key, GLUSTERD_STORE_KEY_VOL_DEFRAG_REB_FILES,
|
||||
SLEN(GLUSTERD_STORE_KEY_VOL_DEFRAG_REB_FILES))) {
|
||||
- volinfo->rebal.rebalance_files = atoi(value);
|
||||
+ sscanf(value, "%" PRIu64, &volinfo->rebal.rebalance_files);
|
||||
} else if (!strncmp(key, GLUSTERD_STORE_KEY_VOL_DEFRAG_SIZE,
|
||||
SLEN(GLUSTERD_STORE_KEY_VOL_DEFRAG_SIZE))) {
|
||||
- volinfo->rebal.rebalance_data = atoi(value);
|
||||
+ sscanf(value, "%" PRIu64, &volinfo->rebal.rebalance_data);
|
||||
} else if (!strncmp(key, GLUSTERD_STORE_KEY_VOL_DEFRAG_SCANNED,
|
||||
SLEN(GLUSTERD_STORE_KEY_VOL_DEFRAG_SCANNED))) {
|
||||
- volinfo->rebal.lookedup_files = atoi(value);
|
||||
+ sscanf(value, "%" PRIu64, &volinfo->rebal.lookedup_files);
|
||||
} else if (!strncmp(key, GLUSTERD_STORE_KEY_VOL_DEFRAG_FAILURES,
|
||||
SLEN(GLUSTERD_STORE_KEY_VOL_DEFRAG_FAILURES))) {
|
||||
- volinfo->rebal.rebalance_failures = atoi(value);
|
||||
+ sscanf(value, "%" PRIu64, &volinfo->rebal.rebalance_failures);
|
||||
} else if (!strncmp(key, GLUSTERD_STORE_KEY_VOL_DEFRAG_SKIPPED,
|
||||
SLEN(GLUSTERD_STORE_KEY_VOL_DEFRAG_SKIPPED))) {
|
||||
- volinfo->rebal.skipped_files = atoi(value);
|
||||
+ sscanf(value, "%" PRIu64, &volinfo->rebal.skipped_files);
|
||||
} else if (!strncmp(key, GLUSTERD_STORE_KEY_VOL_DEFRAG_RUN_TIME,
|
||||
SLEN(GLUSTERD_STORE_KEY_VOL_DEFRAG_RUN_TIME))) {
|
||||
volinfo->rebal.rebalance_time = atoi(value);
|
||||
--
|
||||
1.8.3.1
|
||||
|
101
0323-cli-display-detailed-rebalance-info.patch
Normal file
101
0323-cli-display-detailed-rebalance-info.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From 852c475040a599ed35798dbb388c6b59c1d0a820 Mon Sep 17 00:00:00 2001
|
||||
From: Sanju Rakonde <srakonde@redhat.com>
|
||||
Date: Tue, 22 Oct 2019 15:06:29 +0530
|
||||
Subject: [PATCH 323/335] cli: display detailed rebalance info
|
||||
|
||||
Problem: When one of the node is down in cluster,
|
||||
rebalance status is not displaying detailed
|
||||
information.
|
||||
|
||||
Cause: In glusterd_volume_rebalance_use_rsp_dict()
|
||||
we are aggregating rsp from all the nodes into a
|
||||
dictionary and sending it to cli for printing. While
|
||||
assigning a index to keys we are considering all the
|
||||
peers instead of considering only the peers which are
|
||||
up. Because of which, index is not reaching till 1.
|
||||
while parsing the rsp cli unable to find status-1
|
||||
key in dictionary and going out without printing
|
||||
any information.
|
||||
|
||||
Solution: The simplest fix for this without much
|
||||
code change is to continue to look for other keys
|
||||
when status-1 key is not found.
|
||||
|
||||
> upstream patch: https://review.gluster.org/#/c/glusterfs/+/23588
|
||||
> fixes: bz#1764119
|
||||
> Change-Id: I0062839933c9706119eb85416256eade97e976dc
|
||||
> Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
||||
|
||||
BUG: 1761326
|
||||
Change-Id: I0062839933c9706119eb85416256eade97e976dc
|
||||
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185749
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
cli/src/cli-rpc-ops.c | 21 ++++++++++++++-------
|
||||
tests/bugs/glusterd/rebalance-in-cluster.t | 9 +++++++++
|
||||
2 files changed, 23 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c
|
||||
index b167e26..4e91265 100644
|
||||
--- a/cli/src/cli-rpc-ops.c
|
||||
+++ b/cli/src/cli-rpc-ops.c
|
||||
@@ -1597,13 +1597,20 @@ gf_cli_print_rebalance_status(dict_t *dict, enum gf_task_types task_type,
|
||||
goto out;
|
||||
}
|
||||
|
||||
- snprintf(key, sizeof(key), "status-1");
|
||||
-
|
||||
- ret = dict_get_int32(dict, key, (int32_t *)&status_rcd);
|
||||
- if (ret) {
|
||||
- gf_log("cli", GF_LOG_TRACE, "count %d %d", count, 1);
|
||||
- gf_log("cli", GF_LOG_TRACE, "failed to get status");
|
||||
- goto out;
|
||||
+ for (i = 1; i <= count; i++) {
|
||||
+ snprintf(key, sizeof(key), "status-%d", i);
|
||||
+ ret = dict_get_int32(dict, key, (int32_t *)&status_rcd);
|
||||
+ /* If information from a node is missing we should skip
|
||||
+ * the node and try to fetch information of other nodes.
|
||||
+ * If information is not found for all nodes, we should
|
||||
+ * error out.
|
||||
+ */
|
||||
+ if (!ret)
|
||||
+ break;
|
||||
+ if (ret && i == count) {
|
||||
+ gf_log("cli", GF_LOG_TRACE, "failed to get status");
|
||||
+ goto out;
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Fix layout will be sent to all nodes for the volume
|
||||
diff --git a/tests/bugs/glusterd/rebalance-in-cluster.t b/tests/bugs/glusterd/rebalance-in-cluster.t
|
||||
index 9565fae..469ec6c 100644
|
||||
--- a/tests/bugs/glusterd/rebalance-in-cluster.t
|
||||
+++ b/tests/bugs/glusterd/rebalance-in-cluster.t
|
||||
@@ -4,6 +4,10 @@
|
||||
. $(dirname $0)/../../cluster.rc
|
||||
. $(dirname $0)/../../volume.rc
|
||||
|
||||
+function rebalance_status_field_1 {
|
||||
+ $CLI_1 volume rebalance $1 status | awk '{print $7}' | sed -n 3p
|
||||
+}
|
||||
+
|
||||
cleanup;
|
||||
TEST launch_cluster 2;
|
||||
TEST $CLI_1 peer probe $H2;
|
||||
@@ -29,6 +33,11 @@ TEST $CLI_1 volume add-brick $V0 $H1:$B1/${V0}1 $H2:$B2/${V0}1
|
||||
TEST $CLI_1 volume rebalance $V0 start
|
||||
EXPECT_WITHIN $REBALANCE_TIMEOUT "completed" cluster_rebalance_status_field 1 $V0
|
||||
|
||||
+#bug - 1764119 - rebalance status should display detailed info when any of the node is dowm
|
||||
+TEST kill_glusterd 2
|
||||
+EXPECT_WITHIN $REBALANCE_TIMEOUT "completed" rebalance_status_field_1 $V0
|
||||
+
|
||||
+TEST start_glusterd 2
|
||||
#bug-1245142
|
||||
|
||||
$CLI_1 volume rebalance $V0 start &
|
||||
--
|
||||
1.8.3.1
|
||||
|
128
0324-extras-hooks-Add-SELinux-label-on-new-bricks-during-.patch
Normal file
128
0324-extras-hooks-Add-SELinux-label-on-new-bricks-during-.patch
Normal file
@ -0,0 +1,128 @@
|
||||
From dcf3f74fa7e812dfe89667bd6219f70a8457f755 Mon Sep 17 00:00:00 2001
|
||||
From: Anoop C S <anoopcs@redhat.com>
|
||||
Date: Thu, 6 Jun 2019 18:33:19 +0530
|
||||
Subject: [PATCH 324/335] extras/hooks: Add SELinux label on new bricks during
|
||||
add-brick
|
||||
|
||||
Backport of https://review.gluster.org/c/glusterfs/+/22834
|
||||
|
||||
Change-Id: Ifd8ae5eeb91b968cc1a9a9b5d15844c5233d56db
|
||||
BUG: 1686800
|
||||
Signed-off-by: Anoop C S <anoopcs@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185855
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
.../add-brick/post/S10selinux-label-brick.sh | 100 +++++++++++++++++++++
|
||||
1 file changed, 100 insertions(+)
|
||||
create mode 100755 extras/hook-scripts/add-brick/post/S10selinux-label-brick.sh
|
||||
|
||||
diff --git a/extras/hook-scripts/add-brick/post/S10selinux-label-brick.sh b/extras/hook-scripts/add-brick/post/S10selinux-label-brick.sh
|
||||
new file mode 100755
|
||||
index 0000000..4a17c99
|
||||
--- /dev/null
|
||||
+++ b/extras/hook-scripts/add-brick/post/S10selinux-label-brick.sh
|
||||
@@ -0,0 +1,100 @@
|
||||
+#!/bin/bash
|
||||
+#
|
||||
+# Install to hooks/<HOOKS_VER>/add-brick/post
|
||||
+#
|
||||
+# Add an SELinux file context for each brick using the glusterd_brick_t type.
|
||||
+# This ensures that the brick is relabeled correctly on an SELinux restart or
|
||||
+# restore. Subsequently, run a restore on the brick path to set the selinux
|
||||
+# labels.
|
||||
+#
|
||||
+###
|
||||
+
|
||||
+PROGNAME="Sselinux"
|
||||
+OPTSPEC="volname:,version:,gd-workdir:,volume-op:"
|
||||
+VOL=
|
||||
+
|
||||
+parse_args () {
|
||||
+ ARGS=$(getopt -o '' -l ${OPTSPEC} -n ${PROGNAME} -- "$@")
|
||||
+ eval set -- "${ARGS}"
|
||||
+
|
||||
+ while true; do
|
||||
+ case ${1} in
|
||||
+ --volname)
|
||||
+ shift
|
||||
+ VOL=${1}
|
||||
+ ;;
|
||||
+ --gd-workdir)
|
||||
+ shift
|
||||
+ GLUSTERD_WORKDIR=$1
|
||||
+ ;;
|
||||
+ --version)
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --volume-op)
|
||||
+ shift
|
||||
+ ;;
|
||||
+ *)
|
||||
+ shift
|
||||
+ break
|
||||
+ ;;
|
||||
+ esac
|
||||
+ shift
|
||||
+ done
|
||||
+}
|
||||
+
|
||||
+set_brick_labels()
|
||||
+{
|
||||
+ local volname="${1}"
|
||||
+ local fctx
|
||||
+ local list=()
|
||||
+
|
||||
+ fctx="$(semanage fcontext --list -C)"
|
||||
+
|
||||
+ # wait for new brick path to be updated under
|
||||
+ # ${GLUSTERD_WORKDIR}/vols/${volname}/bricks/
|
||||
+ sleep 5
|
||||
+
|
||||
+ # grab the path for each local brick
|
||||
+ brickpath="${GLUSTERD_WORKDIR}/vols/${volname}/bricks/"
|
||||
+ brickdirs=$(
|
||||
+ find "${brickpath}" -type f -exec grep '^path=' {} \; | \
|
||||
+ cut -d= -f 2 | \
|
||||
+ sort -u
|
||||
+ )
|
||||
+
|
||||
+ # create a list of bricks for which custom SELinux
|
||||
+ # label doesn't exist
|
||||
+ for b in ${brickdirs}; do
|
||||
+ pattern="${b}(/.*)?"
|
||||
+ echo "${fctx}" | grep "^${pattern}\s" >/dev/null
|
||||
+ if [[ $? -ne 0 ]]; then
|
||||
+ list+=("${pattern}")
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ # Add a file context for each brick path in the list and associate with the
|
||||
+ # glusterd_brick_t SELinux type.
|
||||
+ for p in ${list[@]}
|
||||
+ do
|
||||
+ semanage fcontext --add -t glusterd_brick_t -r s0 "${p}"
|
||||
+ done
|
||||
+
|
||||
+ # Set the labels for which SELinux label was added above
|
||||
+ for b in ${brickdirs}
|
||||
+ do
|
||||
+ echo "${list[@]}" | grep "${b}" >/dev/null
|
||||
+ if [[ $? -eq 0 ]]; then
|
||||
+ restorecon -R "${b}"
|
||||
+ fi
|
||||
+ done
|
||||
+}
|
||||
+
|
||||
+SELINUX_STATE=$(which getenforce && getenforce)
|
||||
+[ "${SELINUX_STATE}" = 'Disabled' ] && exit 0
|
||||
+
|
||||
+parse_args "$@"
|
||||
+[ -z "${VOL}" ] && exit 1
|
||||
+
|
||||
+set_brick_labels "${VOL}"
|
||||
+
|
||||
+exit 0
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,52 @@
|
||||
From 27d69d8927a946562aef08a6edfee38b9998f96d Mon Sep 17 00:00:00 2001
|
||||
From: Anoop C S <anoopcs@redhat.com>
|
||||
Date: Wed, 12 Jun 2019 15:41:27 +0530
|
||||
Subject: [PATCH 325/335] extras/hooks: Install and package newly added post
|
||||
add-brick hook script
|
||||
|
||||
Previously a new SELinux hook script was added as a post add-brick
|
||||
operation to label new brick paths. But the change failed to install
|
||||
and package new script. Therefore making necessary changes to Makefile
|
||||
and spec file to get it installed and packaged.
|
||||
|
||||
Backport of https://review.gluster.org/c/glusterfs/+/22856
|
||||
|
||||
Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225
|
||||
BUG: 1686800
|
||||
Signed-off-by: Anoop C S <anoopcs@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185856
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
extras/hook-scripts/add-brick/post/Makefile.am | 4 ++--
|
||||
glusterfs.spec.in | 1 +
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/extras/hook-scripts/add-brick/post/Makefile.am b/extras/hook-scripts/add-brick/post/Makefile.am
|
||||
index bfc0c1c..9b236df 100644
|
||||
--- a/extras/hook-scripts/add-brick/post/Makefile.am
|
||||
+++ b/extras/hook-scripts/add-brick/post/Makefile.am
|
||||
@@ -1,6 +1,6 @@
|
||||
-EXTRA_DIST = disabled-quota-root-xattr-heal.sh S13create-subdir-mounts.sh
|
||||
+EXTRA_DIST = disabled-quota-root-xattr-heal.sh S10selinux-label-brick.sh S13create-subdir-mounts.sh
|
||||
|
||||
hookdir = $(GLUSTERD_WORKDIR)/hooks/1/add-brick/post/
|
||||
if WITH_SERVER
|
||||
-hook_SCRIPTS = disabled-quota-root-xattr-heal.sh S13create-subdir-mounts.sh
|
||||
+hook_SCRIPTS = disabled-quota-root-xattr-heal.sh S10selinux-label-brick.sh S13create-subdir-mounts.sh
|
||||
endif
|
||||
diff --git a/glusterfs.spec.in b/glusterfs.spec.in
|
||||
index eeadb65..91180db 100644
|
||||
--- a/glusterfs.spec.in
|
||||
+++ b/glusterfs.spec.in
|
||||
@@ -1447,6 +1447,7 @@ exit 0
|
||||
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick
|
||||
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post
|
||||
%attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh
|
||||
+ %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh
|
||||
%attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
|
||||
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
|
||||
%attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,51 @@
|
||||
From a4f01ad90a0c0dfd0655da509c5ed2a11a507cc3 Mon Sep 17 00:00:00 2001
|
||||
From: Mohit Agrawal <moagrawal@redhat.com>
|
||||
Date: Mon, 17 Jun 2019 11:10:42 +0530
|
||||
Subject: [PATCH 326/335] tests: subdir-mount.t is failing for brick_mux
|
||||
regrssion
|
||||
|
||||
To avoid the failure wait to run hook script S13create-subdir-mounts.sh
|
||||
after executed add-brick command by test case.
|
||||
|
||||
This is required as a dependency for the bz referenced below.
|
||||
|
||||
Backport of https://review.gluster.org/c/glusterfs/+/22877
|
||||
|
||||
Change-Id: I063b6d0f86a550ed0a0527255e4dfbe8f0a8c02e
|
||||
BUG: 1686800
|
||||
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185857
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
tests/features/subdir-mount.t | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tests/features/subdir-mount.t b/tests/features/subdir-mount.t
|
||||
index 8401946..a02bd6b 100644
|
||||
--- a/tests/features/subdir-mount.t
|
||||
+++ b/tests/features/subdir-mount.t
|
||||
@@ -85,12 +85,17 @@ TEST $CLI volume start $V0
|
||||
TEST $GFS --subdir-mount /subdir1/subdir1.1/subdir1.2 -s $H0 --volfile-id $V0 $M2
|
||||
TEST stat $M2
|
||||
|
||||
+initcnt=`grep -i create-subdir-mounts /var/log/glusterfs/glusterd.log | wc -l`
|
||||
# mount shouldn't fail even after add-brick
|
||||
TEST $CLI volume add-brick $V0 replica 2 $H0:$B0/${V0}{5,6};
|
||||
|
||||
-# Give time for client process to get notified and use the new
|
||||
-# volfile after add-brick
|
||||
-sleep 1
|
||||
+# Wait to execute create-subdir-mounts.sh script by glusterd
|
||||
+newcnt=`grep -i create-subdir-mounts /var/log/glusterfs/glusterd.log | wc -l`
|
||||
+while [ $newcnt -eq $initcnt ]
|
||||
+do
|
||||
+ newcnt=`grep -i create-subdir-mounts /var/log/glusterfs/glusterd.log | wc -l`
|
||||
+ sleep 1
|
||||
+done
|
||||
|
||||
# Existing mount should still be active
|
||||
mount_inode=$(stat --format "%i" "$M2")
|
||||
--
|
||||
1.8.3.1
|
||||
|
93
0327-glusterfind-integrate-with-gfid2path.patch
Normal file
93
0327-glusterfind-integrate-with-gfid2path.patch
Normal file
@ -0,0 +1,93 @@
|
||||
From f89242132dc4756c827113154cc6ad18ad6bde88 Mon Sep 17 00:00:00 2001
|
||||
From: Milind Changire <mchangir@redhat.com>
|
||||
Date: Tue, 19 Feb 2019 12:49:12 +0530
|
||||
Subject: [PATCH 327/335] glusterfind: integrate with gfid2path
|
||||
|
||||
Integration with gfid2path helps avoid file-system crawl and saves
|
||||
precious time. Extended attributes starting with "trusted.gfid2path."
|
||||
are read and the <PGFID>/<BN> values are extracted and the <PGFID> is
|
||||
iteratively resolved from the brick backend to arrive at the full path.
|
||||
|
||||
>Change-Id: I593b02880e3413b77bfceed4a36b00d401f03bc0
|
||||
>fixes: #529
|
||||
>Signed-off-by: Milind Changire <mchangir@redhat.com>
|
||||
>Signed-off-by: Shwetha K Acharya <sacharya@redhat.com>
|
||||
|
||||
backport of https://review.gluster.org/#/c/glusterfs/+/22225/
|
||||
BUG: 1599802
|
||||
Change-Id: I593b02880e3413b77bfceed4a36b00d401f03bc0
|
||||
Signed-off-by: Milind Changire <mchangir@redhat.com>
|
||||
Signed-off-by: Shwetha K Acharya <sacharya@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185706
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
tools/glusterfind/src/changelog.py | 45 ++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 41 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/tools/glusterfind/src/changelog.py b/tools/glusterfind/src/changelog.py
|
||||
index ef982db..d8f97e0 100644
|
||||
--- a/tools/glusterfind/src/changelog.py
|
||||
+++ b/tools/glusterfind/src/changelog.py
|
||||
@@ -114,6 +114,43 @@ def populate_pgfid_and_inodegfid(brick, changelog_data):
|
||||
continue
|
||||
|
||||
|
||||
+def enum_hard_links_using_gfid2path(brick, gfid, args):
|
||||
+ hardlinks = []
|
||||
+ p = os.path.join(brick, ".glusterfs", gfid[0:2], gfid[2:4], gfid)
|
||||
+ if not os.path.isdir(p):
|
||||
+ # we have a symlink or a normal file
|
||||
+ try:
|
||||
+ file_xattrs = xattr.list(p)
|
||||
+ for x in file_xattrs:
|
||||
+ if x.startswith("trusted.gfid2path."):
|
||||
+ # get the value for the xattr i.e. <PGFID>/<BN>
|
||||
+ v = xattr.getxattr(p, x)
|
||||
+ pgfid, bn = v.split(os.sep)
|
||||
+ try:
|
||||
+ path = symlink_gfid_to_path(brick, pgfid)
|
||||
+ fullpath = os.path.join(path, bn)
|
||||
+ fullpath = output_path_prepare(fullpath, args)
|
||||
+ hardlinks.append(fullpath)
|
||||
+ except (IOError, OSError) as e:
|
||||
+ logger.warn("Error converting to path: %s" % e)
|
||||
+ continue
|
||||
+ except (IOError, OSError):
|
||||
+ pass
|
||||
+ return hardlinks
|
||||
+
|
||||
+
|
||||
+def gfid_to_all_paths_using_gfid2path(brick, changelog_data, args):
|
||||
+ path = ""
|
||||
+ for row in changelog_data.gfidpath_get({"path1": "", "type": "MODIFY"}):
|
||||
+ gfid = row[3].strip()
|
||||
+ logger.debug("Processing gfid %s" % gfid)
|
||||
+ hardlinks = enum_hard_links_using_gfid2path(brick, gfid, args)
|
||||
+
|
||||
+ path = ",".join(hardlinks)
|
||||
+
|
||||
+ changelog_data.gfidpath_update({"path1": path}, {"gfid": gfid})
|
||||
+
|
||||
+
|
||||
def gfid_to_path_using_pgfid(brick, changelog_data, args):
|
||||
"""
|
||||
For all the pgfids collected, Converts to Path and
|
||||
@@ -314,11 +351,11 @@ def get_changes(brick, hash_dir, log_file, start, end, args):
|
||||
changelog_data.commit()
|
||||
logger.info("[2/4] Finished 'pgfid to path' conversions.")
|
||||
|
||||
- # Convert all GFIDs for which no other additional details available
|
||||
- logger.info("[3/4] Starting 'gfid to path using pgfid' conversions ...")
|
||||
- gfid_to_path_using_pgfid(brick, changelog_data, args)
|
||||
+ # Convert all gfids recorded for data and metadata to all hardlink paths
|
||||
+ logger.info("[3/4] Starting 'gfid2path' conversions ...")
|
||||
+ gfid_to_all_paths_using_gfid2path(brick, changelog_data, args)
|
||||
changelog_data.commit()
|
||||
- logger.info("[3/4] Finished 'gfid to path using pgfid' conversions.")
|
||||
+ logger.info("[3/4] Finished 'gfid2path' conversions.")
|
||||
|
||||
# If some GFIDs fail to get converted from previous step,
|
||||
# convert using find
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,55 @@
|
||||
From a8d8fc91af226fbf49e9dd1d7d91ad287707c4fe Mon Sep 17 00:00:00 2001
|
||||
From: Vishal Pandey <vpandey@redhat.com>
|
||||
Date: Wed, 7 Aug 2019 12:53:06 +0530
|
||||
Subject: [PATCH 328/335] glusterd: Add warning and abort in case of failures
|
||||
in migration during remove-brick commit
|
||||
|
||||
Problem -
|
||||
Currently remove-brick commit goes through even though there were files
|
||||
that failed to migrate or were skipped. There is no warning raised to the user.
|
||||
Solution-
|
||||
Add a check in the remove brick staging phase to verify if the status of the
|
||||
rebalnce process is complete but there has been failures or some skipped files
|
||||
while migration, In this case user will be given a warning and remove-brick
|
||||
commit. User will need to use the force option to remove the bricks.
|
||||
|
||||
> Upstream Path Link: https://review.gluster.org/#/c/glusterfs/+/23171/
|
||||
> Fixes: bz#1514683
|
||||
> Signed-offby- Vishal Pandey <vpandey@redhat.com>
|
||||
> Change-Id: I014d0f0afb4b2fac35ab0de52227f98dbae079d5
|
||||
|
||||
BUG: 1344758
|
||||
Change-Id: I014d0f0afb4b2fac35ab0de52227f98dbae079d5
|
||||
Signed-off-by: Vishal Pandey <vpandey@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185831
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
xlators/mgmt/glusterd/src/glusterd-brick-ops.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
|
||||
index ad9a572..c5141de 100644
|
||||
--- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
|
||||
+++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
|
||||
@@ -2191,6 +2191,17 @@ glusterd_op_stage_remove_brick(dict_t *dict, char **op_errstr)
|
||||
goto out;
|
||||
}
|
||||
|
||||
+ if (volinfo->rebal.defrag_status == GF_DEFRAG_STATUS_COMPLETE) {
|
||||
+ if (volinfo->rebal.rebalance_failures > 0 ||
|
||||
+ volinfo->rebal.skipped_files > 0) {
|
||||
+ errstr = gf_strdup(
|
||||
+ "use 'force' option as migration "
|
||||
+ "of some files might have been skipped or "
|
||||
+ "has failed");
|
||||
+ goto out;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
ret = glusterd_remove_brick_validate_bricks(
|
||||
cmd, brick_count, dict, volinfo, &errstr, GF_DEFRAG_CMD_NONE);
|
||||
if (ret)
|
||||
--
|
||||
1.8.3.1
|
||||
|
165
0329-cluster-afr-Heal-entries-when-there-is-a-source-no-h.patch
Normal file
165
0329-cluster-afr-Heal-entries-when-there-is-a-source-no-h.patch
Normal file
@ -0,0 +1,165 @@
|
||||
From babbd49cc053993a4ecff8eaf178d5a29f3a0bf0 Mon Sep 17 00:00:00 2001
|
||||
From: karthik-us <ksubrahm@redhat.com>
|
||||
Date: Wed, 20 Nov 2019 12:26:11 +0530
|
||||
Subject: [PATCH 329/335] cluster/afr: Heal entries when there is a source & no
|
||||
healed_sinks
|
||||
|
||||
Backport of: https://review.gluster.org/#/c/glusterfs/+/23364/
|
||||
|
||||
Problem:
|
||||
In a situation where B1 blames B2, B2 blames B1 and B3 doesn't blame
|
||||
anything for entry heal, heal will not complete even though we have
|
||||
clear source and sinks. This will happen because while doing
|
||||
afr_selfheal_find_direction() only the bricks which are blamed by
|
||||
non-accused bricks are considered as sinks. Later in
|
||||
__afr_selfheal_entry_finalize_source() when it tries to mark all the
|
||||
non-sources as sinks it fails to do so because there won't be any
|
||||
healed_sinks marked, no witness present and there will be a source.
|
||||
|
||||
Fix:
|
||||
If there is a source and no healed_sinks, then reset all the locked
|
||||
sources to 0 and healed sinks to 1 to do conservative merge.
|
||||
|
||||
Change-Id: I8831603ac037b6a3000bee092abfdcc92f7f2e57
|
||||
Signed-off-by: karthik-us <ksubrahm@redhat.com>
|
||||
BUG: 1764095
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185834
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
.../bug-1749322-entry-heal-not-happening.t | 89 ++++++++++++++++++++++
|
||||
xlators/cluster/afr/src/afr-self-heal-entry.c | 15 ++++
|
||||
2 files changed, 104 insertions(+)
|
||||
create mode 100644 tests/bugs/replicate/bug-1749322-entry-heal-not-happening.t
|
||||
|
||||
diff --git a/tests/bugs/replicate/bug-1749322-entry-heal-not-happening.t b/tests/bugs/replicate/bug-1749322-entry-heal-not-happening.t
|
||||
new file mode 100644
|
||||
index 0000000..9627908
|
||||
--- /dev/null
|
||||
+++ b/tests/bugs/replicate/bug-1749322-entry-heal-not-happening.t
|
||||
@@ -0,0 +1,89 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+. $(dirname $0)/../../include.rc
|
||||
+. $(dirname $0)/../../volume.rc
|
||||
+. $(dirname $0)/../../afr.rc
|
||||
+
|
||||
+cleanup
|
||||
+
|
||||
+function check_gfid_and_link_count
|
||||
+{
|
||||
+ local file=$1
|
||||
+
|
||||
+ file_gfid_b0=$(gf_get_gfid_xattr $B0/${V0}0/$file)
|
||||
+ TEST [ ! -z $file_gfid_b0 ]
|
||||
+ file_gfid_b1=$(gf_get_gfid_xattr $B0/${V0}1/$file)
|
||||
+ file_gfid_b2=$(gf_get_gfid_xattr $B0/${V0}2/$file)
|
||||
+ EXPECT $file_gfid_b0 echo $file_gfid_b1
|
||||
+ EXPECT $file_gfid_b0 echo $file_gfid_b2
|
||||
+
|
||||
+ EXPECT "2" stat -c %h $B0/${V0}0/$file
|
||||
+ EXPECT "2" stat -c %h $B0/${V0}1/$file
|
||||
+ EXPECT "2" stat -c %h $B0/${V0}2/$file
|
||||
+}
|
||||
+TESTS_EXPECTED_IN_LOOP=18
|
||||
+
|
||||
+################################################################################
|
||||
+## Start and create a volume
|
||||
+TEST glusterd;
|
||||
+TEST pidof glusterd;
|
||||
+TEST $CLI volume info;
|
||||
+
|
||||
+TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{0,1,2};
|
||||
+TEST $CLI volume start $V0;
|
||||
+TEST $CLI volume set $V0 cluster.heal-timeout 5
|
||||
+TEST $CLI volume heal $V0 disable
|
||||
+EXPECT 'Started' volinfo_field $V0 'Status';
|
||||
+TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 $M0
|
||||
+
|
||||
+TEST mkdir $M0/dir
|
||||
+TEST `echo "File 1 " > $M0/dir/file1`
|
||||
+TEST touch $M0/dir/file{2..4}
|
||||
+
|
||||
+# Remove file2 from 1st & 3rd bricks
|
||||
+TEST rm -f $B0/$V0"0"/dir/file2
|
||||
+TEST rm -f $B0/$V0"2"/dir/file2
|
||||
+
|
||||
+# Remove file3 and the .glusterfs hardlink from 1st & 2nd bricks
|
||||
+gfid_file3=$(gf_get_gfid_xattr $B0/$V0"0"/dir/file3)
|
||||
+gfid_str_file3=$(gf_gfid_xattr_to_str $gfid_file3)
|
||||
+TEST rm $B0/$V0"0"/.glusterfs/${gfid_str_file3:0:2}/${gfid_str_file3:2:2}/$gfid_str_file3
|
||||
+TEST rm $B0/$V0"1"/.glusterfs/${gfid_str_file3:0:2}/${gfid_str_file3:2:2}/$gfid_str_file3
|
||||
+TEST rm -f $B0/$V0"0"/dir/file3
|
||||
+TEST rm -f $B0/$V0"1"/dir/file3
|
||||
+
|
||||
+# Remove the .glusterfs hardlink and the gfid xattr of file4 on 3rd brick
|
||||
+gfid_file4=$(gf_get_gfid_xattr $B0/$V0"0"/dir/file4)
|
||||
+gfid_str_file4=$(gf_gfid_xattr_to_str $gfid_file4)
|
||||
+TEST rm $B0/$V0"2"/.glusterfs/${gfid_str_file4:0:2}/${gfid_str_file4:2:2}/$gfid_str_file4
|
||||
+TEST setfattr -x trusted.gfid $B0/$V0"2"/dir/file4
|
||||
+
|
||||
+# B0 and B2 blame each other
|
||||
+setfattr -n trusted.afr.$V0-client-0 -v 0x000000000000000000000001 $B0/$V0"2"/dir
|
||||
+setfattr -n trusted.afr.$V0-client-2 -v 0x000000000000000000000001 $B0/$V0"0"/dir
|
||||
+
|
||||
+# Add entry to xattrop dir on first brick.
|
||||
+xattrop_dir0=$(afr_get_index_path $B0/$V0"0")
|
||||
+base_entry_b0=`ls $xattrop_dir0`
|
||||
+gfid_str=$(gf_gfid_xattr_to_str $(gf_get_gfid_xattr $B0/$V0"0"/dir/))
|
||||
+TEST ln $xattrop_dir0/$base_entry_b0 $xattrop_dir0/$gfid_str
|
||||
+
|
||||
+EXPECT "^1$" get_pending_heal_count $V0
|
||||
+
|
||||
+# Launch heal
|
||||
+TEST $CLI volume heal $V0 enable
|
||||
+EXPECT_WITHIN $PROCESS_UP_TIMEOUT "^Y$" glustershd_up_status
|
||||
+EXPECT_WITHIN $CHILD_UP_TIMEOUT "^1$" afr_child_up_status_in_shd $V0 0
|
||||
+EXPECT_WITHIN $CHILD_UP_TIMEOUT "^1$" afr_child_up_status_in_shd $V0 1
|
||||
+EXPECT_WITHIN $CHILD_UP_TIMEOUT "^1$" afr_child_up_status_in_shd $V0 2
|
||||
+TEST $CLI volume heal $V0
|
||||
+EXPECT_WITHIN $HEAL_TIMEOUT "^0$" get_pending_heal_count $V0
|
||||
+
|
||||
+# All the files must be present on all the bricks after conservative merge and
|
||||
+# should have the gfid xattr and the .glusterfs hardlink.
|
||||
+check_gfid_and_link_count dir/file1
|
||||
+check_gfid_and_link_count dir/file2
|
||||
+check_gfid_and_link_count dir/file3
|
||||
+check_gfid_and_link_count dir/file4
|
||||
+
|
||||
+cleanup
|
||||
diff --git a/xlators/cluster/afr/src/afr-self-heal-entry.c b/xlators/cluster/afr/src/afr-self-heal-entry.c
|
||||
index 35b600f..3ce882e 100644
|
||||
--- a/xlators/cluster/afr/src/afr-self-heal-entry.c
|
||||
+++ b/xlators/cluster/afr/src/afr-self-heal-entry.c
|
||||
@@ -479,6 +479,7 @@ __afr_selfheal_entry_finalize_source(xlator_t *this, unsigned char *sources,
|
||||
afr_private_t *priv = NULL;
|
||||
int source = -1;
|
||||
int sources_count = 0;
|
||||
+ int i = 0;
|
||||
|
||||
priv = this->private;
|
||||
|
||||
@@ -492,6 +493,20 @@ __afr_selfheal_entry_finalize_source(xlator_t *this, unsigned char *sources,
|
||||
}
|
||||
|
||||
source = afr_choose_source_by_policy(priv, sources, AFR_ENTRY_TRANSACTION);
|
||||
+
|
||||
+ /*If the selected source does not blame any other brick, then mark
|
||||
+ * everything as sink to trigger conservative merge.
|
||||
+ */
|
||||
+ if (source != -1 && !AFR_COUNT(healed_sinks, priv->child_count)) {
|
||||
+ for (i = 0; i < priv->child_count; i++) {
|
||||
+ if (locked_on[i]) {
|
||||
+ sources[i] = 0;
|
||||
+ healed_sinks[i] = 1;
|
||||
+ }
|
||||
+ }
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
return source;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
59
0330-mount.glusterfs-change-the-error-message.patch
Normal file
59
0330-mount.glusterfs-change-the-error-message.patch
Normal file
@ -0,0 +1,59 @@
|
||||
From 72168245761592a2cd0ebec05dd9bd9bc00745ca Mon Sep 17 00:00:00 2001
|
||||
From: Amar Tumballi <amarts@redhat.com>
|
||||
Date: Wed, 13 Mar 2019 08:51:31 +0530
|
||||
Subject: [PATCH 330/335] mount.glusterfs: change the error message
|
||||
|
||||
In scenarios where a mount fails before creating log file, doesn't
|
||||
make sense to give message to 'check log file'. See below:
|
||||
|
||||
```
|
||||
ERROR: failed to create logfile "/var/log/glusterfs/mnt.log" (No space left on device)
|
||||
ERROR: failed to open logfile /var/log/glusterfs/mnt.log
|
||||
Mount failed. Please check the log file for more details.
|
||||
```
|
||||
|
||||
>upstream patch: https://review.gluster.org/#/c/glusterfs/+/22346/
|
||||
>Fixes: bz#1688068
|
||||
>Change-Id: I1d837caa4f9bc9f1a37780783e95007e01ae4e3f
|
||||
>Signed-off-by: Amar Tumballi <amarts@redhat.com>
|
||||
|
||||
BUG: 1685406
|
||||
Change-Id: I1d837caa4f9bc9f1a37780783e95007e01ae4e3f
|
||||
Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185828
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
xlators/mount/fuse/utils/mount.glusterfs.in | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xlators/mount/fuse/utils/mount.glusterfs.in b/xlators/mount/fuse/utils/mount.glusterfs.in
|
||||
index 3f5d76d..cbde42d 100755
|
||||
--- a/xlators/mount/fuse/utils/mount.glusterfs.in
|
||||
+++ b/xlators/mount/fuse/utils/mount.glusterfs.in
|
||||
@@ -361,7 +361,10 @@ start_glusterfs ()
|
||||
cmd_line=$(echo "$cmd_line $mount_point");
|
||||
$cmd_line;
|
||||
if [ $? -ne 0 ]; then
|
||||
- warn "Mount failed. Please check the log file for more details."
|
||||
+ # If this is true, then glusterfs process returned error without
|
||||
+ # getting daemonized. We have made sure the logs are posted to
|
||||
+ # 'stderr', so no need to point them to logfile.
|
||||
+ warn "Mounting glusterfs on $mount_point failed."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
@@ -369,7 +372,9 @@ start_glusterfs ()
|
||||
inode=$( ${getinode} $mount_point 2>/dev/null);
|
||||
# this is required if the stat returns error
|
||||
if [ $? -ne 0 ]; then
|
||||
- warn "Mount failed. Please check the log file for more details."
|
||||
+ # At this time, glusterfs got daemonized, and then later exited.
|
||||
+ # These failures are only logged in log file.
|
||||
+ warn "Mount failed. Check the log file ${log_file} for more details."
|
||||
umount $mount_point > /dev/null 2>&1;
|
||||
exit 1;
|
||||
fi
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,44 @@
|
||||
From 147cff762b307bf60519bae4cdefc62f655119a7 Mon Sep 17 00:00:00 2001
|
||||
From: Pranith Kumar K <pkarampu@redhat.com>
|
||||
Date: Wed, 30 Oct 2019 10:47:17 +0530
|
||||
Subject: [PATCH 331/335] features/locks: Do special handling for op-version <
|
||||
3.12.0
|
||||
|
||||
Problem:
|
||||
Patch https://code.engineering.redhat.com/gerrit/#/c/140080/ diverges from
|
||||
its upstream patch(https://review.gluster.org/c/glusterfs/+/20031) in op-version.
|
||||
On upstream special-handling happens for version < 3.10.0 whereas for downstream
|
||||
special-handling happens for version < 3.12.0.
|
||||
When rebase happened for 3.5.0 from upstream, this downstream specific change
|
||||
is missed as there was no special downstream-only patch tracking this difference.
|
||||
This leads to I/O errors on upgrade from 3.3.1->3.5.0
|
||||
|
||||
Fix:
|
||||
Do special handling for op-version < 3.12.0 as in 3.4.x
|
||||
|
||||
Change-Id: I72fec058bdfb3cd30d017d205c90aa61aec86c5d
|
||||
Label: DOWNSTREAM ONLY
|
||||
BUG: 1766640
|
||||
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185835
|
||||
Reviewed-by: Xavi Hernandez Juan <xhernandez@redhat.com>
|
||||
---
|
||||
xlators/features/locks/src/posix.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xlators/features/locks/src/posix.c b/xlators/features/locks/src/posix.c
|
||||
index 9db5ac6..4592240 100644
|
||||
--- a/xlators/features/locks/src/posix.c
|
||||
+++ b/xlators/features/locks/src/posix.c
|
||||
@@ -57,7 +57,7 @@ fetch_pathinfo(xlator_t *, inode_t *, int32_t *, char **);
|
||||
do { \
|
||||
pl_local_t *__local = NULL; \
|
||||
if (frame->root->client && \
|
||||
- (frame->root->client->opversion < GD_OP_VERSION_3_10_0)) { \
|
||||
+ (frame->root->client->opversion < GD_OP_VERSION_3_12_0)) { \
|
||||
__local = frame->local; \
|
||||
PL_STACK_UNWIND_AND_FREE(__local, fop, frame, op_ret, params); \
|
||||
} else { \
|
||||
--
|
||||
1.8.3.1
|
||||
|
57
0332-Removing-one-top-command-from-gluster-v-help.patch
Normal file
57
0332-Removing-one-top-command-from-gluster-v-help.patch
Normal file
@ -0,0 +1,57 @@
|
||||
From 808f311bd4f38f06b8afc49fc8d2c65fc4797431 Mon Sep 17 00:00:00 2001
|
||||
From: kshithijiyer <kshithij.ki@gmail.com>
|
||||
Date: Fri, 28 Jun 2019 15:32:31 +0530
|
||||
Subject: [PATCH 332/335] Removing one top command from gluster v help
|
||||
|
||||
The current help show 2 different top commands
|
||||
intead of one single top command which can be
|
||||
easily observed when "# gluster v help" command
|
||||
is issued. Removing one "volume top <VOLNAME>"
|
||||
and clubbing into them into a single command.
|
||||
|
||||
Current help:
|
||||
volume top <VOLNAME> {open|read|write|opendir|readdir|clear}
|
||||
[nfs|brick <brick>] [list-cnt <value>] |
|
||||
volume top <VOLNAME> {read-perf|write-perf}
|
||||
[bs <size> count <count>] [brick <brick>]
|
||||
[list-cnt <value>] - volume top operations
|
||||
|
||||
Expected help:
|
||||
volume top <VOLNAME> {open|read|write|opendir|readdir|clear}
|
||||
[nfs|brick <brick>] [list-cnt <value>] | {read-perf|write-perf}
|
||||
[bs <size> count <count>] [brick <brick>] [list-cnt <value>]
|
||||
- volume top operations
|
||||
|
||||
> upstream patch: https://review.gluster.org/#/c/glusterfs/+/22972/
|
||||
> fixes: bz#1725034
|
||||
> Change-Id: Ifbc4c95f2558286e27dfc5e9667046b80eb1715d
|
||||
> Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
|
||||
|
||||
BUG: 1726058
|
||||
Change-Id: Ifbc4c95f2558286e27dfc5e9667046b80eb1715d
|
||||
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185757
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
cli/src/cli-cmd-volume.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c
|
||||
index 66beb1b..754d333 100644
|
||||
--- a/cli/src/cli-cmd-volume.c
|
||||
+++ b/cli/src/cli-cmd-volume.c
|
||||
@@ -3427,8 +3427,8 @@ struct cli_cmd volume_cmds[] = {
|
||||
cli_cmd_volume_profile_cbk, "volume profile operations"},
|
||||
|
||||
{"volume top <VOLNAME> {open|read|write|opendir|readdir|clear} [nfs|brick "
|
||||
- "<brick>] [list-cnt <value>] |\n"
|
||||
- "volume top <VOLNAME> {read-perf|write-perf} [bs <size> count <count>] "
|
||||
+ "<brick>] [list-cnt <value>] | "
|
||||
+ "{read-perf|write-perf} [bs <size> count <count>] "
|
||||
"[brick <brick>] [list-cnt <value>]",
|
||||
cli_cmd_volume_top_cbk, "volume top operations"},
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
195
0333-rpc-Synchronize-slot-allocation-code.patch
Normal file
195
0333-rpc-Synchronize-slot-allocation-code.patch
Normal file
@ -0,0 +1,195 @@
|
||||
From f199094cb61341a47c98a8ed91b293446182b5a9 Mon Sep 17 00:00:00 2001
|
||||
From: Mohit Agrawal <moagrawal@redhat.com>
|
||||
Date: Thu, 3 Oct 2019 14:06:52 +0530
|
||||
Subject: [PATCH 333/335] rpc: Synchronize slot allocation code
|
||||
|
||||
Problem: Current slot allocation/deallocation code path is not
|
||||
synchronized.There are scenario when due to race condition
|
||||
in slot allocation/deallocation code path brick is crashed.
|
||||
|
||||
Solution: Synchronize slot allocation/deallocation code path to
|
||||
avoid the issue
|
||||
|
||||
> Change-Id: I4fb659a75234218ffa0e5e0bf9308f669f75fc25
|
||||
> Fixes: bz#1763036
|
||||
> Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
|
||||
> (Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/23508/)
|
||||
> (Cherry pick from commit faf5ac13c4ee00a05e9451bf8da3be2a9043bbf2)
|
||||
|
||||
Change-Id: I4fb659a75234218ffa0e5e0bf9308f669f75fc25
|
||||
BUG: 1741193
|
||||
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185827
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
libglusterfs/src/event-epoll.c | 74 +++++++++++++++++++++++-------------------
|
||||
1 file changed, 41 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/libglusterfs/src/event-epoll.c b/libglusterfs/src/event-epoll.c
|
||||
index 0cec47e..65f5efd 100644
|
||||
--- a/libglusterfs/src/event-epoll.c
|
||||
+++ b/libglusterfs/src/event-epoll.c
|
||||
@@ -69,15 +69,27 @@ __event_newtable(struct event_pool *event_pool, int table_idx)
|
||||
}
|
||||
|
||||
static int
|
||||
+event_slot_ref(struct event_slot_epoll *slot)
|
||||
+{
|
||||
+ if (!slot)
|
||||
+ return -1;
|
||||
+
|
||||
+ return GF_ATOMIC_INC(slot->ref);
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
__event_slot_alloc(struct event_pool *event_pool, int fd,
|
||||
- char notify_poller_death)
|
||||
+ char notify_poller_death, struct event_slot_epoll **slot)
|
||||
{
|
||||
int i = 0;
|
||||
+ int j = 0;
|
||||
int table_idx = -1;
|
||||
int gen = -1;
|
||||
struct event_slot_epoll *table = NULL;
|
||||
|
||||
- for (i = 0; i < EVENT_EPOLL_TABLES; i++) {
|
||||
+retry:
|
||||
+
|
||||
+ while (i < EVENT_EPOLL_TABLES) {
|
||||
switch (event_pool->slots_used[i]) {
|
||||
case EVENT_EPOLL_SLOTS:
|
||||
continue;
|
||||
@@ -98,6 +110,7 @@ __event_slot_alloc(struct event_pool *event_pool, int fd,
|
||||
if (table)
|
||||
/* break out of the loop */
|
||||
break;
|
||||
+ i++;
|
||||
}
|
||||
|
||||
if (!table)
|
||||
@@ -105,20 +118,20 @@ __event_slot_alloc(struct event_pool *event_pool, int fd,
|
||||
|
||||
table_idx = i;
|
||||
|
||||
- for (i = 0; i < EVENT_EPOLL_SLOTS; i++) {
|
||||
- if (table[i].fd == -1) {
|
||||
+ for (j = 0; j < EVENT_EPOLL_SLOTS; j++) {
|
||||
+ if (table[j].fd == -1) {
|
||||
/* wipe everything except bump the generation */
|
||||
- gen = table[i].gen;
|
||||
- memset(&table[i], 0, sizeof(table[i]));
|
||||
- table[i].gen = gen + 1;
|
||||
+ gen = table[j].gen;
|
||||
+ memset(&table[j], 0, sizeof(table[j]));
|
||||
+ table[j].gen = gen + 1;
|
||||
|
||||
- LOCK_INIT(&table[i].lock);
|
||||
- INIT_LIST_HEAD(&table[i].poller_death);
|
||||
+ LOCK_INIT(&table[j].lock);
|
||||
+ INIT_LIST_HEAD(&table[j].poller_death);
|
||||
|
||||
- table[i].fd = fd;
|
||||
+ table[j].fd = fd;
|
||||
if (notify_poller_death) {
|
||||
- table[i].idx = table_idx * EVENT_EPOLL_SLOTS + i;
|
||||
- list_add_tail(&table[i].poller_death,
|
||||
+ table[j].idx = table_idx * EVENT_EPOLL_SLOTS + j;
|
||||
+ list_add_tail(&table[j].poller_death,
|
||||
&event_pool->poller_death);
|
||||
}
|
||||
|
||||
@@ -128,18 +141,26 @@ __event_slot_alloc(struct event_pool *event_pool, int fd,
|
||||
}
|
||||
}
|
||||
|
||||
- return table_idx * EVENT_EPOLL_SLOTS + i;
|
||||
+ if (j == EVENT_EPOLL_SLOTS) {
|
||||
+ table = NULL;
|
||||
+ i++;
|
||||
+ goto retry;
|
||||
+ } else {
|
||||
+ (*slot) = &table[j];
|
||||
+ event_slot_ref(*slot);
|
||||
+ return table_idx * EVENT_EPOLL_SLOTS + j;
|
||||
+ }
|
||||
}
|
||||
|
||||
static int
|
||||
event_slot_alloc(struct event_pool *event_pool, int fd,
|
||||
- char notify_poller_death)
|
||||
+ char notify_poller_death, struct event_slot_epoll **slot)
|
||||
{
|
||||
int idx = -1;
|
||||
|
||||
pthread_mutex_lock(&event_pool->mutex);
|
||||
{
|
||||
- idx = __event_slot_alloc(event_pool, fd, notify_poller_death);
|
||||
+ idx = __event_slot_alloc(event_pool, fd, notify_poller_death, slot);
|
||||
}
|
||||
pthread_mutex_unlock(&event_pool->mutex);
|
||||
|
||||
@@ -153,6 +174,7 @@ __event_slot_dealloc(struct event_pool *event_pool, int idx)
|
||||
int offset = 0;
|
||||
struct event_slot_epoll *table = NULL;
|
||||
struct event_slot_epoll *slot = NULL;
|
||||
+ int fd = -1;
|
||||
|
||||
table_idx = idx / EVENT_EPOLL_SLOTS;
|
||||
offset = idx % EVENT_EPOLL_SLOTS;
|
||||
@@ -164,11 +186,13 @@ __event_slot_dealloc(struct event_pool *event_pool, int idx)
|
||||
slot = &table[offset];
|
||||
slot->gen++;
|
||||
|
||||
+ fd = slot->fd;
|
||||
slot->fd = -1;
|
||||
slot->handled_error = 0;
|
||||
slot->in_handler = 0;
|
||||
list_del_init(&slot->poller_death);
|
||||
- event_pool->slots_used[table_idx]--;
|
||||
+ if (fd != -1)
|
||||
+ event_pool->slots_used[table_idx]--;
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -185,15 +209,6 @@ event_slot_dealloc(struct event_pool *event_pool, int idx)
|
||||
return;
|
||||
}
|
||||
|
||||
-static int
|
||||
-event_slot_ref(struct event_slot_epoll *slot)
|
||||
-{
|
||||
- if (!slot)
|
||||
- return -1;
|
||||
-
|
||||
- return GF_ATOMIC_INC(slot->ref);
|
||||
-}
|
||||
-
|
||||
static struct event_slot_epoll *
|
||||
event_slot_get(struct event_pool *event_pool, int idx)
|
||||
{
|
||||
@@ -379,20 +394,13 @@ event_register_epoll(struct event_pool *event_pool, int fd,
|
||||
if (destroy == 1)
|
||||
goto out;
|
||||
|
||||
- idx = event_slot_alloc(event_pool, fd, notify_poller_death);
|
||||
+ idx = event_slot_alloc(event_pool, fd, notify_poller_death, &slot);
|
||||
if (idx == -1) {
|
||||
gf_msg("epoll", GF_LOG_ERROR, 0, LG_MSG_SLOT_NOT_FOUND,
|
||||
"could not find slot for fd=%d", fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
- slot = event_slot_get(event_pool, idx);
|
||||
- if (!slot) {
|
||||
- gf_msg("epoll", GF_LOG_ERROR, 0, LG_MSG_SLOT_NOT_FOUND,
|
||||
- "could not find slot for fd=%d idx=%d", fd, idx);
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
assert(slot->fd == fd);
|
||||
|
||||
LOCK(&slot->lock);
|
||||
--
|
||||
1.8.3.1
|
||||
|
54
0334-dht-log-getxattr-failure-for-node-uuid-at-DEBUG.patch
Normal file
54
0334-dht-log-getxattr-failure-for-node-uuid-at-DEBUG.patch
Normal file
@ -0,0 +1,54 @@
|
||||
From 17940583c4d991a568582581f68dcbf08463ccaf Mon Sep 17 00:00:00 2001
|
||||
From: Susant Palai <spalai@redhat.com>
|
||||
Date: Tue, 16 Jul 2019 10:31:46 +0530
|
||||
Subject: [PATCH 334/335] dht: log getxattr failure for node-uuid at "DEBUG"
|
||||
|
||||
There are two ways to fetch node-uuid information from dht.
|
||||
|
||||
1 - #define GF_XATTR_LIST_NODE_UUIDS_KEY "trusted.glusterfs.list-node-uuids"
|
||||
This key is used by AFR.
|
||||
|
||||
2 - #define GF_REBAL_FIND_LOCAL_SUBVOL "glusterfs.find-local-subvol"
|
||||
This key is used for non-afr volume type.
|
||||
|
||||
We do two getxattr operations. First on the #1 key followed by on #2 if
|
||||
getxattr on #1 key fails.
|
||||
|
||||
Since the parent function "dht_init_local_subvols_and_nodeuuids" logs failure,
|
||||
moving the log-level to DEBUG in dht_find_local_subvol_cbk.
|
||||
|
||||
>fixes: bz#1730175
|
||||
>Change-Id: I4d88244dc26587b111ca5b00d4c00118efdaac14
|
||||
>Signed-off-by: Susant Palai <spalai@redhat.com>
|
||||
Upstream patch: https://review.gluster.org/#/c/glusterfs/+/23053/
|
||||
|
||||
BUG: 1727755
|
||||
Change-Id: I4d88244dc26587b111ca5b00d4c00118efdaac14
|
||||
Signed-off-by: Sunil Kumar Acharya <sheggodu@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/185876
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
---
|
||||
xlators/cluster/dht/src/dht-common.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
|
||||
index 37952ba..d0b5287 100644
|
||||
--- a/xlators/cluster/dht/src/dht-common.c
|
||||
+++ b/xlators/cluster/dht/src/dht-common.c
|
||||
@@ -4253,8 +4253,11 @@ dht_find_local_subvol_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->op_ret = -1;
|
||||
local->op_errno = op_errno;
|
||||
UNLOCK(&frame->lock);
|
||||
- gf_msg(this->name, GF_LOG_ERROR, op_errno, DHT_MSG_GET_XATTR_FAILED,
|
||||
- "getxattr err for dir");
|
||||
+ if (op_errno == ENODATA)
|
||||
+ gf_msg_debug(this->name, 0, "failed to get node-uuid");
|
||||
+ else
|
||||
+ gf_msg(this->name, GF_LOG_ERROR, op_errno,
|
||||
+ DHT_MSG_GET_XATTR_FAILED, "failed to get node-uuid");
|
||||
goto post_unlock;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
15991
0335-tests-RHEL8-test-failure-fixes-for-RHGS.patch
Normal file
15991
0335-tests-RHEL8-test-failure-fixes-for-RHGS.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -231,7 +231,7 @@ Release: 0.1%{?prereltag:.%{prereltag}}%{?dist}
|
||||
%else
|
||||
Name: glusterfs
|
||||
Version: 6.0
|
||||
Release: 21%{?dist}
|
||||
Release: 23%{?dist}
|
||||
ExcludeArch: i686
|
||||
%endif
|
||||
License: GPLv2 or LGPLv3+
|
||||
@ -623,6 +623,27 @@ Patch0311: 0311-geo-rep-Fix-Permission-denied-traceback-on-non-root-.patch
|
||||
Patch0312: 0312-Scripts-quota_fsck-script-KeyError-contri_size.patch
|
||||
Patch0313: 0313-extras-Cgroup-CPU-Mem-restriction-are-not-working-on.patch
|
||||
Patch0314: 0314-glusterd-tier-is_tier_enabled-inserted-causing-check.patch
|
||||
Patch0315: 0315-geo-rep-Fix-py2-py3-compatibility-in-repce.patch
|
||||
Patch0316: 0316-spec-fixed-python-prettytable-dependency-for-rhel6.patch
|
||||
Patch0317: 0317-Update-rfc.sh-to-rhgs-3.5.1.patch
|
||||
Patch0318: 0318-Update-rfc.sh-to-rhgs-3.5.1.patch
|
||||
Patch0319: 0319-features-snapview-server-obtain-the-list-of-snapshot.patch
|
||||
Patch0320: 0320-gf-event-Handle-unix-volfile-servers.patch
|
||||
Patch0321: 0321-Adding-white-spaces-to-description-of-set-group.patch
|
||||
Patch0322: 0322-glusterd-display-correct-rebalance-data-size-after-g.patch
|
||||
Patch0323: 0323-cli-display-detailed-rebalance-info.patch
|
||||
Patch0324: 0324-extras-hooks-Add-SELinux-label-on-new-bricks-during-.patch
|
||||
Patch0325: 0325-extras-hooks-Install-and-package-newly-added-post-ad.patch
|
||||
Patch0326: 0326-tests-subdir-mount.t-is-failing-for-brick_mux-regrss.patch
|
||||
Patch0327: 0327-glusterfind-integrate-with-gfid2path.patch
|
||||
Patch0328: 0328-glusterd-Add-warning-and-abort-in-case-of-failures-i.patch
|
||||
Patch0329: 0329-cluster-afr-Heal-entries-when-there-is-a-source-no-h.patch
|
||||
Patch0330: 0330-mount.glusterfs-change-the-error-message.patch
|
||||
Patch0331: 0331-features-locks-Do-special-handling-for-op-version-3..patch
|
||||
Patch0332: 0332-Removing-one-top-command-from-gluster-v-help.patch
|
||||
Patch0333: 0333-rpc-Synchronize-slot-allocation-code.patch
|
||||
Patch0334: 0334-dht-log-getxattr-failure-for-node-uuid-at-DEBUG.patch
|
||||
Patch0335: 0335-tests-RHEL8-test-failure-fixes-for-RHGS.patch
|
||||
|
||||
%description
|
||||
GlusterFS is a distributed file-system capable of scaling to several
|
||||
@ -1022,7 +1043,7 @@ This package provides the translators needed on any GlusterFS client.
|
||||
%package events
|
||||
Summary: GlusterFS Events
|
||||
Requires: %{name}-server%{?_isa} = %{version}-%{release}
|
||||
Requires: python%{_pythonver} python%{_pythonver}-prettytable
|
||||
Requires: python%{_pythonver}
|
||||
Requires: python%{_pythonver}-gluster = %{version}-%{release}
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
|
||||
Requires: python-requests
|
||||
@ -1030,7 +1051,10 @@ Requires: python-requests
|
||||
Requires: python%{_pythonver}-requests
|
||||
%endif
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
|
||||
Requires: python-prettytable
|
||||
Requires: python-argparse
|
||||
%else
|
||||
Requires: python%{_pythonver}-prettytable
|
||||
%endif
|
||||
%if ( 0%{?_with_systemd:1} )
|
||||
%{?systemd_requires}
|
||||
@ -1833,6 +1857,7 @@ exit 0
|
||||
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick
|
||||
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post
|
||||
%attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh
|
||||
%attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh
|
||||
%attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
|
||||
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
|
||||
%attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh
|
||||
@ -2336,6 +2361,14 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Nov 21 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-23
|
||||
- fixes bugs bz#1344758 bz#1599802 bz#1685406 bz#1686800 bz#1724021
|
||||
bz#1726058 bz#1727755 bz#1731513 bz#1741193 bz#1758923 bz#1761326 bz#1761486
|
||||
bz#1762180 bz#1764095 bz#1766640
|
||||
|
||||
* Thu Nov 14 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-22
|
||||
- fixes bugs bz#1771524 bz#1771614
|
||||
|
||||
* Fri Oct 25 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-21
|
||||
- fixes bugs bz#1765555
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user