<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/glusterfs.spec.in, branch v4.0.0rc0</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>core: remove experimental xlators and associated tests</title>
<updated>2018-01-31T17:50:48+00:00</updated>
<author>
<name>Kaleb S. KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2017-01-20T16:11:46+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fe2f1c995371444a2695994a700c0a6287eadd20'/>
<id>fe2f1c995371444a2695994a700c0a6287eadd20</id>
<content type='text'>
experimental xlators removed from 4.0

&gt; Cherry picked from 4231c40973c60999f5ef759db450d25e129ef6ba:
&gt; Reviewed-on: https://review.gluster.org/17953
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;

Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
Change-Id: I34419ce22ca09b7626b8f9382c377a614fd9fed8
BUG: 1539842
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
experimental xlators removed from 4.0

&gt; Cherry picked from 4231c40973c60999f5ef759db450d25e129ef6ba:
&gt; Reviewed-on: https://review.gluster.org/17953
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;

Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
Change-Id: I34419ce22ca09b7626b8f9382c377a614fd9fed8
BUG: 1539842
</pre>
</div>
</content>
</entry>
<entry>
<title>dentry fop serializer: added new server side xlator for dentry fop serialization</title>
<updated>2018-01-30T18:36:01+00:00</updated>
<author>
<name>Sakshi Bansal</name>
<email>sabansal@redhat.com</email>
</author>
<published>2018-01-22T09:08:17+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=ea972d9f5c9b318429c228108c21a334b4acd95c'/>
<id>ea972d9f5c9b318429c228108c21a334b4acd95c</id>
<content type='text'>
Problems addressed by this xlator :

[1]. To prevent race between parallel mkdir,mkdir and lookup etc.

Fops like mkdir/create, lookup, rename, unlink, link that happen on a
particular dentry must be serialized to ensure atomicity.

Another possible case can be a fresh lookup to find existance of a path
whose gfid is not set yet. Further, storage/posix employs a ctime based
heuristic 'is_fresh_file' (interval time is less than 1 second of current
time) to check fresh-ness of file. With serialization of these two fops
(lookup &amp; mkdir), we eliminate the race altogether.

[2]. Staleness of dentries

This causes exponential increase in traversal time for any inode in the
subtree of the directory pointed by stale dentry.

Cause :  Stale dentry is created because of following two operations:

      a. dentry creation due to inode_link, done during operations like
         lookup, mkdir, create, mknod, symlink, create and
      b. dentry unlinking due to various operations like rmdir, rename,
         unlink.

       The reason is __inode_link uses __is_dentry_cyclic, which explores
       all possible path to avoid cyclic link formation during inode
       linkage. __is_dentry_cyclic explores stale-dentry(ies) and its
       all ancestors which is increases traversing time exponentially.

Implementation : To acheive this all fops on dentry must take entry locks
before they proceed, once they have acquired locks, they perform the fop
and then release the lock.

Some documentation from email conversation:
[1] http://www.gluster.org/pipermail/gluster-devel/2015-December/047314.html

[2] http://www.gluster.org/pipermail/gluster-devel/2015-August/046428.html

With this patch, the feature is optional, enable it by running:

 `gluster volume set $volname features.sdfs enable`

Also the feature is tested for a month without issues in the
experiemental branch for all the regression.

Change-Id: I6e80ba3cabfa6facd5dda63bd482b9bf18b6b79b
Fixes: #397
Signed-off-by: Sakshi Bansal &lt;sabansal@redhat.com&gt;
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problems addressed by this xlator :

[1]. To prevent race between parallel mkdir,mkdir and lookup etc.

Fops like mkdir/create, lookup, rename, unlink, link that happen on a
particular dentry must be serialized to ensure atomicity.

Another possible case can be a fresh lookup to find existance of a path
whose gfid is not set yet. Further, storage/posix employs a ctime based
heuristic 'is_fresh_file' (interval time is less than 1 second of current
time) to check fresh-ness of file. With serialization of these two fops
(lookup &amp; mkdir), we eliminate the race altogether.

[2]. Staleness of dentries

This causes exponential increase in traversal time for any inode in the
subtree of the directory pointed by stale dentry.

Cause :  Stale dentry is created because of following two operations:

      a. dentry creation due to inode_link, done during operations like
         lookup, mkdir, create, mknod, symlink, create and
      b. dentry unlinking due to various operations like rmdir, rename,
         unlink.

       The reason is __inode_link uses __is_dentry_cyclic, which explores
       all possible path to avoid cyclic link formation during inode
       linkage. __is_dentry_cyclic explores stale-dentry(ies) and its
       all ancestors which is increases traversing time exponentially.

Implementation : To acheive this all fops on dentry must take entry locks
before they proceed, once they have acquired locks, they perform the fop
and then release the lock.

Some documentation from email conversation:
[1] http://www.gluster.org/pipermail/gluster-devel/2015-December/047314.html

[2] http://www.gluster.org/pipermail/gluster-devel/2015-August/046428.html

With this patch, the feature is optional, enable it by running:

 `gluster volume set $volname features.sdfs enable`

Also the feature is tested for a month without issues in the
experiemental branch for all the regression.

Change-Id: I6e80ba3cabfa6facd5dda63bd482b9bf18b6b79b
Fixes: #397
Signed-off-by: Sakshi Bansal &lt;sabansal@redhat.com&gt;
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Signed-off-by: Sunny Kumar &lt;sunkumar@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>eventsapi: JWT signing without external dependency</title>
<updated>2017-12-28T08:56:54+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2017-12-28T08:34:50+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=33c39e5dce3bc941d8e26c98d91f8ddab9505b73'/>
<id>33c39e5dce3bc941d8e26c98d91f8ddab9505b73</id>
<content type='text'>
Added support for JWT signing without using python-jwt since it is not
available in all the distributions.

BUG: 1529463
Change-Id: I95699055442fbf9da15249f5defe8a8b287010f1
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added support for JWT signing without using python-jwt since it is not
available in all the distributions.

BUG: 1529463
Change-Id: I95699055442fbf9da15249f5defe8a8b287010f1
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rpm: Fedora 28 has renamed pyxattr</title>
<updated>2017-12-26T12:19:19+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-12-25T13:40:16+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=9a47978877a5415dbbac94b93b4b30d055349681'/>
<id>9a47978877a5415dbbac94b93b4b30d055349681</id>
<content type='text'>
Change-Id: Ifa60b394986b9c107792a7c2a4baa335d44dc6f7
BUG: 1528975
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ifa60b394986b9c107792a7c2a4baa335d44dc6f7
BUG: 1528975
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>extras: scripts to control CPU/MEMORY for any gluster daemon during runtime</title>
<updated>2017-11-13T11:07:06+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawa@redhat.com</email>
</author>
<published>2017-09-27T06:07:28+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=2c066c4c365e77421d1009851144efae0b028628'/>
<id>2c066c4c365e77421d1009851144efae0b028628</id>
<content type='text'>
Problem: Sometime gluster daemons like glustershd can consume a lot of cpu and/
or memory if there is a large amount of data/ entries to be healed.

Solution: Until we have some form of throttling/ QoS mechanisms built into
gluster, we can use control groups for regulating cpu and memory of any gluster
daemon using control-cpu-load.sh and control-mem.sh scripts respectively.

Test:    To test the control-cpu-load.sh script follow below procedure:
         1) Setup distribute replica environment
         2) Selfheal daemon off
         3) Down one node from replica nodes
         4) Create millions of files from mount point
         5) Start down node
         6) Check cpu usage for shd process in top command
         7) Run script after provide shd pid with CPU quota value
         8) Check again cpu usage for shd process in top command

Note: control-mem.sh script can cap the memory usage of the process to the set
limit, beyond which the process gets blocked. It resumes either when the memory
usage comes down or if the limit is increased.

BUG: 1496335
Change-Id: Id73c36b73ca600fa9f7905d84053d1e8633c996f
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Sometime gluster daemons like glustershd can consume a lot of cpu and/
or memory if there is a large amount of data/ entries to be healed.

Solution: Until we have some form of throttling/ QoS mechanisms built into
gluster, we can use control groups for regulating cpu and memory of any gluster
daemon using control-cpu-load.sh and control-mem.sh scripts respectively.

Test:    To test the control-cpu-load.sh script follow below procedure:
         1) Setup distribute replica environment
         2) Selfheal daemon off
         3) Down one node from replica nodes
         4) Create millions of files from mount point
         5) Start down node
         6) Check cpu usage for shd process in top command
         7) Run script after provide shd pid with CPU quota value
         8) Check again cpu usage for shd process in top command

Note: control-mem.sh script can cap the memory usage of the process to the set
limit, beyond which the process gets blocked. It resumes either when the memory
usage comes down or if the limit is increased.

BUG: 1496335
Change-Id: Id73c36b73ca600fa9f7905d84053d1e8633c996f
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gluster: IPv6 single stack support</title>
<updated>2017-10-24T09:28:08+00:00</updated>
<author>
<name>Kevin Vigor</name>
<email>kvigor@fb.com</email>
</author>
<published>2017-04-28T23:44:29+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=1260ee53b1674234e6f083563bdcd258e46a6faa'/>
<id>1260ee53b1674234e6f083563bdcd258e46a6faa</id>
<content type='text'>
Summary:
- This diff changes all locations in the code to prefer inet6 family
  instead of inet.  This will allow change GlusterFS to operate
  via IPv6 instead of IPv4 for all internal operations while still
  being able to serve (FUSE or NFS) clients via IPv4.
- The changes apply to NFS as well.
- This diff ports D1892990, D1897341 &amp; D1896522 to the 3.8 branch.

Test Plan: Prove tests!

Reviewers: dph, rwareing

Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;

Change-Id: I34fdaaeb33c194782255625e00616faf75d60c33
BUG: 1406898
Reviewed-on-3.8-fb: http://review.gluster.org/16059
Reviewed-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Tested-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
- This diff changes all locations in the code to prefer inet6 family
  instead of inet.  This will allow change GlusterFS to operate
  via IPv6 instead of IPv4 for all internal operations while still
  being able to serve (FUSE or NFS) clients via IPv4.
- The changes apply to NFS as well.
- This diff ports D1892990, D1897341 &amp; D1896522 to the 3.8 branch.

Test Plan: Prove tests!

Reviewers: dph, rwareing

Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;

Change-Id: I34fdaaeb33c194782255625e00616faf75d60c33
BUG: 1406898
Reviewed-on-3.8-fb: http://review.gluster.org/16059
Reviewed-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Tested-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>packaging: manual systemctl daemon reload required after install</title>
<updated>2017-10-13T19:12:03+00:00</updated>
<author>
<name>Kaleb S. KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2017-10-04T18:22:05+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=68d80f44a3a33050241b025476c8e171018f0edf'/>
<id>68d80f44a3a33050241b025476c8e171018f0edf</id>
<content type='text'>
Use the %systemd_{post,preun,postun_with_restart} macros provided.

Previous fix failed to build on koji Fedora 27 and 28 despite building
successfully in on Fedora 2x and CentOS 6 in jenkins and Fedora 25 and
26 in koji (but with late warnings emitted at the end of the build.)

Examination of the scriptlets (e.g. `rpm -qp --scripts glusterfs-server.rpm`)
revealed some ugliness that is addressed by the using %{nil} lines instead
of " ;"

After this, builds on CentOS 6, and old Fedora 27 rawhide, and koji f27 worked
without warnings or errors about macro recursion. Visual inspection of the
scripts appears correct. Fresh installs on CentOS 6 and Fedora 27 rawhide worked.
Updates from glusterfs-3.12.1 worked.

Reported-by: Sam McLeod &lt;rhbugs@auto.smcleod.net&gt;

Change-Id: I84e9dbc6ccd17cdfc2f7c025bdbf61e92523da79
BUG: 1495384
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the %systemd_{post,preun,postun_with_restart} macros provided.

Previous fix failed to build on koji Fedora 27 and 28 despite building
successfully in on Fedora 2x and CentOS 6 in jenkins and Fedora 25 and
26 in koji (but with late warnings emitted at the end of the build.)

Examination of the scriptlets (e.g. `rpm -qp --scripts glusterfs-server.rpm`)
revealed some ugliness that is addressed by the using %{nil} lines instead
of " ;"

After this, builds on CentOS 6, and old Fedora 27 rawhide, and koji f27 worked
without warnings or errors about macro recursion. Visual inspection of the
scripts appears correct. Fresh installs on CentOS 6 and Fedora 27 rawhide worked.
Updates from glusterfs-3.12.1 worked.

Reported-by: Sam McLeod &lt;rhbugs@auto.smcleod.net&gt;

Change-Id: I84e9dbc6ccd17cdfc2f7c025bdbf61e92523da79
BUG: 1495384
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>eventsapi: Add JWT signing support</title>
<updated>2017-10-13T11:17:39+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2017-09-18T09:04:54+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=add7116efa1f31e86f9c00c72c71872b1161370f'/>
<id>add7116efa1f31e86f9c00c72c71872b1161370f</id>
<content type='text'>
New argument added to accept secret to generate JWT token. This patch
does not affect the backward compatibility.

Usage:

    gluster-eventsapi webhook-add &lt;url&gt; [-t &lt;TOKEN&gt;] \
        [-s SECRET]

With `--token` argument, Token header will be added as is.

    Authorization: Bearer &lt;TOKEN&gt;

In case of shared secret, Gluster will generate JWT token using the
secret and then add it to Authorization header.

    Authorization: Bearer &lt;GENERATED_TOKEN&gt;

Secret/Token can be updated using `webhook-mod` command.

Generated token will include the following payload,

    {
       "iss": "gluster",
       "exp": EXPIRY_TIME,
       "sub": EVENT_TYPE,
       "iat": EVENT_TIME
     }

Where: iss - Issuer, exp - Expiry Time, sub - Event Type
       used as Subject, iat - Event Time used as Issue Time

BUG: 1496363
Change-Id: Ib6b6fab23fb212d7f5e9bbc9e1416a9e9813ab1b
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
New argument added to accept secret to generate JWT token. This patch
does not affect the backward compatibility.

Usage:

    gluster-eventsapi webhook-add &lt;url&gt; [-t &lt;TOKEN&gt;] \
        [-s SECRET]

With `--token` argument, Token header will be added as is.

    Authorization: Bearer &lt;TOKEN&gt;

In case of shared secret, Gluster will generate JWT token using the
secret and then add it to Authorization header.

    Authorization: Bearer &lt;GENERATED_TOKEN&gt;

Secret/Token can be updated using `webhook-mod` command.

Generated token will include the following payload,

    {
       "iss": "gluster",
       "exp": EXPIRY_TIME,
       "sub": EVENT_TYPE,
       "iat": EVENT_TIME
     }

Where: iss - Issuer, exp - Expiry Time, sub - Event Type
       used as Subject, iat - Event Time used as Issue Time

BUG: 1496363
Change-Id: Ib6b6fab23fb212d7f5e9bbc9e1416a9e9813ab1b
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>packaging: manual systemctl daemon reload required after install</title>
<updated>2017-10-02T14:50:30+00:00</updated>
<author>
<name>Kaleb S. KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2017-10-02T14:44:59+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=faf5939307cafe262ee2135621e1d3e173087e06'/>
<id>faf5939307cafe262ee2135621e1d3e173087e06</id>
<content type='text'>
Use the %systemd_{post,preun,postun_with_restart} macros provided

I tried both install and update from 3.10.x and did not receive
any warnings about needing daemon reload

Reported-by: Sam McLeod &lt;rhbugs@auto.smcleod.net&gt;

Change-Id: Ibb33a748fc4226864019765b59d1a154b7297bae
BUG: 1495384
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the %systemd_{post,preun,postun_with_restart} macros provided

I tried both install and update from 3.10.x and did not receive
any warnings about needing daemon reload

Reported-by: Sam McLeod &lt;rhbugs@auto.smcleod.net&gt;

Change-Id: Ibb33a748fc4226864019765b59d1a154b7297bae
BUG: 1495384
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use the new URL for the docs</title>
<updated>2017-09-07T11:42:08+00:00</updated>
<author>
<name>Michael Scherer</name>
<email>misc@redhat.com</email>
</author>
<published>2017-09-01T13:09:06+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=eb2f1ab4cd2f4805117c590d2f020b36ea778c7e'/>
<id>eb2f1ab4cd2f4805117c590d2f020b36ea778c7e</id>
<content type='text'>
Change-Id: I0ef5c3980aed24a9fa2dda673f8293771ce81808
BUG: 1487644
Signed-off-by: Michael Scherer &lt;misc@redhat.com&gt;
Reviewed-on: https://review.gluster.org/18182
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Nigel Babu &lt;nigelb@redhat.com&gt;
Tested-by: Nigel Babu &lt;nigelb@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Michael Scherer &lt;misc@fedoraproject.org&gt;
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I0ef5c3980aed24a9fa2dda673f8293771ce81808
BUG: 1487644
Signed-off-by: Michael Scherer &lt;misc@redhat.com&gt;
Reviewed-on: https://review.gluster.org/18182
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Nigel Babu &lt;nigelb@redhat.com&gt;
Tested-by: Nigel Babu &lt;nigelb@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Michael Scherer &lt;misc@fedoraproject.org&gt;
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
