autobuild v3.12.2-21

Resolves: bz#1623749 bz#1630997
Signed-off-by: Milind Changire <mchangir@redhat.com>
This commit is contained in:
Milind Changire 2018-10-03 07:43:54 -04:00
parent 4ac8d6a59b
commit b6e662539f
3 changed files with 133 additions and 1 deletions

View File

@ -0,0 +1,86 @@
From cb4bf2bb3721e66c28a01be6ffff54a6f8610f0e Mon Sep 17 00:00:00 2001
From: Sanju Rakonde <srakonde@redhat.com>
Date: Tue, 25 Sep 2018 23:36:48 +0530
Subject: [PATCH 386/387] glusterd: make sure that brickinfo->uuid is not null
Problem: After an upgrade from the version where shared-brick-count
option is not present to a version which introduced this option
causes issue at the mount point i.e, size of the volume at mount
point will be reduced by shared-brick-count value times.
Cause: shared-brick-count is equal to the number of bricks that
are sharing the file system. gd_set_shared_brick_count() calculates
the shared-brick-count value based on uuid of the node and fsid of
the brick. https://review.gluster.org/#/c/glusterfs/+/19484 handles
setting of fsid properly during an upgrade path. This patch assumed
that when the code path is reached, brickinfo->uuid is non-null.
But brickinfo->uuid is null for all the bricks, as the uuid is null
https://review.gluster.org/#/c/glusterfs/+/19484 couldn't reached the
code path to set the fsid for bricks. So, we had fsid as 0 for all
bricks, which resulted in gd_set_shared_brick_count() to calculate
shared-brick-count in a wrong way. i.e, the logic written in
gd_set_shared_brick_count() didn't work as expected since fsid is 0.
Solution: Before control reaches the code path written by
https://review.gluster.org/#/c/glusterfs/+/19484,
adding a check for whether brickinfo->uuid is null and
if brickinfo->uuid is having null value, calling
glusterd_resolve_brick will set the brickinfo->uuid to a
proper value. When we have proper uuid, fsid for the bricks
will be set properly and shared-brick-count value will be
caluculated correctly.
Please take a look at the bug https://bugzilla.redhat.com/show_bug.cgi?id=1632889
for complete RCA
Steps followed to test the fix:
1. Created a 2 node cluster, the cluster is running with binary
which doesn't have shared-brick-count option
2. Created a 2x(2+1) volume and started it
3. Mouted the volume, checked size of volume using df
4. Upgrade to a version where shared-brick-count is introduced
(upgraded the nodes one by one i.e, stop the glusterd, upgrade the node
and start the glusterd).
5. after upgrading both the nodes, bumped up the cluster.op-version
6. At mount point, df shows the correct size for volume.
updtream patch: https://review.gluster.org/#/c/glusterfs/+/21278/
> fixes: bz#1632889
> Change-Id: Ib9f078aafb15e899a01086eae113270657ea916b
> Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
Change-Id: Ib9f078aafb15e899a01086eae113270657ea916b
BUG: 1630997
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/151321
Tested-by: RHGS Build Bot <nigelb@redhat.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
---
xlators/mgmt/glusterd/src/glusterd-store.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c
index 387e7e5..015f6c2 100644
--- a/xlators/mgmt/glusterd/src/glusterd-store.c
+++ b/xlators/mgmt/glusterd/src/glusterd-store.c
@@ -2609,6 +2609,8 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo)
* snapshot or snapshot restored volume this would be done post
* creating the brick mounts
*/
+ if (gf_uuid_is_null(brickinfo->uuid))
+ (void)glusterd_resolve_brick(brickinfo);
if (brickinfo->real_path[0] == '\0' && !volinfo->is_snap_volume
&& gf_uuid_is_null (volinfo->restored_from_snap)) {
/* By now if the brick is a local brick then it will be
@@ -2617,7 +2619,6 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo)
* with MY_UUID for realpath check. Hence do not handle
* error
*/
- (void)glusterd_resolve_brick (brickinfo);
if (!gf_uuid_compare(brickinfo->uuid, MY_UUID)) {
if (!realpath (brickinfo->path, abspath)) {
gf_msg (this->name, GF_LOG_CRITICAL,
--
1.8.3.1

View File

@ -0,0 +1,41 @@
From 8e7eb94645355024a12417aa247fa3eecc586274 Mon Sep 17 00:00:00 2001
From: Kotresh HR <khiremat@redhat.com>
Date: Mon, 1 Oct 2018 04:37:47 -0400
Subject: [PATCH 387/387] georep: Fix config set of monitor status
The backport of [1] introduced config set of monitor
status using new config framework available in
upstream but is not available in downstream. Hence
introduced the issue in downstreamwhere monitor
failed to start workers. Fixed the same and marking
in downstream only.
[1] https://code.engineering.redhat.com/149760
BUG: 1623749
Change-Id: Ia80b66137d0a3b193d178859a5d3c5fca01aa623
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/151428
Tested-by: RHGS Build Bot <nigelb@redhat.com>
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
---
geo-replication/syncdaemon/monitor.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geo-replication/syncdaemon/monitor.py b/geo-replication/syncdaemon/monitor.py
index 3451fe4..1b03d7d 100644
--- a/geo-replication/syncdaemon/monitor.py
+++ b/geo-replication/syncdaemon/monitor.py
@@ -384,7 +384,7 @@ class Monitor(object):
# It will also cause fd leaks.
self.lock.acquire()
- set_monitor_status(gconf.get("state-file"), self.ST_STARTED)
+ set_monitor_status(gconf.state_file, self.ST_STARTED)
self.lock.release()
for t in ta:
t.join()
--
1.8.3.1

View File

@ -192,7 +192,7 @@ Release: 0.1%{?prereltag:.%{prereltag}}%{?dist}
%else
Name: glusterfs
Version: 3.12.2
Release: 20%{?dist}
Release: 21%{?dist}
%endif
License: GPLv2 or LGPLv3+
Group: System Environment/Base
@ -650,6 +650,8 @@ Patch0382: 0382-mount-fuse-make-fuse-dumping-available-as-mount-opti.patch
Patch0383: 0383-glusterd-bump-up-GD_OP_VERSION_MAX.patch
Patch0384: 0384-features-uss-Use-xxh64-to-generate-gfid-instead-of-m.patch
Patch0385: 0385-afr-fix-incorrect-reporting-of-directory-split-brain.patch
Patch0386: 0386-glusterd-make-sure-that-brickinfo-uuid-is-not-null.patch
Patch0387: 0387-georep-Fix-config-set-of-monitor-status.patch
%description
GlusterFS is a distributed file-system capable of scaling to several
@ -2598,6 +2600,9 @@ fi
%endif
%changelog
* Wed Oct 03 2018 Milind Changire <mchangir@redhat.com> - 3.12.2-21
- fixes bugs bz#1623749 bz#1630997
* Sat Sep 22 2018 Sunil Kumar Acharya <sheggodu@redhat.com> - 3.12.2-20
- Build respin with appropriate target version.