<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/cluster/dht/src, branch v3.13.2</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>cluster/dht: Add migration checks to dht_(f)xattrop</title>
<updated>2018-01-10T08:51:05+00:00</updated>
<author>
<name>N Balachandran</name>
<email>nbalacha@redhat.com</email>
</author>
<published>2018-01-10T08:36:12+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=db992106c8be8a54bc0de612e7a0fe10c942c3e4'/>
<id>db992106c8be8a54bc0de612e7a0fe10c942c3e4</id>
<content type='text'>
The earlier backport was incorrect. Added the missing
lines of code.

The dht_(f)xattrop implementation did not implement
migration phase1/phase2 checks which could cause issues
with rebalance on sharded volumes.
This does not solve the issue where fops may reach the target
out of order.

&gt; Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
&gt; BUG: 1471031
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

BUG: 1515434
Change-Id: I183d52530e0220e3007e73672991cb79b44c022a
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The earlier backport was incorrect. Added the missing
lines of code.

The dht_(f)xattrop implementation did not implement
migration phase1/phase2 checks which could cause issues
with rebalance on sharded volumes.
This does not solve the issue where fops may reach the target
out of order.

&gt; Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
&gt; BUG: 1471031
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

BUG: 1515434
Change-Id: I183d52530e0220e3007e73672991cb79b44c022a
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: Add migration checks to dht_(f)xattrop</title>
<updated>2018-01-03T05:08:54+00:00</updated>
<author>
<name>N Balachandran</name>
<email>nbalacha@redhat.com</email>
</author>
<published>2018-01-03T05:06:58+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=cdb682572ce4a04d847f997dc5ea93e47d3223e3'/>
<id>cdb682572ce4a04d847f997dc5ea93e47d3223e3</id>
<content type='text'>
The dht_(f)xattrop implementation did not implement
migration phase1/phase2 checks which could cause issues
with rebalance on sharded volumes.
This does not solve the issue where fops may reach the target
out of order.

&gt; Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
&gt; BUG: 1471031
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
BUG: 1515434
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The dht_(f)xattrop implementation did not implement
migration phase1/phase2 checks which could cause issues
with rebalance on sharded volumes.
This does not solve the issue where fops may reach the target
out of order.

&gt; Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
&gt; BUG: 1471031
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
BUG: 1515434
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: Serialize mds update code path with lookup unwind in selfheal</title>
<updated>2018-01-02T18:41:54+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawa@redhat.com</email>
</author>
<published>2017-10-06T09:43:02+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fe1008455ddaa4e3f95a5fe3180e6947afdb6c75'/>
<id>fe1008455ddaa4e3f95a5fe3180e6947afdb6c75</id>
<content type='text'>
Problem: Sometime test case ./tests/bugs/bug-1371806_1.t is failing on
         centos due to race condition between fresh lookup and setxattr fop.

Solution: In selfheal code path we do save mds on inode_ctx, it was not
          serialize with lookup unwind. Due to this behavior after lookup
          unwind if mds is not saved on inode_ctx and if any subsequent
          setxattr fop call it has failed with ENOENT because
          no mds has found on inode ctx.To resolve it save mds on
          inode ctx has been serialize with lookup unwind.

&gt; BUG: 1498966
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
Change-Id: I8d4bb40a6cbf0cec35d181ec0095cc7142b02e29
BUG: 1529055
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Sometime test case ./tests/bugs/bug-1371806_1.t is failing on
         centos due to race condition between fresh lookup and setxattr fop.

Solution: In selfheal code path we do save mds on inode_ctx, it was not
          serialize with lookup unwind. Due to this behavior after lookup
          unwind if mds is not saved on inode_ctx and if any subsequent
          setxattr fop call it has failed with ENOENT because
          no mds has found on inode ctx.To resolve it save mds on
          inode ctx has been serialize with lookup unwind.

&gt; BUG: 1498966
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
Change-Id: I8d4bb40a6cbf0cec35d181ec0095cc7142b02e29
BUG: 1529055
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: don't overfill the buffer in readdir(p)</title>
<updated>2017-12-11T04:55:06+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>rgowdapp@redhat.com</email>
</author>
<published>2017-09-18T10:31:34+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=dd8b4832588bcfcb73a74673bef196b87a7c16d3'/>
<id>dd8b4832588bcfcb73a74673bef196b87a7c16d3</id>
<content type='text'>
Superflous dentries that cannot be fit in the buffer size provided by
kernel are thrown away by fuse-bridge. This means,

* the next readdir(p) seen by readdir-ahead would have an offset of a
dentry returned in a previous readdir(p) response. When readdir-ahead
detects non-monotonic offset it turns itself off which can result in
poor readdir performance.

* readdirp can be cpu-intensive on brick and there is no point to read
 all those dentries just to be thrown away by fuse-bridge.

So, the best strategy would be to fill the buffer optimally - neither
overfill nor underfill.

&gt;Change-Id: Idb3d85dd4c08fdc4526b2df801d49e69e439ba84
&gt;BUG: 1492625
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit e785faead91f74dce7c832848f2e8f3f43bd0be5)
Change-Id: Idb3d85dd4c08fdc4526b2df801d49e69e439ba84
BUG: 1522710
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Superflous dentries that cannot be fit in the buffer size provided by
kernel are thrown away by fuse-bridge. This means,

* the next readdir(p) seen by readdir-ahead would have an offset of a
dentry returned in a previous readdir(p) response. When readdir-ahead
detects non-monotonic offset it turns itself off which can result in
poor readdir performance.

* readdirp can be cpu-intensive on brick and there is no point to read
 all those dentries just to be thrown away by fuse-bridge.

So, the best strategy would be to fill the buffer optimally - neither
overfill nor underfill.

&gt;Change-Id: Idb3d85dd4c08fdc4526b2df801d49e69e439ba84
&gt;BUG: 1492625
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit e785faead91f74dce7c832848f2e8f3f43bd0be5)
Change-Id: Idb3d85dd4c08fdc4526b2df801d49e69e439ba84
BUG: 1522710
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: make rebalance use truncate incase</title>
<updated>2017-12-11T04:53:59+00:00</updated>
<author>
<name>Susant Palai</name>
<email>spalai@redhat.com</email>
</author>
<published>2017-10-24T13:05:20+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=af59eedfb8185fefe4cc3d73e88211893da69d51'/>
<id>af59eedfb8185fefe4cc3d73e88211893da69d51</id>
<content type='text'>
..
the brick file system does not support fallocate.

&gt; Change-Id: Id76cda2d8bb3b223b779e5e7a34f17c8bfa6283c
&gt; BUG: 1488103
&gt; Signed-off-by: Susant Palai &lt;spalai@redhat.com&gt;

Change-Id: Id76cda2d8bb3b223b779e5e7a34f17c8bfa6283c
BUG: 1520232
Signed-off-by: Susant Palai &lt;spalai@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
..
the brick file system does not support fallocate.

&gt; Change-Id: Id76cda2d8bb3b223b779e5e7a34f17c8bfa6283c
&gt; BUG: 1488103
&gt; Signed-off-by: Susant Palai &lt;spalai@redhat.com&gt;

Change-Id: Id76cda2d8bb3b223b779e5e7a34f17c8bfa6283c
BUG: 1520232
Signed-off-by: Susant Palai &lt;spalai@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: Don't set ACLs on linkto file</title>
<updated>2017-11-21T15:33:20+00:00</updated>
<author>
<name>N Balachandran</name>
<email>nbalacha@redhat.com</email>
</author>
<published>2017-11-20T03:48:09+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=f9bfda413437bdf32b48f5c2cef1887b1949bb84'/>
<id>f9bfda413437bdf32b48f5c2cef1887b1949bb84</id>
<content type='text'>
The trusted.SGI_ACL_FILE appears to set posix
ACLs on the linkto file that is a target of
file migration. This can mess up file permissions
and cause linkto identification to fail.
Now we remove all ACL xattrs from the results of
the listxattr call on the source before setting them
on the target.

&gt; BUG: 1514329
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
Change-Id: I56802dbaed783a16e3fb90f59f4ce849f8a4a9b4
BUG: 1515045
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The trusted.SGI_ACL_FILE appears to set posix
ACLs on the linkto file that is a target of
file migration. This can mess up file permissions
and cause linkto identification to fail.
Now we remove all ACL xattrs from the results of
the listxattr call on the source before setting them
on the target.

&gt; BUG: 1514329
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
Change-Id: I56802dbaed783a16e3fb90f59f4ce849f8a4a9b4
BUG: 1515045
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>xlator/tier: flood of -Wformat-truncation warnings with gcc-7.1</title>
<updated>2017-11-01T13:31:13+00:00</updated>
<author>
<name>Kaleb S. KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2017-09-14T17:43:58+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=5424c63fe146e42cfc9be45b0b9830bcc948b7aa'/>
<id>5424c63fe146e42cfc9be45b0b9830bcc948b7aa</id>
<content type='text'>
Starting in Fedora 26 which has gcc-7.1.x, -Wformat-trunction is enabled
with -Wformat, resulting in a flood of new warnings. This many warnings
is a concern because it makes it hard(er) to see other warnings that
should be addressed.

An example is at
https://kojipkgs.fedoraproject.org//packages/glusterfs/3.12.0/1.fc28/data/logs/x86_64/build.log

For more info see https://review.gluster.org/#/c/18267/

Change-Id: Id7ef8e0dedd28ada55f72c03d91facbe1c9888bd
BUG: 1492849
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Starting in Fedora 26 which has gcc-7.1.x, -Wformat-trunction is enabled
with -Wformat, resulting in a flood of new warnings. This many warnings
is a concern because it makes it hard(er) to see other warnings that
should be addressed.

An example is at
https://kojipkgs.fedoraproject.org//packages/glusterfs/3.12.0/1.fc28/data/logs/x86_64/build.log

For more info see https://review.gluster.org/#/c/18267/

Change-Id: Id7ef8e0dedd28ada55f72c03d91facbe1c9888bd
BUG: 1492849
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: fix crash when deleting directories</title>
<updated>2017-10-16T10:33:13+00:00</updated>
<author>
<name>Zhang Huan</name>
<email>zhanghuan@open-fs.com</email>
</author>
<published>2017-09-05T03:36:25+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=206120126d455417a81a48ae473d49be337e9463'/>
<id>206120126d455417a81a48ae473d49be337e9463</id>
<content type='text'>
In DHT, after locks on all subvolumes are acquired, it would perform the
following steps sequentially,
1. send remove dir on all other subvolumes except the hashed one in a loop;
2. wait for all pending rmdir to be done
3. remove dir on the hashed subvolume

The problem is that in step 1 there is a check to skip hashed subvolume
in the loop. If the last subvolume to check is actually the
hashed one, and step 3 is quickly done before the last and hashed
subvolume is checked, by accessing shared context data be destroyed in
step 3, would cause a crash.

Fix by saving shared data in a local variable to access later in the
loop.

Change-Id: I8db7cf7cb262d74efcb58eb00f02ea37df4be4e2
BUG: 1490642
Signed-off-by: Zhang Huan &lt;zhanghuan@open-fs.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In DHT, after locks on all subvolumes are acquired, it would perform the
following steps sequentially,
1. send remove dir on all other subvolumes except the hashed one in a loop;
2. wait for all pending rmdir to be done
3. remove dir on the hashed subvolume

The problem is that in step 1 there is a check to skip hashed subvolume
in the loop. If the last subvolume to check is actually the
hashed one, and step 3 is quickly done before the last and hashed
subvolume is checked, by accessing shared context data be destroyed in
step 3, would cause a crash.

Fix by saving shared data in a local variable to access later in the
loop.

Change-Id: I8db7cf7cb262d74efcb58eb00f02ea37df4be4e2
BUG: 1490642
Signed-off-by: Zhang Huan &lt;zhanghuan@open-fs.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dht: free memory allocated in dht_init() and dht_init_subvolumes()</title>
<updated>2017-10-11T03:59:23+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-10-09T15:56:56+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=6628b9426918010d203a7de19e3e187eeb077b0d'/>
<id>6628b9426918010d203a7de19e3e187eeb077b0d</id>
<content type='text'>
When glfs_fini() is called, DHT fails to free all memory allocations
which result in a considerable leak.

Change-Id: I37c6de5c93ca4516266dbe8288b4a416f5589901
BUG: 1443145
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When glfs_fini() is called, DHT fails to free all memory allocations
which result in a considerable leak.

Change-Id: I37c6de5c93ca4516266dbe8288b4a416f5589901
BUG: 1443145
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: Don't store the entire uuid for subvols</title>
<updated>2017-10-10T08:58:39+00:00</updated>
<author>
<name>N Balachandran</name>
<email>nbalacha@redhat.com</email>
</author>
<published>2017-07-21T11:08:14+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=c4a608799a577a4f38139f6bb8a47da8efb0fec3'/>
<id>c4a608799a577a4f38139f6bb8a47da8efb0fec3</id>
<content type='text'>
Comparing the uuid string of the local node against that stored in the
local_subvol information is inefficient, especially as it is
done for every file to be migrated. The code has now been changed
to set the value of info to 1 if the nodeuuid is that of the node
making the comparison so this becomes an integer comparison.

Change-Id: I7491d59caad3b71dbf5facc94dcde0cd53962775
BUG: 1451434
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Comparing the uuid string of the local node against that stored in the
local_subvol information is inefficient, especially as it is
done for every file to be migrated. The code has now been changed
to set the value of info to 1 if the nodeuuid is that of the node
making the comparison so this becomes an integer comparison.

Change-Id: I7491d59caad3b71dbf5facc94dcde0cd53962775
BUG: 1451434
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
