<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/tests/features, branch release-6</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>rpc: Cleanup SSL specific data at the time of freeing rpc object</title>
<updated>2020-07-13T06:13:47+00:00</updated>
<author>
<name>l17zhou</name>
<email>cynthia.zhou@nokia-sbell.com.cn</email>
</author>
<published>2019-11-04T06:45:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=86bce52b86d54295a3f00fe04592f40a40b599f6'/>
<id>86bce52b86d54295a3f00fe04592f40a40b599f6</id>
<content type='text'>
Problem: At the time of cleanup rpc object ssl specific data
         is not freeing so it has become a leak.

Solution: To avoid the leak cleanup ssl specific data at the
          time of cleanup rpc object

&gt; Credits: l17zhou &lt;cynthia.zhou@nokia-sbell.com.cn&gt;
&gt; Fixes: bz#1768407
&gt; Change-Id: I37f598673ae2d7a33c75f39eb8843ccc6dffaaf0
&gt; (cherry picked from commit 54ed71dba174385ab0d8fa415e09262f6250430c)

Change-Id: I37f598673ae2d7a33c75f39eb8843ccc6dffaaf0
Fixes: #1016
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: At the time of cleanup rpc object ssl specific data
         is not freeing so it has become a leak.

Solution: To avoid the leak cleanup ssl specific data at the
          time of cleanup rpc object

&gt; Credits: l17zhou &lt;cynthia.zhou@nokia-sbell.com.cn&gt;
&gt; Fixes: bz#1768407
&gt; Change-Id: I37f598673ae2d7a33c75f39eb8843ccc6dffaaf0
&gt; (cherry picked from commit 54ed71dba174385ab0d8fa415e09262f6250430c)

Change-Id: I37f598673ae2d7a33c75f39eb8843ccc6dffaaf0
Fixes: #1016
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>socket/ssl: fix crl handling</title>
<updated>2020-07-10T04:36:02+00:00</updated>
<author>
<name>Milind Changire</name>
<email>mchangir@redhat.com</email>
</author>
<published>2019-03-14T05:25:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=36d972d537d4eec4af8a22eca8eab5b12a2a8e65'/>
<id>36d972d537d4eec4af8a22eca8eab5b12a2a8e65</id>
<content type='text'>
Problem:
Just setting the path to the CRL directory in socket_init() wasn't working.

Solution:
Need to use special API to retrieve and set X509_VERIFY_PARAM and set
the CRL checking flags explicitly.
Also, setting the CRL checking flags is a big pain, since the connection
is declared as failed if any CRL isn't found in the designated file or
directory. A comment has been added to the code appropriately.

&gt; Change-Id: I8a8ed2ddaf4b5eb974387d2f7b1a85c1ca39fe79
&gt; fixes: bz#1687326
&gt; Signed-off-by: Milind Changire &lt;mchangir@redhat.com&gt;
&gt; (Cherry pick from commit 06fa261207f0f0625c52fa977b96e5875e9a91e0)
&gt; (Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/22334)

Change-Id: I8a8ed2ddaf4b5eb974387d2f7b1a85c1ca39fe79
Fixes: #1362
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Just setting the path to the CRL directory in socket_init() wasn't working.

Solution:
Need to use special API to retrieve and set X509_VERIFY_PARAM and set
the CRL checking flags explicitly.
Also, setting the CRL checking flags is a big pain, since the connection
is declared as failed if any CRL isn't found in the designated file or
directory. A comment has been added to the code appropriately.

&gt; Change-Id: I8a8ed2ddaf4b5eb974387d2f7b1a85c1ca39fe79
&gt; fixes: bz#1687326
&gt; Signed-off-by: Milind Changire &lt;mchangir@redhat.com&gt;
&gt; (Cherry pick from commit 06fa261207f0f0625c52fa977b96e5875e9a91e0)
&gt; (Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/22334)

Change-Id: I8a8ed2ddaf4b5eb974387d2f7b1a85c1ca39fe79
Fixes: #1362
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: subdir-mount.t is failing for brick_mux regrssion</title>
<updated>2019-07-03T06:40:51+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawal@redhat.com</email>
</author>
<published>2019-06-17T05:40:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=b6abdb8f936f92345cc44dfdcb282691cfbd3db8'/>
<id>b6abdb8f936f92345cc44dfdcb282691cfbd3db8</id>
<content type='text'>
To avoid the failure wait to run hook script S13create-subdir-mounts.sh
after executed add-brick command by test case.

Change-Id: I063b6d0f86a550ed0a0527255e4dfbe8f0a8c02e
fixes: bz#1726327
&gt; fixes: bz#1720993
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
&gt; (Cherry pick from commit 25ad5aca23b257cdd129cd1d4518b048fbba87bb)
&gt; (Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/22877/)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To avoid the failure wait to run hook script S13create-subdir-mounts.sh
after executed add-brick command by test case.

Change-Id: I063b6d0f86a550ed0a0527255e4dfbe8f0a8c02e
fixes: bz#1726327
&gt; fixes: bz#1720993
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
&gt; (Cherry pick from commit 25ad5aca23b257cdd129cd1d4518b048fbba87bb)
&gt; (Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/22877/)
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse: SETLKW interrupt</title>
<updated>2018-12-14T18:11:01+00:00</updated>
<author>
<name>Csaba Henk</name>
<email>csaba@redhat.com</email>
</author>
<published>2018-10-21T22:59:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=eb77d69be528580ca6e4c109762b862114beca87'/>
<id>eb77d69be528580ca6e4c109762b862114beca87</id>
<content type='text'>
Use the (f)getxattr based clearlocks interface to
interrupt a pending lock request.

updates: #465
Change-Id: I4e91a4d8791fc688fed400a02de4c53487e61be2
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the (f)getxattr based clearlocks interface to
interrupt a pending lock request.

updates: #465
Change-Id: I4e91a4d8791fc688fed400a02de4c53487e61be2
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse: add --lru-limit option</title>
<updated>2018-12-14T17:34:28+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amarts@redhat.com</email>
</author>
<published>2018-10-16T11:01:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=d49b41e817d592c1904b6f01716df6546dad3ebe'/>
<id>d49b41e817d592c1904b6f01716df6546dad3ebe</id>
<content type='text'>
The inode LRU mechanism is moot in fuse xlator (ie. there is no
limit for the LRU list), as fuse inodes are referenced from
kernel context, and thus they can only be dropped on request of
the kernel. This might results in a high number of passive
inodes which are useless for the glusterfs client, causing a
significant memory overhead.

This change tries to remedy this by extending the LRU semantics
and allowing to set a finite limit on the fuse inode LRU.

A brief history of problem:

When gluster's inode table was designed, fuse didn't have any
'invalidate' method, which means, userspace application could
never ask kernel to send a 'forget()' fop, instead had to wait
for kernel to send it based on kernel's parameters. Inode table
remembers the number of times kernel has cached the inode based
on the 'nlookup' parameter. And 'nlookup' field is not used by
no other entry points (like server-protocol, gfapi etc).

Hence the inode_table of fuse module always has to have lru-limit
as '0', which means no limit. GlusterFS always had to keep all
inodes in memory as kernel would have had a reference to it.
Again, the reason for this is, kernel's glusterfs inode reference
was pointer of 'inode_t' structure in glusterfs. As it is a
pointer, we could never free it (to prevent segfault, or memory
corruption).

Solution:

In the inode table, handle the prune case of inodes with 'nlookup'
differently, and call a 'invalidator' method, which in this case is
fuse_invalidate(), and it sends the request to kernel for getting
the forget request.

When the kernel sends the forget, it means, it has dropped all
the reference to the inode, and it will send the forget with the
'nlookup' parameter too. We just need to make sure to reduce the
'nlookup' value we have when we get forget. That automatically
cause the relevant prune to happen.

Credits: Csaba Henk, Xavier Hernandez, Raghavendra Gowdappa, Nithya B

fixes: bz#1560969
Change-Id: Ifee0737b23b12b1426c224ec5b8f591f487d83a2
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The inode LRU mechanism is moot in fuse xlator (ie. there is no
limit for the LRU list), as fuse inodes are referenced from
kernel context, and thus they can only be dropped on request of
the kernel. This might results in a high number of passive
inodes which are useless for the glusterfs client, causing a
significant memory overhead.

This change tries to remedy this by extending the LRU semantics
and allowing to set a finite limit on the fuse inode LRU.

A brief history of problem:

When gluster's inode table was designed, fuse didn't have any
'invalidate' method, which means, userspace application could
never ask kernel to send a 'forget()' fop, instead had to wait
for kernel to send it based on kernel's parameters. Inode table
remembers the number of times kernel has cached the inode based
on the 'nlookup' parameter. And 'nlookup' field is not used by
no other entry points (like server-protocol, gfapi etc).

Hence the inode_table of fuse module always has to have lru-limit
as '0', which means no limit. GlusterFS always had to keep all
inodes in memory as kernel would have had a reference to it.
Again, the reason for this is, kernel's glusterfs inode reference
was pointer of 'inode_t' structure in glusterfs. As it is a
pointer, we could never free it (to prevent segfault, or memory
corruption).

Solution:

In the inode table, handle the prune case of inodes with 'nlookup'
differently, and call a 'invalidator' method, which in this case is
fuse_invalidate(), and it sends the request to kernel for getting
the forget request.

When the kernel sends the forget, it means, it has dropped all
the reference to the inode, and it will send the forget with the
'nlookup' parameter too. We just need to make sure to reduce the
'nlookup' value we have when we get forget. That automatically
cause the relevant prune to happen.

Credits: Csaba Henk, Xavier Hernandez, Raghavendra Gowdappa, Nithya B

fixes: bz#1560969
Change-Id: Ifee0737b23b12b1426c224ec5b8f591f487d83a2
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: Offload callback notifications to synctask</title>
<updated>2018-11-26T04:20:05+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2018-11-18T18:08:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=ad35193718a99494ab1b852ca4cbdf054f73de88'/>
<id>ad35193718a99494ab1b852ca4cbdf054f73de88</id>
<content type='text'>
Upcall notifications are received from server via epoll
and same thread is used to forward these notifications
to the application. This may lead to deadlock and hang
in the following scenario.

Consider if as part of handling these callbacks,
application has to do some operations which involve
sending I/Os to gfapi stack which inturn have to wait for
epoll threads to receive repsonse. Thus this may lead to
deadlock if all the epoll threads are waiting to complete
these callback notifications.

To address it, instead of using epoll thread itself,
make use of synctask to send those notificaitons to the
application.

Change-Id: If614e0d09246e4279b9d1f40d883a32a39c8fd90
updates: bz#1648768
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Upcall notifications are received from server via epoll
and same thread is used to forward these notifications
to the application. This may lead to deadlock and hang
in the following scenario.

Consider if as part of handling these callbacks,
application has to do some operations which involve
sending I/Os to gfapi stack which inturn have to wait for
epoll threads to receive repsonse. Thus this may lead to
deadlock if all the epoll threads are waiting to complete
these callback notifications.

To address it, instead of using epoll thread itself,
make use of synctask to send those notificaitons to the
application.

Change-Id: If614e0d09246e4279b9d1f40d883a32a39c8fd90
updates: bz#1648768
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lease: Treat unlk request as noop if lease not found</title>
<updated>2018-11-17T09:16:13+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2018-10-29T09:11:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c2e758b54d8a3f778e3e63db0000bb8b63de9b25'/>
<id>c2e758b54d8a3f778e3e63db0000bb8b63de9b25</id>
<content type='text'>
When the glusterfs server recalls the lease, it expects
client to flush data and unlock the lease. If not it sets
a timer (starting from the time it sends RECALL request) and post
timeout, it revokes it.

Here we could have a race where in client did send UNLK
lease request but because of network delay it may have reached
after server revokes it. To handle such situations, treat
such requests as noop and return sucesss.

Change-Id: I166402d10273f4f115ff04030ecbc14676a01663
updates: bz#1648768
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the glusterfs server recalls the lease, it expects
client to flush data and unlock the lease. If not it sets
a timer (starting from the time it sends RECALL request) and post
timeout, it revokes it.

Here we could have a race where in client did send UNLK
lease request but because of network delay it may have reached
after server revokes it. To handle such situations, treat
such requests as noop and return sucesss.

Change-Id: I166402d10273f4f115ff04030ecbc14676a01663
updates: bz#1648768
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glupy: remove from the build</title>
<updated>2018-11-08T02:46:48+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amarts@redhat.com</email>
</author>
<published>2018-10-03T11:43:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c3fcff9ccbfcec1be242fd5cf210c9995586b078'/>
<id>c3fcff9ccbfcec1be242fd5cf210c9995586b078</id>
<content type='text'>
Based on the proposal to remove few features as they are not
actively maintained [1], removing 'glupy' translator from the
build.

[1] https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html

This patch aims at clearing the translator from build and tests.
A followup is needed to remove the code from repository.

Updates: bz#1642810
Change-Id: I41d0c1956330c3bbca62c540ccf9ab01bbf3a092
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on the proposal to remove few features as they are not
actively maintained [1], removing 'glupy' translator from the
build.

[1] https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html

This patch aims at clearing the translator from build and tests.
A followup is needed to remove the code from repository.

Updates: bz#1642810
Change-Id: I41d0c1956330c3bbca62c540ccf9ab01bbf3a092
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests/interrupt.t: remove 'stripe' volume type</title>
<updated>2018-11-06T10:55:27+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amarts@redhat.com</email>
</author>
<published>2018-11-06T10:28:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=bab025b08e63afd28cba6a3e2c5e18474904dcd3'/>
<id>bab025b08e63afd28cba6a3e2c5e18474904dcd3</id>
<content type='text'>
Merged the patch which introduced this testcase after the
'remove stripe' patch got merged, and hence the confusion.

Updates: bz#1193929
Change-Id: Ia08552debb111292caf14e51ea6a27334fe5c788
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Merged the patch which introduced this testcase after the
'remove stripe' patch got merged, and hence the confusion.

Updates: bz#1193929
Change-Id: Ia08552debb111292caf14e51ea6a27334fe5c788
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse: diagnostic FLUSH interrupt</title>
<updated>2018-11-06T04:21:57+00:00</updated>
<author>
<name>Csaba Henk</name>
<email>csaba@redhat.com</email>
</author>
<published>2018-08-21T10:44:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=4c6b063463ae48b3509ff8e66cd391f8637a86af'/>
<id>4c6b063463ae48b3509ff8e66cd391f8637a86af</id>
<content type='text'>
We add dummy interrupt handling for the FLUSH
fuse message. It can be enabled by the
"--fuse-flush-handle-interrupt" hidden command line
option, or "-ofuse-flush-handle-interrupt=yes"
mount option.

It serves no other than diagnostic &amp; demonstational
purposes -- to exercise the interrupt handling framework
a bit and to give an usage example.

Documentation is also provided that showcases interrupt
handling via FLUSH.

Change-Id: I522f1e798501d06b74ac3592a5f73c1ab0590c60
updates: #465
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We add dummy interrupt handling for the FLUSH
fuse message. It can be enabled by the
"--fuse-flush-handle-interrupt" hidden command line
option, or "-ofuse-flush-handle-interrupt=yes"
mount option.

It serves no other than diagnostic &amp; demonstational
purposes -- to exercise the interrupt handling framework
a bit and to give an usage example.

Documentation is also provided that showcases interrupt
handling via FLUSH.

Change-Id: I522f1e798501d06b74ac3592a5f73c1ab0590c60
updates: #465
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
