autobuild v6.0-19
Resolves: bz#1760939 Signed-off-by: Rinku Kothiya <rkothiya@redhat.com>
This commit is contained in:
parent
3350cc81a3
commit
cd32b8a252
240
0309-geo-rep-Fix-config-upgrade-on-non-participating-node.patch
Normal file
240
0309-geo-rep-Fix-config-upgrade-on-non-participating-node.patch
Normal file
@ -0,0 +1,240 @@
|
||||
From 2b1738402276f43d7cb64542b74cb50145e46d77 Mon Sep 17 00:00:00 2001
|
||||
From: Kotresh HR <khiremat@redhat.com>
|
||||
Date: Wed, 16 Oct 2019 14:25:47 +0530
|
||||
Subject: [PATCH 309/309] geo-rep: Fix config upgrade on non-participating node
|
||||
|
||||
After upgrade, if the config files are of old format, it
|
||||
gets migrated to new format. Monitor process migrates it.
|
||||
Since monitor doesn't run on nodes where bricks are not
|
||||
hosted, it doesn't get migrated there. So this patch fixes
|
||||
the config upgrade on nodes which doesn't host bricks.
|
||||
This happens during config either on get/set/reset.
|
||||
|
||||
Backport of:
|
||||
> Patch: https://review.gluster.org/23555
|
||||
> Change-Id: Ibade2f2310b0f3affea21a3baa1ae0eb71162cba
|
||||
> Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||
> fixes: bz#1762220
|
||||
|
||||
Change-Id: Ibade2f2310b0f3affea21a3baa1ae0eb71162cba
|
||||
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||
BUG: 1760939
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/183461
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
geo-replication/syncdaemon/gsyncd.py | 3 +-
|
||||
tests/00-geo-rep/georep-config-upgrade.t | 132 +++++++++++++++++++++++++++++++
|
||||
tests/00-geo-rep/gsyncd.conf.old | 47 +++++++++++
|
||||
3 files changed, 181 insertions(+), 1 deletion(-)
|
||||
create mode 100644 tests/00-geo-rep/georep-config-upgrade.t
|
||||
create mode 100644 tests/00-geo-rep/gsyncd.conf.old
|
||||
|
||||
diff --git a/geo-replication/syncdaemon/gsyncd.py b/geo-replication/syncdaemon/gsyncd.py
|
||||
index 6ae5269..7b48d82 100644
|
||||
--- a/geo-replication/syncdaemon/gsyncd.py
|
||||
+++ b/geo-replication/syncdaemon/gsyncd.py
|
||||
@@ -255,7 +255,8 @@ def main():
|
||||
if args.subcmd == "slave":
|
||||
override_from_args = True
|
||||
|
||||
- if args.subcmd == "monitor":
|
||||
+ if config_file is not None and \
|
||||
+ args.subcmd in ["monitor", "config-get", "config-set", "config-reset"]:
|
||||
ret = gconf.is_config_file_old(config_file, args.master, extra_tmpl_args["slavevol"])
|
||||
if ret is not None:
|
||||
gconf.config_upgrade(config_file, ret)
|
||||
diff --git a/tests/00-geo-rep/georep-config-upgrade.t b/tests/00-geo-rep/georep-config-upgrade.t
|
||||
new file mode 100644
|
||||
index 0000000..557461c
|
||||
--- /dev/null
|
||||
+++ b/tests/00-geo-rep/georep-config-upgrade.t
|
||||
@@ -0,0 +1,132 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+. $(dirname $0)/../include.rc
|
||||
+. $(dirname $0)/../volume.rc
|
||||
+. $(dirname $0)/../geo-rep.rc
|
||||
+. $(dirname $0)/../env.rc
|
||||
+
|
||||
+SCRIPT_TIMEOUT=300
|
||||
+OLD_CONFIG_PATH=$(dirname $0)/gsyncd.conf.old
|
||||
+WORKING_DIR=/var/lib/glusterd/geo-replication/master_127.0.0.1_slave
|
||||
+
|
||||
+##Cleanup and start glusterd
|
||||
+cleanup;
|
||||
+TEST glusterd;
|
||||
+TEST pidof glusterd
|
||||
+
|
||||
+##Variables
|
||||
+GEOREP_CLI="$CLI volume geo-replication"
|
||||
+master=$GMV0
|
||||
+SH0="127.0.0.1"
|
||||
+slave=${SH0}::${GSV0}
|
||||
+num_active=2
|
||||
+num_passive=2
|
||||
+master_mnt=$M0
|
||||
+slave_mnt=$M1
|
||||
+
|
||||
+############################################################
|
||||
+#SETUP VOLUMES AND GEO-REPLICATION
|
||||
+############################################################
|
||||
+
|
||||
+##create_and_start_master_volume
|
||||
+TEST $CLI volume create $GMV0 replica 2 $H0:$B0/${GMV0}{1,2,3,4};
|
||||
+TEST $CLI volume start $GMV0
|
||||
+
|
||||
+##create_and_start_slave_volume
|
||||
+TEST $CLI volume create $GSV0 replica 2 $H0:$B0/${GSV0}{1,2,3,4};
|
||||
+TEST $CLI volume start $GSV0
|
||||
+
|
||||
+##Create, start and mount meta_volume
|
||||
+TEST $CLI volume create $META_VOL replica 3 $H0:$B0/${META_VOL}{1,2,3};
|
||||
+TEST $CLI volume start $META_VOL
|
||||
+TEST mkdir -p $META_MNT
|
||||
+TEST glusterfs -s $H0 --volfile-id $META_VOL $META_MNT
|
||||
+
|
||||
+##Mount master
|
||||
+TEST glusterfs -s $H0 --volfile-id $GMV0 $M0
|
||||
+
|
||||
+##Mount slave
|
||||
+TEST glusterfs -s $H0 --volfile-id $GSV0 $M1
|
||||
+
|
||||
+############################################################
|
||||
+#BASIC GEO-REPLICATION TESTS
|
||||
+############################################################
|
||||
+
|
||||
+#Create geo-rep session
|
||||
+TEST create_georep_session $master $slave
|
||||
+
|
||||
+#Config gluster-command-dir
|
||||
+TEST $GEOREP_CLI $master $slave config gluster-command-dir ${GLUSTER_CMD_DIR}
|
||||
+
|
||||
+#Config gluster-command-dir
|
||||
+TEST $GEOREP_CLI $master $slave config slave-gluster-command-dir ${GLUSTER_CMD_DIR}
|
||||
+
|
||||
+#Enable_metavolume
|
||||
+TEST $GEOREP_CLI $master $slave config use_meta_volume true
|
||||
+
|
||||
+#Wait for common secret pem file to be created
|
||||
+EXPECT_WITHIN $GEO_REP_TIMEOUT 0 check_common_secret_file
|
||||
+
|
||||
+#Verify the keys are distributed
|
||||
+EXPECT_WITHIN $GEO_REP_TIMEOUT 0 check_keys_distributed
|
||||
+
|
||||
+#Start_georep
|
||||
+TEST $GEOREP_CLI $master $slave start
|
||||
+
|
||||
+EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Active"
|
||||
+EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Passive"
|
||||
+
|
||||
+TEST $GEOREP_CLI $master $slave config sync-method tarssh
|
||||
+
|
||||
+#Stop Geo-rep
|
||||
+TEST $GEOREP_CLI $master $slave stop
|
||||
+
|
||||
+#Copy old config file
|
||||
+mv -f $WORKING_DIR/gsyncd.conf $WORKING_DIR/gsyncd.conf.org
|
||||
+cp -p $OLD_CONFIG_PATH $WORKING_DIR/gsyncd.conf
|
||||
+
|
||||
+#Check if config get all updates config_file
|
||||
+TEST ! grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+TEST $GEOREP_CLI $master $slave config
|
||||
+TEST grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+
|
||||
+#Check if config get updates config_file
|
||||
+rm -f $WORKING_DIR/gsyncd.conf
|
||||
+cp -p $OLD_CONFIG_PATH $WORKING_DIR/gsyncd.conf
|
||||
+TEST ! grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+TEST $GEOREP_CLI $master $slave config sync-method
|
||||
+TEST grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+
|
||||
+#Check if config set updates config_file
|
||||
+rm -f $WORKING_DIR/gsyncd.conf
|
||||
+cp -p $OLD_CONFIG_PATH $WORKING_DIR/gsyncd.conf
|
||||
+TEST ! grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+TEST $GEOREP_CLI $master $slave config sync-xattrs false
|
||||
+TEST grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+
|
||||
+#Check if config reset updates config_file
|
||||
+rm -f $WORKING_DIR/gsyncd.conf
|
||||
+cp -p $OLD_CONFIG_PATH $WORKING_DIR/gsyncd.conf
|
||||
+TEST ! grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+TEST $GEOREP_CLI $master $slave config \!sync-xattrs
|
||||
+TEST grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+
|
||||
+#Check if geo-rep start updates config_file
|
||||
+rm -f $WORKING_DIR/gsyncd.conf
|
||||
+cp -p $OLD_CONFIG_PATH $WORKING_DIR/gsyncd.conf
|
||||
+TEST ! grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+TEST $GEOREP_CLI $master $slave start
|
||||
+TEST grep "sync-method" $WORKING_DIR/gsyncd.conf
|
||||
+
|
||||
+#Stop geo-rep
|
||||
+TEST $GEOREP_CLI $master $slave stop
|
||||
+
|
||||
+#Delete Geo-rep
|
||||
+TEST $GEOREP_CLI $master $slave delete
|
||||
+
|
||||
+#Cleanup authorized keys
|
||||
+sed -i '/^command=.*SSH_ORIGINAL_COMMAND#.*/d' ~/.ssh/authorized_keys
|
||||
+sed -i '/^command=.*gsyncd.*/d' ~/.ssh/authorized_keys
|
||||
+
|
||||
+cleanup;
|
||||
+#G_TESTDEF_TEST_STATUS_NETBSD7=BAD_TEST,BUG=000000
|
||||
diff --git a/tests/00-geo-rep/gsyncd.conf.old b/tests/00-geo-rep/gsyncd.conf.old
|
||||
new file mode 100644
|
||||
index 0000000..519acaf
|
||||
--- /dev/null
|
||||
+++ b/tests/00-geo-rep/gsyncd.conf.old
|
||||
@@ -0,0 +1,47 @@
|
||||
+[__meta__]
|
||||
+version = 2.0
|
||||
+
|
||||
+[peersrx . .]
|
||||
+remote_gsyncd = /usr/local/libexec/glusterfs/gsyncd
|
||||
+georep_session_working_dir = /var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_${slavevol}/
|
||||
+ssh_command_tar = ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i /var/lib/glusterd/geo-replication/tar_ssh.pem
|
||||
+changelog_log_file = /var/log/glusterfs/geo-replication/${mastervol}/${eSlave}${local_id}-changes.log
|
||||
+working_dir = /var/lib/misc/glusterfsd/${mastervol}/${eSlave}
|
||||
+ignore_deletes = false
|
||||
+pid_file = /var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_${slavevol}/monitor.pid
|
||||
+state_file = /var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_${slavevol}/monitor.status
|
||||
+gluster_command_dir = /usr/local/sbin/
|
||||
+gluster_params = aux-gfid-mount acl
|
||||
+ssh_command = ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i /var/lib/glusterd/geo-replication/secret.pem
|
||||
+state_detail_file = /var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_${slavevol}/${eSlave}-detail.status
|
||||
+state_socket_unencoded = /var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_${slavevol}/${eSlave}.socket
|
||||
+socketdir = /var/run/gluster
|
||||
+log_file = /var/log/glusterfs/geo-replication/${mastervol}/${eSlave}.log
|
||||
+gluster_log_file = /var/log/glusterfs/geo-replication/${mastervol}/${eSlave}${local_id}.gluster.log
|
||||
+special_sync_mode = partial
|
||||
+change_detector = changelog
|
||||
+pid-file = /var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_${slavevol}/monitor.pid
|
||||
+state-file = /var/lib/glusterd/geo-replication/${mastervol}_${remotehost}_${slavevol}/monitor.status
|
||||
+
|
||||
+[__section_order__]
|
||||
+peersrx . . = 0
|
||||
+peersrx . %5essh%3a = 2
|
||||
+peersrx . = 3
|
||||
+peers master slave = 4
|
||||
+
|
||||
+[peersrx . %5Essh%3A]
|
||||
+remote_gsyncd = /nonexistent/gsyncd
|
||||
+
|
||||
+[peersrx .]
|
||||
+gluster_command_dir = /usr/local/sbin/
|
||||
+gluster_params = aux-gfid-mount acl
|
||||
+log_file = /var/log/glusterfs/geo-replication-slaves/${session_owner}:${local_node}${local_id}.${slavevol}.log
|
||||
+log_file_mbr = /var/log/glusterfs/geo-replication-slaves/mbr/${session_owner}:${local_node}${local_id}.${slavevol}.log
|
||||
+gluster_log_file = /var/log/glusterfs/geo-replication-slaves/${session_owner}:${local_node}${local_id}.${slavevol}.gluster.log
|
||||
+
|
||||
+[peers master slave]
|
||||
+session_owner = 0732cbd1-3ec5-4920-ab0d-aa5a896d5214
|
||||
+master.stime_xattr_name = trusted.glusterfs.0732cbd1-3ec5-4920-ab0d-aa5a896d5214.07a9005c-ace4-4f67-b3c0-73938fb236c4.stime
|
||||
+volume_id = 0732cbd1-3ec5-4920-ab0d-aa5a896d5214
|
||||
+use_tarssh = true
|
||||
+
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -231,7 +231,7 @@ Release: 0.1%{?prereltag:.%{prereltag}}%{?dist}
|
||||
%else
|
||||
Name: glusterfs
|
||||
Version: 6.0
|
||||
Release: 18%{?dist}
|
||||
Release: 19%{?dist}
|
||||
ExcludeArch: i686
|
||||
%endif
|
||||
License: GPLv2 or LGPLv3+
|
||||
@ -617,6 +617,7 @@ Patch0305: 0305-glusterd-rebalance-start-should-fail-when-quorum-is-.patch
|
||||
Patch0306: 0306-cli-fix-distCount-value.patch
|
||||
Patch0307: 0307-ssl-fix-RHEL8-regression-failure.patch
|
||||
Patch0308: 0308-dht-Rebalance-causing-IO-Error-File-descriptor-in-ba.patch
|
||||
Patch0309: 0309-geo-rep-Fix-config-upgrade-on-non-participating-node.patch
|
||||
|
||||
%description
|
||||
GlusterFS is a distributed file-system capable of scaling to several
|
||||
@ -2330,6 +2331,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Oct 17 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-19
|
||||
- fixes bugs bz#1760939
|
||||
|
||||
* Wed Oct 16 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-18
|
||||
- fixes bugs bz#1758432
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user