<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/glusterfsd, branch experimental</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>posix: use synctask for janitor</title>
<updated>2018-12-19T14:36:52+00:00</updated>
<author>
<name>Poornima G</name>
<email>pgurusid@redhat.com</email>
</author>
<published>2018-08-16T11:06:08+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=2af8fca492f3e1152177641b5e6ab9ea59ec0acd'/>
<id>2af8fca492f3e1152177641b5e6ab9ea59ec0acd</id>
<content type='text'>
With brick mux, the number of threads increases as the number of
bricks increases. As an initiative to reduce the number of
threads in brick mux scenario, replacing janitor thread to use
synctask infra.

Now close() and closedir() handle by separate janitor
thread which is linked with glusterfs_ctx.

Updates #475
Change-Id: I0c4aaf728125ab7264442fde59f3d08542785f73
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With brick mux, the number of threads increases as the number of
bricks increases. As an initiative to reduce the number of
threads in brick mux scenario, replacing janitor thread to use
synctask infra.

Now close() and closedir() handle by separate janitor
thread which is linked with glusterfs_ctx.

Updates #475
Change-Id: I0c4aaf728125ab7264442fde59f3d08542785f73
Signed-off-by: Poornima G &lt;pgurusid@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://dev.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>glusterfsd: Fix coverity issue</title>
<updated>2018-12-14T12:05:28+00:00</updated>
<author>
<name>Iraj Jamali</name>
<email>ijamali@redhat.com</email>
</author>
<published>2018-11-22T20:28:44+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=5ec271c316ec6538130d25148179721c595dd5a2'/>
<id>5ec271c316ec6538130d25148179721c595dd5a2</id>
<content type='text'>
Problem reported: value assigned to a variable is never used

Fixes CID : 1274230

updates: bz#789278

Change-Id: I7afcb411876dea81c6820c5b31ae0a2896f9ca15
Signed-off-by: Iraj Jamali &lt;ijamali@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem reported: value assigned to a variable is never used

Fixes CID : 1274230

updates: bz#789278

Change-Id: I7afcb411876dea81c6820c5b31ae0a2896f9ca15
Signed-off-by: Iraj Jamali &lt;ijamali@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfs: Move devel headers under glusterfs directory</title>
<updated>2018-12-05T21:47:04+00:00</updated>
<author>
<name>ShyamsundarR</name>
<email>srangana@redhat.com</email>
</author>
<published>2018-11-29T19:08:06+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=20ef211cfa5b5fcc437484a879fdc5d4c66bbaf5'/>
<id>20ef211cfa5b5fcc437484a879fdc5d4c66bbaf5</id>
<content type='text'>
libglusterfs devel package headers are referenced in code using
include semantics for a program, this while it works can be better
especially when dealing with out of tree xlator builds or in
general out of tree devel package usage.

Towards this, the following changes are done,
- moved all devel headers under a glusterfs directory
- Included these headers using system header notation &lt;&gt; in all
code outside of libglusterfs
- Included these headers using own program notation "" within
libglusterfs

This change although big, is just moving around the headers and
making it correct when including these headers from other sources.

This helps us correctly include libglusterfs includes without
namespace conflicts.

Change-Id: Id2a98854e671a7ee5d73be44da5ba1a74252423b
Updates: bz#1193929
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
libglusterfs devel package headers are referenced in code using
include semantics for a program, this while it works can be better
especially when dealing with out of tree xlator builds or in
general out of tree devel package usage.

Towards this, the following changes are done,
- moved all devel headers under a glusterfs directory
- Included these headers using system header notation &lt;&gt; in all
code outside of libglusterfs
- Included these headers using own program notation "" within
libglusterfs

This change although big, is just moving around the headers and
making it correct when including these headers from other sources.

This helps us correctly include libglusterfs includes without
namespace conflicts.

Change-Id: Id2a98854e671a7ee5d73be44da5ba1a74252423b
Updates: bz#1193929
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>server: Resolve memory leak path in server_init</title>
<updated>2018-12-03T11:34:35+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawal@redhat.com</email>
</author>
<published>2018-11-29T14:25:39+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=46c15ea8fa98bb3d92580b192f03863c2e2a2d9c'/>
<id>46c15ea8fa98bb3d92580b192f03863c2e2a2d9c</id>
<content type='text'>
Problem: 1) server_init does not cleanup allocate resources
            while it is failed before return error
         2) dict leak at the time of graph destroying

Solution: 1) free resources in case of server_init is failed
          2) Take dict_ref of graph xlator before destroying
             the graph to avoid leak

Change-Id: I9e31e156b9ed6bebe622745a8be0e470774e3d15
fixes: bz#1654917
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: 1) server_init does not cleanup allocate resources
            while it is failed before return error
         2) dict leak at the time of graph destroying

Solution: 1) free resources in case of server_init is failed
          2) Take dict_ref of graph xlator before destroying
             the graph to avoid leak

Change-Id: I9e31e156b9ed6bebe622745a8be0e470774e3d15
fixes: bz#1654917
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: perform store operation in cleanup lock</title>
<updated>2018-11-27T10:11:20+00:00</updated>
<author>
<name>Atin Mukherjee</name>
<email>amukherj@redhat.com</email>
</author>
<published>2018-11-22T04:28:52+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=a52d2d704318a930b0a2eb6d92701499fa97e52e'/>
<id>a52d2d704318a930b0a2eb6d92701499fa97e52e</id>
<content type='text'>
All glusterd store operation and cleanup thread should work under a
critical section to avoid any partial store write.

Change-Id: I4f12e738f597a1f925c87ea2f42565dcf9ecdb9d
Fixes: bz#1652430
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All glusterd store operation and cleanup thread should work under a
critical section to avoid any partial store write.

Change-Id: I4f12e738f597a1f925c87ea2f42565dcf9ecdb9d
Fixes: bz#1652430
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>coverity: Fix coverity issues</title>
<updated>2018-11-26T02:47:33+00:00</updated>
<author>
<name>Mohammed Rafi KC</name>
<email>rkavunga@redhat.com</email>
</author>
<published>2018-11-23T06:01:38+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=0967f3dd0d73263c843d76e1837aa78c3fbf14c1'/>
<id>0967f3dd0d73263c843d76e1837aa78c3fbf14c1</id>
<content type='text'>
This patch fixes coverity
CID : 1356537
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389108&amp;defectInstanceId=26791927&amp;mergedDefectId=1356537
CID : 1395666
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389187&amp;defectInstanceId=26791932&amp;mergedDefectId=1395666
CID : 1351707
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389027&amp;defectInstanceId=26791973&amp;mergedDefectId=1351707
CID : 1396910
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389027&amp;defectInstanceId=26791973&amp;mergedDefectId=13596910

Change-Id: I8094981a741f4d61b083c05a98df23dcf5b022a2
updates: bz#789278
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes coverity
CID : 1356537
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389108&amp;defectInstanceId=26791927&amp;mergedDefectId=1356537
CID : 1395666
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389187&amp;defectInstanceId=26791932&amp;mergedDefectId=1395666
CID : 1351707
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389027&amp;defectInstanceId=26791973&amp;mergedDefectId=1351707
CID : 1396910
  https://scan6.coverity.com/reports.htm#v42907/p10714/fileInstanceId=87389027&amp;defectInstanceId=26791973&amp;mergedDefectId=13596910

Change-Id: I8094981a741f4d61b083c05a98df23dcf5b022a2
updates: bz#789278
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>core: Resolve memory leak at the time of graph init</title>
<updated>2018-11-22T12:51:49+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawal@redhat.com</email>
</author>
<published>2018-11-21T13:32:42+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=12285e76e8f93ef6f6aa2611869bd1f40955dc9e'/>
<id>12285e76e8f93ef6f6aa2611869bd1f40955dc9e</id>
<content type='text'>
Problem: In the commit 751b14f2bfd40e08ad395ccd98c6eb0a41ac4e91
         one code path is missed to avoid leak at the time
         of calling graph init

Solution: Before destroying graph call xlator fini to avoid leak for
          server-side xlators those call init during graph init

Credit: Pranith Kumar Karampuri
fixes: bz#1651431

Change-Id: I6e7cff0d792ab9d954524b28667e94f2d9ec19a2
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: In the commit 751b14f2bfd40e08ad395ccd98c6eb0a41ac4e91
         one code path is missed to avoid leak at the time
         of calling graph init

Solution: Before destroying graph call xlator fini to avoid leak for
          server-side xlators those call init during graph init

Credit: Pranith Kumar Karampuri
fixes: bz#1651431

Change-Id: I6e7cff0d792ab9d954524b28667e94f2d9ec19a2
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>core: Resolve memory leak at the time of graph init</title>
<updated>2018-11-20T09:37:50+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawal@redhat.com</email>
</author>
<published>2018-11-16T03:55:02+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=751b14f2bfd40e08ad395ccd98c6eb0a41ac4e91'/>
<id>751b14f2bfd40e08ad395ccd98c6eb0a41ac4e91</id>
<content type='text'>
Problem: Memory leak when graph init fails as during volfile
         exchange between brick and glusterd

Solution: Fix the error code path in glusterfs_graph_init

Change-Id: If62bee61283fccb7fd60abc6ea217cfac12358fa
fixes: bz#1651431
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Memory leak when graph init fails as during volfile
         exchange between brick and glusterd

Solution: Fix the error code path in glusterfs_graph_init

Change-Id: If62bee61283fccb7fd60abc6ea217cfac12358fa
fixes: bz#1651431
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterfsd: NULL pointer dereferencing clang fix</title>
<updated>2018-11-20T03:14:35+00:00</updated>
<author>
<name>Iraj Jamali</name>
<email>ijamali@redhat.com</email>
</author>
<published>2018-10-23T08:48:40+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fbfceb9f2ee240737b329de8aa5b13562f99fddb'/>
<id>fbfceb9f2ee240737b329de8aa5b13562f99fddb</id>
<content type='text'>
Added a check to avoid clang warning

Updates: bz#1622665

Change-Id: If9ae4e4f2ae13c85dad0e87d8dd6930dde74bbda
Signed-off-by: Iraj Jamali &lt;ijamali@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added a check to avoid clang warning

Updates: bz#1622665

Change-Id: If9ae4e4f2ae13c85dad0e87d8dd6930dde74bbda
Signed-off-by: Iraj Jamali &lt;ijamali@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
