<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/geo-replication, branch v7.1</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>geo-rep: Fix py2/py3 compatibility in repce</title>
<updated>2019-11-14T13:19:21+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-11-12T16:23:20+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=16331f6df4f45dfce6f7e03afc2057b5b543bc93'/>
<id>16331f6df4f45dfce6f7e03afc2057b5b543bc93</id>
<content type='text'>
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:
 &gt; Patch: https://review.gluster.org/23702/
 &gt; BUG: 1771577
 &gt; Change-Id: I8228458a853a230546f9faf29a0e9e0f23b3efec
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 9595ecca3de49fdf37d30b151f5c3e071e0a80d0)

Change-Id: I8228458a853a230546f9faf29a0e9e0f23b3efec
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
fixes: bz#1771840
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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:
 &gt; Patch: https://review.gluster.org/23702/
 &gt; BUG: 1771577
 &gt; Change-Id: I8228458a853a230546f9faf29a0e9e0f23b3efec
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 9595ecca3de49fdf37d30b151f5c3e071e0a80d0)

Change-Id: I8228458a853a230546f9faf29a0e9e0f23b3efec
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
fixes: bz#1771840
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix Permission denied traceback on non root setup</title>
<updated>2019-11-06T16:59:15+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-10-19T19:31:39+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=b95f3bdc5275f053bcca0f926d1b1d5e4cd546d7'/>
<id>b95f3bdc5275f053bcca0f926d1b1d5e4cd546d7</id>
<content type='text'>
Problem:
While syncing rename of directory in hybrid crawl, geo-rep
crashes as below.

Traceback (most recent call last):
  File "/usr/local/libexec/glusterfs/python/syncdaemon/repce.py", line 118, in worker
    res = getattr(self.obj, rmeth)(*in_data[2:])
  File "/usr/local/libexec/glusterfs/python/syncdaemon/resource.py", line 588, in entry_ops
    src_entry = get_slv_dir_path(slv_host, slv_volume, gfid)
  File "/usr/local/libexec/glusterfs/python/syncdaemon/syncdutils.py", line 687, in get_slv_dir_path
    [ENOENT], [ESTALE])
  File "/usr/local/libexec/glusterfs/python/syncdaemon/syncdutils.py", line 546, in errno_wrap
    return call(*arg)
PermissionError: [Errno 13] Permission denied: '/bricks/brick1/b1/.glusterfs/8e/c0/8ec0fcd4-d50f-4a6e-b473-a7943ab66640'

Cause:
Conversion of gfid to path for a directory uses readlink on backend
.glusterfs gfid path. But this fails for non root user with
permission denied.

Fix:
Use gfid2path interface to get the path from gfid

Backport of:
 &gt; Patch: https://review.gluster.org/23570
 &gt; Change-Id: I9d40c713a1b32cea95144cbc0f384ada82972222
 &gt; BUG: 1763439
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;

Change-Id: I9d40c713a1b32cea95144cbc0f384ada82972222
fixes: bz#1764030
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
While syncing rename of directory in hybrid crawl, geo-rep
crashes as below.

Traceback (most recent call last):
  File "/usr/local/libexec/glusterfs/python/syncdaemon/repce.py", line 118, in worker
    res = getattr(self.obj, rmeth)(*in_data[2:])
  File "/usr/local/libexec/glusterfs/python/syncdaemon/resource.py", line 588, in entry_ops
    src_entry = get_slv_dir_path(slv_host, slv_volume, gfid)
  File "/usr/local/libexec/glusterfs/python/syncdaemon/syncdutils.py", line 687, in get_slv_dir_path
    [ENOENT], [ESTALE])
  File "/usr/local/libexec/glusterfs/python/syncdaemon/syncdutils.py", line 546, in errno_wrap
    return call(*arg)
PermissionError: [Errno 13] Permission denied: '/bricks/brick1/b1/.glusterfs/8e/c0/8ec0fcd4-d50f-4a6e-b473-a7943ab66640'

Cause:
Conversion of gfid to path for a directory uses readlink on backend
.glusterfs gfid path. But this fails for non root user with
permission denied.

Fix:
Use gfid2path interface to get the path from gfid

Backport of:
 &gt; Patch: https://review.gluster.org/23570
 &gt; Change-Id: I9d40c713a1b32cea95144cbc0f384ada82972222
 &gt; BUG: 1763439
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;

Change-Id: I9d40c713a1b32cea95144cbc0f384ada82972222
fixes: bz#1764030
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix config upgrade on non-participating node</title>
<updated>2019-11-06T16:59:14+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-10-16T08:55:47+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fa1d2b24c5e4f0f5af8b70065c4195495ac5fd02'/>
<id>fa1d2b24c5e4f0f5af8b70065c4195495ac5fd02</id>
<content type='text'>
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 &lt;khiremat@redhat.com&gt;
BUG: 1762220

Change-Id: Ibade2f2310b0f3affea21a3baa1ae0eb71162cba
fixes: bz#1764028
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;khiremat@redhat.com&gt;
BUG: 1762220

Change-Id: Ibade2f2310b0f3affea21a3baa1ae0eb71162cba
fixes: bz#1764028
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix the name of changelog archive file</title>
<updated>2019-11-06T16:59:14+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=76c10070fdbd091545f481a3eb35bcc3e75c5946'/>
<id>76c10070fdbd091545f481a3eb35bcc3e75c5946</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.

Backport of:
 &gt; Patch: https://review.gluster.org/23248
 &gt; Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
 &gt; BUG: 1741890
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;

Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
fixes: bz#1764023
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.

Backport of:
 &gt; Patch: https://review.gluster.org/23248
 &gt; Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
 &gt; BUG: 1741890
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;

Change-Id: Ie5b7d2bc04d0d53cd1769e064c2d67aaf95d557c
fixes: bz#1764023
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Fix Config Get Race</title>
<updated>2019-11-06T16:59:14+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=d41f4f488e1fdebf87747c8a641a43dc80120bdb'/>
<id>d41f4f488e1fdebf87747c8a641a43dc80120bdb</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'
```

Backport of:
 &gt; Patch: https://review.gluster.org/23158
 &gt; Change-Id: I9c245e5c36338265354e158f5baa32b119eb2da5
 &gt; BUG: 1737484
 &gt; Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;

Change-Id: I9c245e5c36338265354e158f5baa32b119eb2da5
fixes: bz#1764015
Signed-off-by: Kotresh HR &lt;khiremat@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'
```

Backport of:
 &gt; Patch: https://review.gluster.org/23158
 &gt; Change-Id: I9c245e5c36338265354e158f5baa32b119eb2da5
 &gt; BUG: 1737484
 &gt; Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;

Change-Id: I9c245e5c36338265354e158f5baa32b119eb2da5
fixes: bz#1764015
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-11-06T16:59:14+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=05f9340a533982ec5e421309673de6530fc28ed5'/>
<id>05f9340a533982ec5e421309673de6530fc28ed5</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.

Backport of:
 &gt; Patch: https://review.gluster.org/22982
 &gt; BUG: 1707731
 &gt; Change-Id: If97e1d37ac52dbd17d47be6cb659fc5a3ccab6d7
 &gt; Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;

fixes: bz#1764003
Change-Id: If97e1d37ac52dbd17d47be6cb659fc5a3ccab6d7
Signed-off-by: Kotresh HR &lt;khiremat@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.

Backport of:
 &gt; Patch: https://review.gluster.org/22982
 &gt; BUG: 1707731
 &gt; Change-Id: If97e1d37ac52dbd17d47be6cb659fc5a3ccab6d7
 &gt; Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;

fixes: bz#1764003
Change-Id: If97e1d37ac52dbd17d47be6cb659fc5a3ccab6d7
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep : fix gluster command path for non-root session</title>
<updated>2019-11-06T16:59:14+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=d82acea433d6defd0b9bd084a43c0b7b30fd171d'/>
<id>d82acea433d6defd0b9bd084a43c0b7b30fd171d</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.

Backport of:
 &gt; Patch: https://review.gluster.org/22920
 &gt; BUG: 1722740
 &gt; Change-Id: I4ec46373da01f5d00ecd160c4e8c6239da8b3859
 &gt; Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;

fixes: bz#1764007
Change-Id: I4ec46373da01f5d00ecd160c4e8c6239da8b3859
Signed-off-by: Kotresh HR &lt;khiremat@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.

Backport of:
 &gt; Patch: https://review.gluster.org/22920
 &gt; BUG: 1722740
 &gt; Change-Id: I4ec46373da01f5d00ecd160c4e8c6239da8b3859
 &gt; Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;

fixes: bz#1764007
Change-Id: I4ec46373da01f5d00ecd160c4e8c6239da8b3859
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: Upgrading config file to new version</title>
<updated>2019-11-06T16:59:14+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=60eba49c6290d6f387986fdb41d37c613ad766b6'/>
<id>60eba49c6290d6f387986fdb41d37c613ad766b6</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/

Backport of:
 &gt; Patch: https://review.gluster.org/22894
 &gt; BUG: bz#1707731
 &gt; Change-Id: Iad8da6c1e1ae8ecf7c84dfdf8ea3ac6966d8a2a0
 &gt; Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;

updates: bz#1764003
Change-Id: Iad8da6c1e1ae8ecf7c84dfdf8ea3ac6966d8a2a0
Signed-off-by: Kotresh HR &lt;khiremat@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/

Backport of:
 &gt; Patch: https://review.gluster.org/22894
 &gt; BUG: bz#1707731
 &gt; Change-Id: Iad8da6c1e1ae8ecf7c84dfdf8ea3ac6966d8a2a0
 &gt; Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;

updates: bz#1764003
Change-Id: Iad8da6c1e1ae8ecf7c84dfdf8ea3ac6966d8a2a0
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep : fix sub-command during worker connection</title>
<updated>2019-09-25T11:31:54+00:00</updated>
<author>
<name>Sunny Kumar</name>
<email>sunkumar@redhat.com</email>
</author>
<published>2019-09-20T19:37:30+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=6b3fec37931cbf3f7995b119e5a14702d5226772'/>
<id>6b3fec37931cbf3f7995b119e5a14702d5226772</id>
<content type='text'>
Problem:

Geo-rep session for non-root going faulty.

Solution:

During worker start we do not construct slave url and use 'args.resource_remote'
which is basically just slave-hostname.
This works better for root session but fails in non-root session during
ssh command.
Using slave url solves this issue.

Backport of:
 &gt; Patch: https://review.gluster.org/23465
 &gt; BUG: 1753928
 &gt; Change-Id: Ib83552fde77f81c208896494b323514ab37ebf22
 &gt; Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;

fixes: bz#1755213
Change-Id: Ib83552fde77f81c208896494b323514ab37ebf22
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:

Geo-rep session for non-root going faulty.

Solution:

During worker start we do not construct slave url and use 'args.resource_remote'
which is basically just slave-hostname.
This works better for root session but fails in non-root session during
ssh command.
Using slave url solves this issue.

Backport of:
 &gt; Patch: https://review.gluster.org/23465
 &gt; BUG: 1753928
 &gt; Change-Id: Ib83552fde77f81c208896494b323514ab37ebf22
 &gt; Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;

fixes: bz#1755213
Change-Id: Ib83552fde77f81c208896494b323514ab37ebf22
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: performance improvement while syncing renames with existing gfid</title>
<updated>2019-09-25T04:46:37+00:00</updated>
<author>
<name>Sunny Kumar</name>
<email>sunkumar@redhat.com</email>
</author>
<published>2019-09-20T04:09:12+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=284ecd3ecbfbcc9e7791bacc6305807eb2805fff'/>
<id>284ecd3ecbfbcc9e7791bacc6305807eb2805fff</id>
<content type='text'>
Problem:
The bug[1] addresses issue of data inconsistency when handling RENAME with
existing destination. This fix requires some performance tuning considering
this issue occurs in heavy rename workload.

Solution:
If distribution count for master volume is one do not verify op's on
master and go ahead with rename.

The performance improvement with this patch can only be observed if
master volume has distribution count one.

[1]. https://bugzilla.redhat.com/show_bug.cgi?id=1694820

Backport of:

 &gt; Patch: https://review.gluster.org/23459/
 &gt; BUG: 1753857
 &gt; Change-Id: I8e9bcd575e7e35f40f9f78b7961c92dee642f47b
 &gt; Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
(cherry picked from commit 30d3608c43be119f75da7798d88b94601dedcb29)


Change-Id: I8e9bcd575e7e35f40f9f78b7961c92dee642f47b
Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
fixes: bz#1755212
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
The bug[1] addresses issue of data inconsistency when handling RENAME with
existing destination. This fix requires some performance tuning considering
this issue occurs in heavy rename workload.

Solution:
If distribution count for master volume is one do not verify op's on
master and go ahead with rename.

The performance improvement with this patch can only be observed if
master volume has distribution count one.

[1]. https://bugzilla.redhat.com/show_bug.cgi?id=1694820

Backport of:

 &gt; Patch: https://review.gluster.org/23459/
 &gt; BUG: 1753857
 &gt; Change-Id: I8e9bcd575e7e35f40f9f78b7961c92dee642f47b
 &gt; Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
(cherry picked from commit 30d3608c43be119f75da7798d88b94601dedcb29)


Change-Id: I8e9bcd575e7e35f40f9f78b7961c92dee642f47b
Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
fixes: bz#1755212
</pre>
</div>
</content>
</entry>
</feed>
