<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git, branch v6.5</title>
<subtitle>GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system.</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/'/>
<entry>
<title>doc: Added release 6.5 notes</title>
<updated>2019-08-07T10:53:16+00:00</updated>
<author>
<name>Hari Gowtham</name>
<email>hgowtham@redhat.com</email>
</author>
<published>2019-08-07T05:51:29+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=f571e3b7bfb243f710ebc883f1dd3bd95242f126'/>
<id>f571e3b7bfb243f710ebc883f1dd3bd95242f126</id>
<content type='text'>
Fixes: bz#1737311

Change-Id: I1f54bc9b04ee05c8ab802d92c1471cbfb1aa92a8
Signed-off-by: Hari Gowtham &lt;hgowtham@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: bz#1737311

Change-Id: I1f54bc9b04ee05c8ab802d92c1471cbfb1aa92a8
Signed-off-by: Hari Gowtham &lt;hgowtham@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/utime: always update ctime at setattr</title>
<updated>2019-08-07T05:09:15+00:00</updated>
<author>
<name>Kinglong Mee</name>
<email>kinglongmee@gmail.com</email>
</author>
<published>2019-08-05T03:08:02+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=cf42677ac0cc042ea4318062219908095d4027c0'/>
<id>cf42677ac0cc042ea4318062219908095d4027c0</id>
<content type='text'>
For the nfs EXCLUSIVE mode create may sets a later time
to mtime (at verifier), it should not set to ctime for
storage.ctime does not allowed set ctime to a earlier time.

 /* Earlier, mdata was updated only if the existing time is less
  * than the time to be updated. This would fail the scenarios
  * where mtime can be set to any time using the syscall. Hence
  * just updating without comparison. But the ctime is not
  * allowed to changed to older date.
  */

According to kernel's setattr, always set ctime at setattr,
and doesnot set ctime from mtime at storage.ctime.

Backport of:
 &gt; Patch: https://review.gluster.org/23154
 &gt; Change-Id: I5cfde6cb7f8939da9617506e3dc80bd840e0d749
 &gt; BUG: 1737288
 &gt; Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;

Change-Id: I5cfde6cb7f8939da9617506e3dc80bd840e0d749
fixes: bz#1737746
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For the nfs EXCLUSIVE mode create may sets a later time
to mtime (at verifier), it should not set to ctime for
storage.ctime does not allowed set ctime to a earlier time.

 /* Earlier, mdata was updated only if the existing time is less
  * than the time to be updated. This would fail the scenarios
  * where mtime can be set to any time using the syscall. Hence
  * just updating without comparison. But the ctime is not
  * allowed to changed to older date.
  */

According to kernel's setattr, always set ctime at setattr,
and doesnot set ctime from mtime at storage.ctime.

Backport of:
 &gt; Patch: https://review.gluster.org/23154
 &gt; Change-Id: I5cfde6cb7f8939da9617506e3dc80bd840e0d749
 &gt; BUG: 1737288
 &gt; Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;

Change-Id: I5cfde6cb7f8939da9617506e3dc80bd840e0d749
fixes: bz#1737746
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>posix/ctime: Fix race during lookup ctime xattr heal</title>
<updated>2019-08-07T05:07:56+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-07-29T10:52:10+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=aa45fcc1384ea6120d582cdad35b1d610e6437af'/>
<id>aa45fcc1384ea6120d582cdad35b1d610e6437af</id>
<content type='text'>
Problem:
Ctime heals the ctime xattr ("trusted.glusterfs.mdata") in lookup
if it's not present. In a multi client scenario, there is a race
which results in updating the ctime xattr to older value.

e.g. Let c1 and c2 be two clients and file1 be the file which
doesn't have the ctime xattr. Let the ctime of file1 be t1.
(from backend, ctime heals time attributes from backend when not present).

Now following operations are done on mount
c1 -&gt; ls -l /mnt/file1  |   c2 -&gt; ls -l /mnt/file1;echo "append" &gt;&gt; /mnt/file1;

The race is that the both c1 and c2 didn't fetch the ctime xattr in lookup,
so both of them tries to heal ctime to time 't1'. If c2 wins the race and
appends the file before c1 heals it, it sets the time to 't1' and updates
it to 't2' (because of append). Now c1 proceeds to heal and sets it to 't1'
which is incorrect.

Solution:
Compare the times during heal and only update the larger time. This is the
general approach used in ctime feature but got missed with healing legacy
files.

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

fixes: bz#1737745
Change-Id: I930bda192c64c3d49d0aed431ce23d3bc57e51b7
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Ctime heals the ctime xattr ("trusted.glusterfs.mdata") in lookup
if it's not present. In a multi client scenario, there is a race
which results in updating the ctime xattr to older value.

e.g. Let c1 and c2 be two clients and file1 be the file which
doesn't have the ctime xattr. Let the ctime of file1 be t1.
(from backend, ctime heals time attributes from backend when not present).

Now following operations are done on mount
c1 -&gt; ls -l /mnt/file1  |   c2 -&gt; ls -l /mnt/file1;echo "append" &gt;&gt; /mnt/file1;

The race is that the both c1 and c2 didn't fetch the ctime xattr in lookup,
so both of them tries to heal ctime to time 't1'. If c2 wins the race and
appends the file before c1 heals it, it sets the time to 't1' and updates
it to 't2' (because of append). Now c1 proceeds to heal and sets it to 't1'
which is incorrect.

Solution:
Compare the times during heal and only update the larger time. This is the
general approach used in ctime feature but got missed with healing legacy
files.

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

fixes: bz#1737745
Change-Id: I930bda192c64c3d49d0aed431ce23d3bc57e51b7
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-08-07T04:51:13+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='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=05f9dc24e13df9f993438ee9b98b7a1052cf8b12'/>
<id>05f9dc24e13df9f993438ee9b98b7a1052cf8b12</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


Backport of:
 &gt; Patch: https://review.gluster.org/23136/
 &gt; Change-Id: Iceb78835967ec6a4350983eec9af28398410c002
 &gt; BUG: 1734738
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 84f7794547522463841068063b22fd3a8d8fca2b)

Change-Id: Iceb78835967ec6a4350983eec9af28398410c002
fixes: bz#1737712
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


Backport of:
 &gt; Patch: https://review.gluster.org/23136/
 &gt; Change-Id: Iceb78835967ec6a4350983eec9af28398410c002
 &gt; BUG: 1734738
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 84f7794547522463841068063b22fd3a8d8fca2b)

Change-Id: Iceb78835967ec6a4350983eec9af28398410c002
fixes: bz#1737712
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/utime: Fix mem_put crash</title>
<updated>2019-08-06T07:23:43+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2019-07-22T15:25:33+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=24293229112670149226a44d4d2f87829e248718'/>
<id>24293229112670149226a44d4d2f87829e248718</id>
<content type='text'>
Problem:
When frame-&gt;local is not null FRAME_DESTROY calls mem_put on it.
Since the stub is already destroyed in call_resume(), it leads
to crash

Fix:
Set frame-&gt;local to NULL before calling call_resume()

Backport of:
 &gt; Patch: https://review.gluster.org/23091
 &gt; BUG: 1593542
 &gt; Change-Id: I0f8adf406f4cefdb89d7624ba7a9d9c2eedfb1de
 &gt; Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;

fixes: bz#1733885
Change-Id: I0f8adf406f4cefdb89d7624ba7a9d9c2eedfb1de
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
When frame-&gt;local is not null FRAME_DESTROY calls mem_put on it.
Since the stub is already destroyed in call_resume(), it leads
to crash

Fix:
Set frame-&gt;local to NULL before calling call_resume()

Backport of:
 &gt; Patch: https://review.gluster.org/23091
 &gt; BUG: 1593542
 &gt; Change-Id: I0f8adf406f4cefdb89d7624ba7a9d9c2eedfb1de
 &gt; Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;

fixes: bz#1733885
Change-Id: I0f8adf406f4cefdb89d7624ba7a9d9c2eedfb1de
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ctime: Set mdata xattr on legacy files</title>
<updated>2019-08-06T07:23:43+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2019-06-24T07:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=173ec95d89244f169af778677fbc508843d83ef4'/>
<id>173ec95d89244f169af778677fbc508843d83ef4</id>
<content type='text'>
Problem:
The files which were created before ctime enabled would not
have "trusted.glusterfs.mdata"(stores time attributes) xattr.
Upon fops which modifies either ctime or mtime, the xattr
gets created with latest ctime, mtime and atime, which is
incorrect. It should update only the corresponding time
attribute and rest from backend

Solution:
Creating xattr with values from brick is not possible as
each brick of replica set would have different times.
So create the xattr upon successful lookup if the xattr
is not created

Note To Reviewers:
The time attributes used to set xattr is got from successful
lookup. Instead of sending the whole iatt over the wire via
setxattr, a structure called mdata_iatt is sent. The mdata_iatt
contains only time attributes.

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

Change-Id: I5e535631ddef04195361ae0364336410a2895dd4
updates: bz#1733885
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
The files which were created before ctime enabled would not
have "trusted.glusterfs.mdata"(stores time attributes) xattr.
Upon fops which modifies either ctime or mtime, the xattr
gets created with latest ctime, mtime and atime, which is
incorrect. It should update only the corresponding time
attribute and rest from backend

Solution:
Creating xattr with values from brick is not possible as
each brick of replica set would have different times.
So create the xattr upon successful lookup if the xattr
is not created

Note To Reviewers:
The time attributes used to set xattr is got from successful
lookup. Instead of sending the whole iatt over the wire via
setxattr, a structure called mdata_iatt is sent. The mdata_iatt
contains only time attributes.

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

Change-Id: I5e535631ddef04195361ae0364336410a2895dd4
updates: bz#1733885
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-08-05T11:31:20+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='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=70b52c3461ab7f9af570bfbf6b8117e25cc824ba'/>
<id>70b52c3461ab7f9af570bfbf6b8117e25cc824ba</id>
<content type='text'>
The patch [1] added validation in gverify.sh to check if the gluster
binary exists 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

Backport of:
 &gt; Patch: https://review.gluster.org/23089/
 &gt; Change-Id: I93ca62c0c5b1e16263e586ddbbca8407d60ca126
 &gt; BUG: 1731920
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 2aa731a259ea457c07494e3c3edf6d5f7c02fe77)

Change-Id: I93ca62c0c5b1e16263e586ddbbca8407d60ca126
fixes: bz#1733880
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 exists 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

Backport of:
 &gt; Patch: https://review.gluster.org/23089/
 &gt; Change-Id: I93ca62c0c5b1e16263e586ddbbca8407d60ca126
 &gt; BUG: 1731920
 &gt; Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 2aa731a259ea457c07494e3c3edf6d5f7c02fe77)

Change-Id: I93ca62c0c5b1e16263e586ddbbca8407d60ca126
fixes: bz#1733880
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: Fix deadlock while processing upcall</title>
<updated>2019-08-02T10:07:43+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2019-07-25T07:26:12+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=589d0118bd29388f53996ac14c4e11a3f3ff0783'/>
<id>589d0118bd29388f53996ac14c4e11a3f3ff0783</id>
<content type='text'>
As mentioned in bug1733166, there could be potential deadlock
while processing upcalls depending on how each xlator choose
to act on it. The right way of fixing such issues
is to change rpc callback communication process.
- https://github.com/gluster/glusterfs/issues/697

Till then, making changes in gfapi layer to avoid any I/O
processing.

This is backport of below mainline patch
&gt; https://review.gluster.org/#/c/glusterfs/+/23108/
&gt; bz#1733166

Change-Id: I2079e95339e5d761d5060707f4555cfacab95c83
fixes: bz#1736341
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As mentioned in bug1733166, there could be potential deadlock
while processing upcalls depending on how each xlator choose
to act on it. The right way of fixing such issues
is to change rpc callback communication process.
- https://github.com/gluster/glusterfs/issues/697

Till then, making changes in gfapi layer to avoid any I/O
processing.

This is backport of below mainline patch
&gt; https://review.gluster.org/#/c/glusterfs/+/23108/
&gt; bz#1733166

Change-Id: I2079e95339e5d761d5060707f4555cfacab95c83
fixes: bz#1736341
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/snapview-server: obtain the list of snapshots inside the lock</title>
<updated>2019-08-01T10:45:16+00:00</updated>
<author>
<name>Raghavendra Bhat</name>
<email>raghavendra@redhat.com</email>
</author>
<published>2019-07-02T20:50:23+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=f51491e684f79c87ee1f7b406f8c748d7e2bf8d7'/>
<id>f51491e684f79c87ee1f7b406f8c748d7e2bf8d7</id>
<content type='text'>
The current list of snapshots from priv-&gt;dirents is obtained outside
the lock.

Change-Id: I8876ec0a38308da5db058397382fbc82cc7ac177
Fixes: bz#1731509
(cherry picked from commit 8e795617fd6f5193d0d52a336059ce1a28108c0e)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current list of snapshots from priv-&gt;dirents is obtained outside
the lock.

Change-Id: I8876ec0a38308da5db058397382fbc82cc7ac177
Fixes: bz#1731509
(cherry picked from commit 8e795617fd6f5193d0d52a336059ce1a28108c0e)
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: Fix directory perms during selfheal</title>
<updated>2019-07-29T06:41:59+00:00</updated>
<author>
<name>N Balachandran</name>
<email>nbalacha@redhat.com</email>
</author>
<published>2019-06-04T09:21:44+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=481c3c71c428c31ac84e2e1acf21b0ae07e4e32d'/>
<id>481c3c71c428c31ac84e2e1acf21b0ae07e4e32d</id>
<content type='text'>
Fixed a bug in the revalidate code path that wiped out
directory permissions if no mds subvol was found.

Backport of: 
&gt; Change-Id: I8b4239ffee7001493c59d4032a2d3062586ea115
&gt; fixes: bz#1716830
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

Change-Id: I8b4239ffee7001493c59d4032a2d3062586ea115
fixes: bz#1716848
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed a bug in the revalidate code path that wiped out
directory permissions if no mds subvol was found.

Backport of: 
&gt; Change-Id: I8b4239ffee7001493c59d4032a2d3062586ea115
&gt; fixes: bz#1716830
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

Change-Id: I8b4239ffee7001493c59d4032a2d3062586ea115
fixes: bz#1716848
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
