<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/features, branch v3.2.7qa1</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>geo-rep: gsyncd: fix up fallback xtime for orphans on master side</title>
<updated>2012-04-12T17:17:54+00:00</updated>
<author>
<name>Csaba Henk</name>
<email>csaba@gluster.com</email>
</author>
<published>2012-01-05T01:01:00+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=deea482deff52251f9fe39bc3bda09f58397cb06'/>
<id>deea482deff52251f9fe39bc3bda09f58397cb06</id>
<content type='text'>
Change-Id: I2fa543b4bd317e06ea621ae968300ffb7223a68a
BUG: 771787
Signed-off-by: Csaba Henk &lt;csaba@gluster.com&gt;
Reviewed-on: http://review.gluster.com/2580
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaushik BV &lt;kaushikbv@gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3103
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I2fa543b4bd317e06ea621ae968300ffb7223a68a
BUG: 771787
Signed-off-by: Csaba Henk &lt;csaba@gluster.com&gt;
Reviewed-on: http://review.gluster.com/2580
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaushik BV &lt;kaushikbv@gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3103
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep / gsyncd: fix cleanup of temporary mounts</title>
<updated>2012-03-09T14:14:22+00:00</updated>
<author>
<name>Csaba Henk</name>
<email>csaba@redhat.com</email>
</author>
<published>2012-03-09T08:11:23+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fafd5c17c0d126e10b401199cd4f01f7786deef8'/>
<id>fafd5c17c0d126e10b401199cd4f01f7786deef8</id>
<content type='text'>
The "finally" clause that was meant to cleanup after the
temp mount has not covered the case of getting signalled
(eg. by monitor, upon worker timing out).

So here we "outsource" the cleanup to an ephemeral child process.
Child calls setsid(2) so it won't be bothered by internal process
management. We use a pipe in between worker and the cleanup child;
when child sees the worker end getting closed, it performs the cleanup.
Worker end can get closed either because worker closes it (normal case),
or because worker has terminated (faulty case) -- thus as bonus, we get
a nice uniform handling with no need to differentiate between normal and
faulty cases.

The faulty case that was seen IRL -- ie., users of maintainance mounts
hang in chdir(2) to mount point -- can be simulated for testing purposes
by applying the following patch:

diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
index acd3c68..1ce5dc1 100644
--- a/xlators/mount/fuse/src/fuse-bridge.c
+++ b/xlators/mount/fuse/src/fuse-bridge.c
@@ -2918,7 +2918,7 @@ fuse_init (xlator_t *this, fuse_in_header_t *finh, void *msg)
         if (fini-&gt;minor &lt; 9)
                 *priv-&gt;msg0_len_p = sizeof(*finh) + FUSE_COMPAT_WRITE_IN_SIZE;
 #endif
-        ret = send_fuse_obj (this, finh, &amp;fino);
+        ret = priv-&gt;client_pid_set ? 0 : send_fuse_obj (this, finh, &amp;fino);
         if (ret == 0)
                 gf_log ("glusterfs-fuse", GF_LOG_INFO,
                         "FUSE inited with protocol versions:"

Change-Id: I1172bf16ac1006bad48958655572155820e5138d
BUG: 786291
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2908
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The "finally" clause that was meant to cleanup after the
temp mount has not covered the case of getting signalled
(eg. by monitor, upon worker timing out).

So here we "outsource" the cleanup to an ephemeral child process.
Child calls setsid(2) so it won't be bothered by internal process
management. We use a pipe in between worker and the cleanup child;
when child sees the worker end getting closed, it performs the cleanup.
Worker end can get closed either because worker closes it (normal case),
or because worker has terminated (faulty case) -- thus as bonus, we get
a nice uniform handling with no need to differentiate between normal and
faulty cases.

The faulty case that was seen IRL -- ie., users of maintainance mounts
hang in chdir(2) to mount point -- can be simulated for testing purposes
by applying the following patch:

diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
index acd3c68..1ce5dc1 100644
--- a/xlators/mount/fuse/src/fuse-bridge.c
+++ b/xlators/mount/fuse/src/fuse-bridge.c
@@ -2918,7 +2918,7 @@ fuse_init (xlator_t *this, fuse_in_header_t *finh, void *msg)
         if (fini-&gt;minor &lt; 9)
                 *priv-&gt;msg0_len_p = sizeof(*finh) + FUSE_COMPAT_WRITE_IN_SIZE;
 #endif
-        ret = send_fuse_obj (this, finh, &amp;fino);
+        ret = priv-&gt;client_pid_set ? 0 : send_fuse_obj (this, finh, &amp;fino);
         if (ret == 0)
                 gf_log ("glusterfs-fuse", GF_LOG_INFO,
                         "FUSE inited with protocol versions:"

Change-Id: I1172bf16ac1006bad48958655572155820e5138d
BUG: 786291
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2908
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gsyncd: geo-rep: Reduce excessive verbosity in logging</title>
<updated>2012-03-06T17:46:21+00:00</updated>
<author>
<name>Venky Shankar</name>
<email>vshankar@redhat.com</email>
</author>
<published>2012-03-06T12:05:25+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=e657569da2789b1338c81db3d533b90657997a8d'/>
<id>e657569da2789b1338c81db3d533b90657997a8d</id>
<content type='text'>
Backport logging enhancement from master. This patch
reduces per-second logging to per-minute logging during
crawl

Change-Id: Ie51207e6dd8a0257e59f90239cc6960803673223
BUG: 789078
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2879
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport logging enhancement from master. This patch
reduces per-second logging to per-minute logging during
crawl

Change-Id: Ie51207e6dd8a0257e59f90239cc6960803673223
BUG: 789078
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2879
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep / syncdaemon: make the timeout for establishing the connection to slave configurable</title>
<updated>2012-03-01T17:28:20+00:00</updated>
<author>
<name>Csaba Henk</name>
<email>csaba@redhat.com</email>
</author>
<published>2012-02-29T09:21:09+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=532f2d36e72b4e30984e437ca5a3507de5e897d9'/>
<id>532f2d36e72b4e30984e437ca5a3507de5e897d9</id>
<content type='text'>
It can be set through the connection-timeout tunable but we keep it hidden,
intended as a workaround for some special scenarios not for general use.

Change-Id: I31f9fa3873afa7babc2106ee34484123a01bdc57
BUG: 789078
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2840
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It can be set through the connection-timeout tunable but we keep it hidden,
intended as a workaround for some special scenarios not for general use.

Change-Id: I31f9fa3873afa7babc2106ee34484123a01bdc57
BUG: 789078
Signed-off-by: Csaba Henk &lt;csaba@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2840
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/marker: xtime should not be updated for modifications done by special client.</title>
<updated>2012-01-24T11:34:52+00:00</updated>
<author>
<name>Junaid</name>
<email>junaid@redhat.com</email>
</author>
<published>2012-01-04T11:58:21+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=30755e5620aa32e27c36f70e025bd79c16772805'/>
<id>30755e5620aa32e27c36f70e025bd79c16772805</id>
<content type='text'>
Change-Id: I4b34d449b3ab08e2189fe1ff088299617b640206
BUG: 769494
Signed-off-by: Junaid &lt;junaid@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2564
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Csaba Henk &lt;csaba@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I4b34d449b3ab08e2189fe1ff088299617b640206
BUG: 769494
Signed-off-by: Junaid &lt;junaid@redhat.com&gt;
Reviewed-on: http://review.gluster.com/2564
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Csaba Henk &lt;csaba@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/marker-quota: Use stack_wind_cookie in place of stack_wind to preserve the cookie value.</title>
<updated>2011-11-11T12:41:29+00:00</updated>
<author>
<name>Junaid</name>
<email>junaid@gluster.com</email>
</author>
<published>2011-11-11T11:35:43+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=edf9551b38c18be0dab7230c75547f18c2d09747'/>
<id>edf9551b38c18be0dab7230c75547f18c2d09747</id>
<content type='text'>
In marker_rename, some of the call back functions make use of cookies sent by the calling functions. In case of stack_wind the
frame-&gt;cookie is over written with the address of new frame.

Change-Id: I8ec98f3305700e2c3295a10dff159ca6a19a380a
BUG: 3808
Reviewed-on: http://review.gluster.com/717
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In marker_rename, some of the call back functions make use of cookies sent by the calling functions. In case of stack_wind the
frame-&gt;cookie is over written with the address of new frame.

Change-Id: I8ec98f3305700e2c3295a10dff159ca6a19a380a
BUG: 3808
Reviewed-on: http://review.gluster.com/717
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cli: add geo-replication log-rotate command</title>
<updated>2011-11-04T09:06:44+00:00</updated>
<author>
<name>Venky Shankar</name>
<email>venky@gluster.com</email>
</author>
<published>2011-10-24T09:59:00+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=8e171a03d81452a2998b01997da7647c0b3bf52b'/>
<id>8e171a03d81452a2998b01997da7647c0b3bf52b</id>
<content type='text'>
Rotating geo-replication master/monitor log files from cli.
On invocation, the log file for a given master-slave session
is backed up with the current timestamp suffixed to the file
name and signal is sent to gsyncd to start logging to a new
log file.

Sample commands:

* Rotate log file for this &lt;master&gt;:&lt;slave&gt; session:
gluster volume geo-replication &lt;master&gt; &lt;slave&gt; log-rotate

* Rotate log files for all session for master volume &lt;master&gt;
gluster volume geo-replication &lt;master&gt; log-rotate

* Rotate log files for all sessions:
gluster volume geo-replication log-rotate

Change-Id: If801743e9f37bd282e68d262203141626ce77e55
BUG: 3519
Reviewed-on: http://review.gluster.com/653
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Csaba Henk &lt;csaba@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rotating geo-replication master/monitor log files from cli.
On invocation, the log file for a given master-slave session
is backed up with the current timestamp suffixed to the file
name and signal is sent to gsyncd to start logging to a new
log file.

Sample commands:

* Rotate log file for this &lt;master&gt;:&lt;slave&gt; session:
gluster volume geo-replication &lt;master&gt; &lt;slave&gt; log-rotate

* Rotate log files for all session for master volume &lt;master&gt;
gluster volume geo-replication &lt;master&gt; log-rotate

* Rotate log files for all sessions:
gluster volume geo-replication log-rotate

Change-Id: If801743e9f37bd282e68d262203141626ce77e55
BUG: 3519
Reviewed-on: http://review.gluster.com/653
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Csaba Henk &lt;csaba@gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>check the return value of inode_path for less than or equal to zero</title>
<updated>2011-10-28T11:14:56+00:00</updated>
<author>
<name>Raghavendra Bhat</name>
<email>raghavendrabhat@gluster.com</email>
</author>
<published>2011-10-27T17:43:43+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=b9d94056e555c2386cee3344db23518a47970a97'/>
<id>b9d94056e555c2386cee3344db23518a47970a97</id>
<content type='text'>
Change-Id: I9bbdfe79664c1339b66819a6c7ea4b7698beb5c6
BUG: 3757
Reviewed-on: http://review.gluster.com/640
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Amar Tumballi &lt;amar@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I9bbdfe79664c1339b66819a6c7ea4b7698beb5c6
BUG: 3757
Reviewed-on: http://review.gluster.com/640
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Amar Tumballi &lt;amar@gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>locks: perform inode_ref of pl_update_refkeeper outside locked region</title>
<updated>2011-10-27T10:47:54+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@gluster.com</email>
</author>
<published>2011-10-22T04:18:17+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=76653251218ba6d626430eba5ccb014a8228de9e'/>
<id>76653251218ba6d626430eba5ccb014a8228de9e</id>
<content type='text'>
Performing inode_ref inside the critical section of pl_update_refkeeper
(around pl_inode_t-&gt;mutex) causes a deadlock with inode_table_t-&gt;lock.
The other thread (process state dump) holds the inode_table_t-&gt;lock first
to loop over inodes and then while dumping an inode's lock context, tries
to acquire pl_inode_t-&gt;mutex thereby completing the deadlock.

The fix is to perform inode_ref outside the critical section in
pl_update_refkeeper

Change-Id: I689ab4a9b46b36287740279fdec6159182c86119
BUG: 3753
Reviewed-on: http://review.gluster.com/629
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Performing inode_ref inside the critical section of pl_update_refkeeper
(around pl_inode_t-&gt;mutex) causes a deadlock with inode_table_t-&gt;lock.
The other thread (process state dump) holds the inode_table_t-&gt;lock first
to loop over inodes and then while dumping an inode's lock context, tries
to acquire pl_inode_t-&gt;mutex thereby completing the deadlock.

The fix is to perform inode_ref outside the critical section in
pl_update_refkeeper

Change-Id: I689ab4a9b46b36287740279fdec6159182c86119
BUG: 3753
Reviewed-on: http://review.gluster.com/629
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/marker-quota: Donot log when inode or inode-ctx is NULL.</title>
<updated>2011-10-27T09:57:34+00:00</updated>
<author>
<name>Junaid</name>
<email>junaid@gluster.com</email>
</author>
<published>2011-10-17T07:28:26+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=298eddc58296152c175797546fa9c6c3a90046d1'/>
<id>298eddc58296152c175797546fa9c6c3a90046d1</id>
<content type='text'>
When running rm -rf from mount point, quota-updation process may endup in a state where the
inode is already removed from the gluster inode table, but the updation has process is still in
progress. This is not a error condition because the updation is done asynchronously.

Change-Id: I2d3aad716bb1c971115004a70ca76e2dd5088e44
BUG: 3609
Reviewed-on: http://review.gluster.com/603
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When running rm -rf from mount point, quota-updation process may endup in a state where the
inode is already removed from the gluster inode table, but the updation has process is still in
progress. This is not a error condition because the updation is done asynchronously.

Change-Id: I2d3aad716bb1c971115004a70ca76e2dd5088e44
BUG: 3609
Reviewed-on: http://review.gluster.com/603
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vijay@gluster.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
