<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/tests/bugs/gfapi, branch v3.8.13</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>tests: Enable all gfapi test cases</title>
<updated>2016-09-21T10:18:32+00:00</updated>
<author>
<name>Rajesh Joseph</name>
<email>rjoseph@redhat.com</email>
</author>
<published>2016-09-14T00:38:39+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=d4e16452c82fcf6a71292aa91f5d7424a31b7b0f'/>
<id>d4e16452c82fcf6a71292aa91f5d7424a31b7b0f</id>
<content type='text'>
&gt; Change-Id: I32bfec4af91348d96dc3e81a9d5c9cad599f821b
&gt; Bug: 1358594
&gt; Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14748
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;

Bug: 1375990
Change-Id: I87f6c7d20959e2d4bbe8c064767a9fed004e8c4a
Signed-off-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15499
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
&gt; Change-Id: I32bfec4af91348d96dc3e81a9d5c9cad599f821b
&gt; Bug: 1358594
&gt; Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14748
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;

Bug: 1375990
Change-Id: I87f6c7d20959e2d4bbe8c064767a9fed004e8c4a
Signed-off-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15499
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: Fix IO error caused when there is consecutive graph switches</title>
<updated>2016-06-17T11:35:25+00:00</updated>
<author>
<name>Poornima G</name>
<email>pgurusid@redhat.com</email>
</author>
<published>2016-06-06T10:29:40+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=cf1e98ff5bf8233803b4f74debee1b1f474765af'/>
<id>cf1e98ff5bf8233803b4f74debee1b1f474765af</id>
<content type='text'>
Backport of http://review.gluster.org/#/c/14656/

Issue:
Consider a simple situation, where glfs_init() is done, i.e. initial
graph is up. Now perform 2 volume sets that results in 2 client side
graph changes. After this perform some IO, the IO fails with ENOTCON.
The only way to recover this client is i guess another graph switch
or restart.

What actually is happening from code perspective:
Initial graph lets say A, followed by 2 consecutive graph switches
to B and C without any IO those two switches.

- graph_setup (A) as a result of GF_EVENT_CHILD_UP, and
fs-&gt;next_subvol = A

- glfs_init() results in fs-&gt;active_subvol = A, fs-&gt;next_subvol = NULL

- graph_setup (B) as a result of GF_EVENT_CHILD_UP, and
fs-&gt;next_subvol = B

- graph_setup (C) as a result of GF_EVENT_CHILD_UP, and
fs-&gt;next_subvol = C. It also sees that the previous graph B was never
set as fs-&gt;active_subvol, i.e. no IO or anything happened on B, so
can safely send GF_EVENT_PARENT_DOWN (by calling glfs_subvol_done(B)).
This parent down on B, results in child_down(B), which is fine.
But child_down also triggers graph_setup(B).

- graph_setup(B) as a result of GF_EVENT_CHILD_DOWN, and
fs-&gt;next_subvol = B, and GF_EVENT_PARENT_DOWN on C as explained
above. This again leads to GF_EVENT_CHILD_DOWN on C.

- graph_setup(C) as a result of GF_EVENT_CHILD_DOWN, and
fs-&gt;next_subvol = C, and GF_EVENT_PARENT_DOWN on B as explained
above.

Thus both the graphs B and C are disconnected, and hence the ENOTCON

Solution:
Remove the call to graph_setup() when the event is GF_EVENT_CHILD_DOWN.
It don't see any reason why graph_setup should be called when there is
child_down. Not sure what the original reason was, to have graph_setup
in child_down. git hostory shows the first patch itself had this call.

Change-Id: I9de86555f66cc94a05649ac863b40ed3426ffd4b
BUG: 1347489
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14656
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
(cherry picked from commit b8ac20e888fbacad9d90cd8f1c6ff8579a5cefe9)
Reviewed-on: http://review.gluster.org/14747
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport of http://review.gluster.org/#/c/14656/

Issue:
Consider a simple situation, where glfs_init() is done, i.e. initial
graph is up. Now perform 2 volume sets that results in 2 client side
graph changes. After this perform some IO, the IO fails with ENOTCON.
The only way to recover this client is i guess another graph switch
or restart.

What actually is happening from code perspective:
Initial graph lets say A, followed by 2 consecutive graph switches
to B and C without any IO those two switches.

- graph_setup (A) as a result of GF_EVENT_CHILD_UP, and
fs-&gt;next_subvol = A

- glfs_init() results in fs-&gt;active_subvol = A, fs-&gt;next_subvol = NULL

- graph_setup (B) as a result of GF_EVENT_CHILD_UP, and
fs-&gt;next_subvol = B

- graph_setup (C) as a result of GF_EVENT_CHILD_UP, and
fs-&gt;next_subvol = C. It also sees that the previous graph B was never
set as fs-&gt;active_subvol, i.e. no IO or anything happened on B, so
can safely send GF_EVENT_PARENT_DOWN (by calling glfs_subvol_done(B)).
This parent down on B, results in child_down(B), which is fine.
But child_down also triggers graph_setup(B).

- graph_setup(B) as a result of GF_EVENT_CHILD_DOWN, and
fs-&gt;next_subvol = B, and GF_EVENT_PARENT_DOWN on C as explained
above. This again leads to GF_EVENT_CHILD_DOWN on C.

- graph_setup(C) as a result of GF_EVENT_CHILD_DOWN, and
fs-&gt;next_subvol = C, and GF_EVENT_PARENT_DOWN on B as explained
above.

Thus both the graphs B and C are disconnected, and hence the ENOTCON

Solution:
Remove the call to graph_setup() when the event is GF_EVENT_CHILD_DOWN.
It don't see any reason why graph_setup should be called when there is
child_down. Not sure what the original reason was, to have graph_setup
in child_down. git hostory shows the first patch itself had this call.

Change-Id: I9de86555f66cc94a05649ac863b40ed3426ffd4b
BUG: 1347489
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14656
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
(cherry picked from commit b8ac20e888fbacad9d90cd8f1c6ff8579a5cefe9)
Reviewed-on: http://review.gluster.org/14747
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: move libgfapi tests to their own gfapi subdir</title>
<updated>2015-03-23T15:24:25+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2015-03-22T11:13:42+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=8992b549df536eaf5ff6315221f66191f2eff7ef'/>
<id>8992b549df536eaf5ff6315221f66191f2eff7ef</id>
<content type='text'>
Also, glfs_fini() is currently not stable yet, this test case causes
many regression failures. The .t file has been renamed to .sh so that
the test does not get run automatically, but can be run easily by hand.

BUG: 1093594
Change-Id: I63fa4ddf798a505bc94d13d32dd02f22a9b7ab73
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9961
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also, glfs_fini() is currently not stable yet, this test case causes
many regression failures. The .t file has been renamed to .sh so that
the test does not get run automatically, but can be run easily by hand.

BUG: 1093594
Change-Id: I63fa4ddf798a505bc94d13d32dd02f22a9b7ab73
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9961
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
