<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/geo-replication, branch heal-info</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>geo-rep: Fix the name of changelog archive file</title>
<updated>2019-08-22T10:02:42+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-08-16T10:37:03+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=5e52f1900b5c61ea429f25fdcf9dfb6c56f550af'/>
<id>5e52f1900b5c61ea429f25fdcf9dfb6c56f550af</id>
<content type='text'>
Background:
The processed changelogs are archived each month in a single tar file.
The default format is "archive_YYYYMM.tar" which is specified as "%%Y%%m"
in configuration file.

Problem:
The created changelog archive file didn't have corresponding year
and month. It created as "archive_%Y%m.tar" on python2 only systems.

Cause and Fix:
Geo-rep expects "%Y%m" after the ConfigParser reads it from config file.
Since it was "%%Y%%m" in config file, geo-rep used to get correct value
"%Y%m" in python3 and "%%Y%%m" in python2 which is incorrect.
The fix can be to use "%Y%m" in config file but that fails in python3.
So the fix is to use "RawConfigParser" in geo-rep and use "%Y%m". This
works both in python2 and python3.

Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
fixes: bz#1741890
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Background:
The processed changelogs are archived each month in a single tar file.
The default format is "archive_YYYYMM.tar" which is specified as "%%Y%%m"
in configuration file.

Problem:
The created changelog archive file didn't have corresponding year
and month. It created as "archive_%Y%m.tar" on python2 only systems.

Cause and Fix:
Geo-rep expects "%Y%m" after the ConfigParser reads it from config file.
Since it was "%%Y%%m" in config file, geo-rep used to get correct value
"%Y%m" in python3 and "%%Y%%m" in python2 which is incorrect.
The fix can be to use "%Y%m" in config file but that fails in python3.
So the fix is to use "RawConfigParser" in geo-rep and use "%Y%m". This
works both in python2 and python3.

Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
fixes: bz#1741890
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Structured logging new format</title>
<updated>2019-08-21T14:00:29+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2019-08-21T04:24:21+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=4c4eae13b474c32661eeae3734627d1a8494cf54'/>
<id>4c4eae13b474c32661eeae3734627d1a8494cf54</id>
<content type='text'>
Structured logging format changed in the below patch for better
readability and parsing. This patch changes the Geo-replication logs
to that format.

https://review.gluster.org/#/c/glusterfs/+/22987/

Before:

```
[2019-08-21 04:23:01.13672] I [monitor(monitor):157:monitor] Monitor: \
  starting gsyncd worker&lt;TAB&gt;brick=/bricks/b1&lt;TAB&gt;slave_node=f29.sonne
```

After:

```
[2019-08-21 04:23:01.13672] I [monitor(monitor):157:monitor] Monitor: \
  starting gsyncd worker [{brick=/bricks/b1}, {slave_node=f29.sonne}]
```

Change-Id: I65ec69a2869e2febeedc558f88620399e4a1a6a4
Updates: #657
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Structured logging format changed in the below patch for better
readability and parsing. This patch changes the Geo-replication logs
to that format.

https://review.gluster.org/#/c/glusterfs/+/22987/

Before:

```
[2019-08-21 04:23:01.13672] I [monitor(monitor):157:monitor] Monitor: \
  starting gsyncd worker&lt;TAB&gt;brick=/bricks/b1&lt;TAB&gt;slave_node=f29.sonne
```

After:

```
[2019-08-21 04:23:01.13672] I [monitor(monitor):157:monitor] Monitor: \
  starting gsyncd worker [{brick=/bricks/b1}, {slave_node=f29.sonne}]
```

Change-Id: I65ec69a2869e2febeedc558f88620399e4a1a6a4
Updates: #657
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix worker connection issue</title>
<updated>2019-08-20T06:20:33+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-08-16T10:08:49+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=b1dc7723610325789ba91220ab414e821ec14119'/>
<id>b1dc7723610325789ba91220ab414e821ec14119</id>
<content type='text'>
All the workers connects to primary slave node. It should
connect to available slave nodes in round robin fashion
and choose different slave node if the corresponding slave
node is down. This patch fixes the same.

Thanks Aravinda for the help in root causing this.

Change-Id: I9f8e7744f4adb8a24833cf173681d109710f98cb
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
Updates: bz#1737484
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All the workers connects to primary slave node. It should
connect to available slave nodes in round robin fashion
and choose different slave node if the corresponding slave
node is down. This patch fixes the same.

Thanks Aravinda for the help in root causing this.

Change-Id: I9f8e7744f4adb8a24833cf173681d109710f98cb
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
Updates: bz#1737484
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix Config Get Race</title>
<updated>2019-08-06T09:33:47+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2019-08-05T13:30:21+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=b1acf275a0779542d0ad1362e926658c037c94d8'/>
<id>b1acf275a0779542d0ad1362e926658c037c94d8</id>
<content type='text'>
When two threads(sync jobs) in Geo-rep worker calls `gconf.get` and
`gconf.getr`(realtime) at the sametime, `getr` resets the conf object
and other one gets None. Thread Lock is introduced to fix the issue.

```
  File "/usr/libexec/glusterfs/python/syncdaemon/syncdutils.py",
  line 368, in twrap
    tf(*aargs)
  File "/usr/libexec/glusterfs/python/syncdaemon/master.py", line 1987,
  in syncjob
    po = self.sync_engine(pb, self.log_err)
  File "/usr/libexec/glusterfs/python/syncdaemon/resource.py",
  line 1444, in rsync
    rconf.ssh_ctl_args + \
AttributeError: 'NoneType' object has no attribute 'split'
```

Change-Id: I9c245e5c36338265354e158f5baa32b119eb2da5
Updates: bz#1737484
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When two threads(sync jobs) in Geo-rep worker calls `gconf.get` and
`gconf.getr`(realtime) at the sametime, `getr` resets the conf object
and other one gets None. Thread Lock is introduced to fix the issue.

```
  File "/usr/libexec/glusterfs/python/syncdaemon/syncdutils.py",
  line 368, in twrap
    tf(*aargs)
  File "/usr/libexec/glusterfs/python/syncdaemon/master.py", line 1987,
  in syncjob
    po = self.sync_engine(pb, self.log_err)
  File "/usr/libexec/glusterfs/python/syncdaemon/resource.py",
  line 1444, in rsync
    rconf.ssh_ctl_args + \
AttributeError: 'NoneType' object has no attribute 'split'
```

Change-Id: I9c245e5c36338265354e158f5baa32b119eb2da5
Updates: bz#1737484
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix mount broker setup issue</title>
<updated>2019-08-02T14:25:40+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-07-31T10:10:55+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=84f7794547522463841068063b22fd3a8d8fca2b'/>
<id>84f7794547522463841068063b22fd3a8d8fca2b</id>
<content type='text'>
Even the use builtin 'type' command as in patch [1]
causes issues if argument in question is not part of PATH
environment variable for that user. This patch fixes the
same by doing source /etc/profile. This was already being
used in another part of script.

[1] https://review.gluster.org/23089

Change-Id: Iceb78835967ec6a4350983eec9af28398410c002
fixes: bz#1734738
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Even the use builtin 'type' command as in patch [1]
causes issues if argument in question is not part of PATH
environment variable for that user. This patch fixes the
same by doing source /etc/profile. This was already being
used in another part of script.

[1] https://review.gluster.org/23089

Change-Id: Iceb78835967ec6a4350983eec9af28398410c002
fixes: bz#1734738
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix mount broker setup issue</title>
<updated>2019-07-23T03:22:38+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-07-22T12:05:21+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=2aa731a259ea457c07494e3c3edf6d5f7c02fe77'/>
<id>2aa731a259ea457c07494e3c3edf6d5f7c02fe77</id>
<content type='text'>
The patch [1] added validation in gverify.sh to check if the gluster
binary on slave by executing gluster directly on slave.  But for
non-root users, even though gluster binary is present, path is not
found when executed via ssh. Hence validate the gluster binary using
bash builtin 'type' command.

[1] https://review.gluster.org/19224

Change-Id: I93ca62c0c5b1e16263e586ddbbca8407d60ca126
fixes: bz#1731920
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The patch [1] added validation in gverify.sh to check if the gluster
binary on slave by executing gluster directly on slave.  But for
non-root users, even though gluster binary is present, path is not
found when executed via ssh. Hence validate the gluster binary using
bash builtin 'type' command.

[1] https://review.gluster.org/19224

Change-Id: I93ca62c0c5b1e16263e586ddbbca8407d60ca126
fixes: bz#1731920
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Test case for upgrading config file</title>
<updated>2019-07-22T06:44:49+00:00</updated>
<author>
<name>Shwetha K Acharya</name>
<email>sacharya@redhat.com</email>
</author>
<published>2019-07-02T09:30:25+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=74f124619a71df9bdc5ae9fbc07bc19db05bc1d2'/>
<id>74f124619a71df9bdc5ae9fbc07bc19db05bc1d2</id>
<content type='text'>
Added test case for the patch
https://review.gluster.org/#/c/glusterfs/+/22894/4

Also updated if else structure in gsyncdconfig.py to avoid
repeated occurance of values in new configfile.

fixes: bz#1707731
Change-Id: If97e1d37ac52dbd17d47be6cb659fc5a3ccab6d7
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added test case for the patch
https://review.gluster.org/#/c/glusterfs/+/22894/4

Also updated if else structure in gsyncdconfig.py to avoid
repeated occurance of values in new configfile.

fixes: bz#1707731
Change-Id: If97e1d37ac52dbd17d47be6cb659fc5a3ccab6d7
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[geo-replication] geo-replication/setup.py missing license details in setup()</title>
<updated>2019-07-10T04:17:34+00:00</updated>
<author>
<name>kshithijiyer</name>
<email>kshithij.ki@gmail.com</email>
</author>
<published>2019-07-04T13:33:34+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=ad828d2e0c930b31b870c92fbaeac7a43fee08da'/>
<id>ad828d2e0c930b31b870c92fbaeac7a43fee08da</id>
<content type='text'>
geo-replication/setup.py is missing license details in
setup() and is using string 'syncdaemon' instead
of using the variable name which has the same value.

Present:
setup(
    name=name,
    version="",
    description='GlusterFS Geo Replication',
    license='',
    author='Red Hat, Inc.',
    author_email='gluster-devel@gluster.org',
    url='http://www.gluster.org',
    packages=['syncdaemon', ],
    test_suite='nose.collector',
    install_requires=[],
    scripts=[],
    entry_points={},
)

Changing to:
setup(
    name=name,
    version="",
    description='GlusterFS Geo Replication',
    license='GPLV2 and LGPLV3+',
    author='Red Hat, Inc.',
    author_email='gluster-devel@gluster.org',
    url='http://www.gluster.org',
    packages=[name, ],
    test_suite='nose.collector',
    install_requires=[],
    scripts=[],
    entry_points={},
)

fixes: bz#1727107

Change-Id: I742c4c510da55a22256c819da7e2fc9622119f63
Signed-off-by: kshithijiyer &lt;kshithij.ki@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
geo-replication/setup.py is missing license details in
setup() and is using string 'syncdaemon' instead
of using the variable name which has the same value.

Present:
setup(
    name=name,
    version="",
    description='GlusterFS Geo Replication',
    license='',
    author='Red Hat, Inc.',
    author_email='gluster-devel@gluster.org',
    url='http://www.gluster.org',
    packages=['syncdaemon', ],
    test_suite='nose.collector',
    install_requires=[],
    scripts=[],
    entry_points={},
)

Changing to:
setup(
    name=name,
    version="",
    description='GlusterFS Geo Replication',
    license='GPLV2 and LGPLV3+',
    author='Red Hat, Inc.',
    author_email='gluster-devel@gluster.org',
    url='http://www.gluster.org',
    packages=[name, ],
    test_suite='nose.collector',
    install_requires=[],
    scripts=[],
    entry_points={},
)

fixes: bz#1727107

Change-Id: I742c4c510da55a22256c819da7e2fc9622119f63
Signed-off-by: kshithijiyer &lt;kshithij.ki@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep : fix gluster command path for non-root session</title>
<updated>2019-06-28T09:37:22+00:00</updated>
<author>
<name>Sunny Kumar</name>
<email>sunkumar@redhat.com</email>
</author>
<published>2019-06-20T13:17:45+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=29ad22aa9482a69f3fcf04eea762e76602bbe9a0'/>
<id>29ad22aa9482a69f3fcf04eea762e76602bbe9a0</id>
<content type='text'>
Problem:
gluster command not found.

Cause:
In Volinfo class we issue command 'gluster vol info' to get information
about volume like getting brick_root to perform various operation.
When geo-rep session is configured for non-root user Volinfo class
fails to issue gluster command due to unavailability of gluster
binary path for non-root user.

Solution:
Use config value 'slave-gluster-command-dir'/'gluster-command-dir' to get path
for gluster command based on caller.

fixes: bz#1722740

Change-Id: I4ec46373da01f5d00ecd160c4e8c6239da8b3859
Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
gluster command not found.

Cause:
In Volinfo class we issue command 'gluster vol info' to get information
about volume like getting brick_root to perform various operation.
When geo-rep session is configured for non-root user Volinfo class
fails to issue gluster command due to unavailability of gluster
binary path for non-root user.

Solution:
Use config value 'slave-gluster-command-dir'/'gluster-command-dir' to get path
for gluster command based on caller.

fixes: bz#1722740

Change-Id: I4ec46373da01f5d00ecd160c4e8c6239da8b3859
Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Upgrading config file to new version</title>
<updated>2019-06-26T14:10:56+00:00</updated>
<author>
<name>Shwetha K Acharya</name>
<email>sacharya@redhat.com</email>
</author>
<published>2019-05-29T11:19:01+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=f782881f825efcd4ab3b74209c1c7aca3796023b'/>
<id>f782881f825efcd4ab3b74209c1c7aca3796023b</id>
<content type='text'>
- configuration handling is enhanced with patch
https://review.gluster.org/#/c/glusterfs/+/18257/
- hence, the old configurations are not applied when
Geo-rep session is created in the old version and upgraded.

This patch solves the issue. It,
- checks if the config file is old.
- parses required values from old config file and stores in new
  config file, which ensures that configerations are applied on
  upgrade.
- stores old config file as backup.
- handles changes in options introduced in
  https://review.gluster.org/#/c/glusterfs/+/18257/

fixes: bz#1707731
Change-Id: Iad8da6c1e1ae8ecf7c84dfdf8ea3ac6966d8a2a0
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- configuration handling is enhanced with patch
https://review.gluster.org/#/c/glusterfs/+/18257/
- hence, the old configurations are not applied when
Geo-rep session is created in the old version and upgraded.

This patch solves the issue. It,
- checks if the config file is old.
- parses required values from old config file and stores in new
  config file, which ensures that configerations are applied on
  upgrade.
- stores old config file as backup.
- handles changes in options introduced in
  https://review.gluster.org/#/c/glusterfs/+/18257/

fixes: bz#1707731
Change-Id: Iad8da6c1e1ae8ecf7c84dfdf8ea3ac6966d8a2a0
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
