<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/api, branch round-robin2</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>gfapi/upcall: Fix a ref leak</title>
<updated>2016-07-24T09:55:28+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2016-07-22T07:45:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=bb48eb46910085928efbd7fb491c5b2db25bba98'/>
<id>bb48eb46910085928efbd7fb491c5b2db25bba98</id>
<content type='text'>
inode_find (used to create the handle) takes a reference
of the inode. This needs to be un'refernced to avoid leak.

Change-Id: I22f03577a8f1d9608cfc62d57202cfc4c2ba12b3
BUG: 1358608
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14984
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Smoke: Gluster 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;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
inode_find (used to create the handle) takes a reference
of the inode. This needs to be un'refernced to avoid leak.

Change-Id: I22f03577a8f1d9608cfc62d57202cfc4c2ba12b3
BUG: 1358608
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14984
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Smoke: Gluster 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;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glfs/upcall: entries should be removed under mutex lock</title>
<updated>2016-07-22T15:13:29+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2016-07-21T06:44:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=89dee8b46e126bc1d7541da90fa60844aa83451e'/>
<id>89dee8b46e126bc1d7541da90fa60844aa83451e</id>
<content type='text'>
During poll, upcall entries should be removed from the
upcall_list only under upcall_list_mutex lock. Otherwise
it could result in the list corruption if there are entries
being added during poll resulting in memory leak.

Also addressed a probable leak during any failures with upcall
entry addition.

Change-Id: I468183f961eb6faed9a0a1bcb783705f711641fc
BUG: 1358608
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14972
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During poll, upcall entries should be removed from the
upcall_list only under upcall_list_mutex lock. Otherwise
it could result in the list corruption if there are entries
being added during poll resulting in memory leak.

Also addressed a probable leak during any failures with upcall
entry addition.

Change-Id: I468183f961eb6faed9a0a1bcb783705f711641fc
BUG: 1358608
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14972
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Enable all gfapi test cases</title>
<updated>2016-07-21T06:15:55+00:00</updated>
<author>
<name>Poornima G</name>
<email>pgurusid@redhat.com</email>
</author>
<published>2016-06-17T05:27:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=0a8b85e3a8228c399dde807c3ca781a452a1fc90'/>
<id>0a8b85e3a8228c399dde807c3ca781a452a1fc90</id>
<content type='text'>
Change-Id: I32bfec4af91348d96dc3e81a9d5c9cad599f821b
Bug: 1358594
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14748
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>
Change-Id: I32bfec4af91348d96dc3e81a9d5c9cad599f821b
Bug: 1358594
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14748
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: update count when glfs_buf_copy is used</title>
<updated>2016-07-07T08:54:17+00:00</updated>
<author>
<name>Raghavendra Talur</name>
<email>rtalur@redhat.com</email>
</author>
<published>2016-07-04T13:06:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=e51beeacf7fcb7359c129c8067cc95dcd2767e39'/>
<id>e51beeacf7fcb7359c129c8067cc95dcd2767e39</id>
<content type='text'>
glfs_buf_copy collates all iovecs into a iovec with count=1. If
gio-&gt;count is not updated it will lead to dereferencing of invalid
address.

Change-Id: I7c58071d5c6515ec6fee3ab36af206fa80cf37c3
BUG: 1352634
Signed-off-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reported-By: Lindsay Mathieson &lt;lindsay.mathieson@gmail.com&gt; 
Reported-By: Dmitry Melekhov &lt;dm@belkam.com&gt; 
Reported-By: Tom Emerson &lt;TEmerson@cyberitas.com&gt;
Reviewed-on: http://review.gluster.org/14854
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-by: Kaushal M &lt;kaushal@redhat.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Niels de Vos &lt;ndevos@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
glfs_buf_copy collates all iovecs into a iovec with count=1. If
gio-&gt;count is not updated it will lead to dereferencing of invalid
address.

Change-Id: I7c58071d5c6515ec6fee3ab36af206fa80cf37c3
BUG: 1352634
Signed-off-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reported-By: Lindsay Mathieson &lt;lindsay.mathieson@gmail.com&gt; 
Reported-By: Dmitry Melekhov &lt;dm@belkam.com&gt; 
Reported-By: Tom Emerson &lt;TEmerson@cyberitas.com&gt;
Reviewed-on: http://review.gluster.org/14854
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-by: Kaushal M &lt;kaushal@redhat.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Niels de Vos &lt;ndevos@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>logging: Change log file name for glusterd</title>
<updated>2016-07-05T03:54:19+00:00</updated>
<author>
<name>Vijay Bellur</name>
<email>vbellur@redhat.com</email>
</author>
<published>2016-02-10T23:27:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=8d41243f18c4a9c89028c8fc5e54b7e2b5e4309d'/>
<id>8d41243f18c4a9c89028c8fc5e54b7e2b5e4309d</id>
<content type='text'>
log file names are based on:

 a. user provided input (through -l switch while starting a gluster process)
 b. mount point paths in the case of native clients
 c. volume/configuration files used for starting a gluster process
 d. volume server used for starting a gluster process

Currently glusterd uses scheme c. to have a log file name that reads as

INSTALL_PREFIX-etc-glusterfs-glusterd.log

Since glusterd has a well known configuration file, it does not make much
sense to have log file name based on scheme c. This patch changes the name of
glusterd's log file to "glusterd.log". Hopefully this enables users to identify
glusterd's log file more easily.

Change-Id: I2d04179c4b9b06271b50eeee3909ee259e8cf547
BUG: 1348944
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13426
Tested-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
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: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
log file names are based on:

 a. user provided input (through -l switch while starting a gluster process)
 b. mount point paths in the case of native clients
 c. volume/configuration files used for starting a gluster process
 d. volume server used for starting a gluster process

Currently glusterd uses scheme c. to have a log file name that reads as

INSTALL_PREFIX-etc-glusterfs-glusterd.log

Since glusterd has a well known configuration file, it does not make much
sense to have log file name based on scheme c. This patch changes the name of
glusterd's log file to "glusterd.log". Hopefully this enables users to identify
glusterd's log file more easily.

Change-Id: I2d04179c4b9b06271b50eeee3909ee259e8cf547
BUG: 1348944
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13426
Tested-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
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: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libgfapi : free parameters allocated by glfs_set_volfile_server()</title>
<updated>2016-06-30T22:21:48+00:00</updated>
<author>
<name>Jiffin Tony Thottan</name>
<email>jthottan@redhat.com</email>
</author>
<published>2016-06-16T10:25:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=09caa0c054c85f030c194362cbf3c687b4a56106'/>
<id>09caa0c054c85f030c194362cbf3c687b4a56106</id>
<content type='text'>
This change introduce new function glfs_free_volfile_server
which frees the variables allocated by glfs_set_volfile_server
during glfs_fini()

Change-Id: I8b1806c56e3431c33e4e8c17f9e8aa17a28a2f5c
BUG: 1347249
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14743
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change introduce new function glfs_free_volfile_server
which frees the variables allocated by glfs_set_volfile_server
during glfs_fini()

Change-Id: I8b1806c56e3431c33e4e8c17f9e8aa17a28a2f5c
BUG: 1347249
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14743
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi/handleops: Avoid using glfd during create</title>
<updated>2016-06-28T11:22:11+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2016-05-25T09:08:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=763ed1017b0011934ad2414d7396c46e528ea5b3'/>
<id>763ed1017b0011934ad2414d7396c46e528ea5b3</id>
<content type='text'>
To avoid leaking glfd while creating a file using handleops and
since application shall not be interested in it, use the 'fd'
object directly which can be un'refed post create.

Change-Id: I119874ffb63fb4aa18f846ba1fdbe77874b66a54
BUG: 1339553
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14532
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To avoid leaking glfd while creating a file using handleops and
since application shall not be interested in it, use the 'fd'
object directly which can be un'refed post create.

Change-Id: I119874ffb63fb4aa18f846ba1fdbe77874b66a54
BUG: 1339553
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14532
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi : check the value "iovec" in glfs_io_async_cbk only for read</title>
<updated>2016-06-28T11:21:56+00:00</updated>
<author>
<name>Jiffin Tony Thottan</name>
<email>jthottan@redhat.com</email>
</author>
<published>2016-06-23T06:50:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=61d72b3d91f2655b04de4ef29262f738a8cf7369'/>
<id>61d72b3d91f2655b04de4ef29262f738a8cf7369</id>
<content type='text'>
The glfs_io_async_cbk() is called from the cbk of all the async ops
such as write, read, fsync, ftruncate. In all other cases, expect for
read the value for "iovec" is NULL. From the code, glfs_io_async_cbk
checks the value in common routine which may end up in failures.

Thanks Joe Julian for finding issue and suggesting the fix.

Change-Id: I0be0123da68f9d8fbb5d94ede2d45566a9add6a5
BUG: 1349276
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reported-by: Joe Julian &lt;me@joejulian.name&gt;
Reviewed-on: http://review.gluster.org/14779
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&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: Joe Julian &lt;me@joejulian.name&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The glfs_io_async_cbk() is called from the cbk of all the async ops
such as write, read, fsync, ftruncate. In all other cases, expect for
read the value for "iovec" is NULL. From the code, glfs_io_async_cbk
checks the value in common routine which may end up in failures.

Thanks Joe Julian for finding issue and suggesting the fix.

Change-Id: I0be0123da68f9d8fbb5d94ede2d45566a9add6a5
BUG: 1349276
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reported-by: Joe Julian &lt;me@joejulian.name&gt;
Reviewed-on: http://review.gluster.org/14779
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&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: Joe Julian &lt;me@joejulian.name&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: Fix IO error caused when there is consecutive graph switches</title>
<updated>2016-06-16T11:57:42+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://git.gluster.org/cgit/glusterfs.git/commit/?id=b8ac20e888fbacad9d90cd8f1c6ff8579a5cefe9'/>
<id>b8ac20e888fbacad9d90cd8f1c6ff8579a5cefe9</id>
<content type='text'>
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: 1343038
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;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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: 1343038
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>api: use versioned symbols for minor ABI change</title>
<updated>2016-06-15T01:30:21+00:00</updated>
<author>
<name>Kaleb S KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2016-06-13T15:34:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=e740b700975bdb1014ede99c65731095bdf81a72'/>
<id>e740b700975bdb1014ede99c65731095bdf81a72</id>
<content type='text'>
No need to expand the API/ABI. E.g., see how glfs_lookupat
changed between 3.7.0 and 3.7.4 IIRC

(I originally argued against versioning the library. I wanted
to just add new functions as they were needed, as was initially
done for glfs_ipc and glfs_ipc_xd in the master branch for 4.0.
But others strongly wanted versioning.)

Having made the decision to use versioning, I believe we should
continue. At least until we have a public decision that we're
no longer going to use versioning.

Change-Id: I0c3b2c1cbb297ae2b2864b647c224922987d74ad
Signed-off-by: Kaleb S KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14717
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
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;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No need to expand the API/ABI. E.g., see how glfs_lookupat
changed between 3.7.0 and 3.7.4 IIRC

(I originally argued against versioning the library. I wanted
to just add new functions as they were needed, as was initially
done for glfs_ipc and glfs_ipc_xd in the master branch for 4.0.
But others strongly wanted versioning.)

Having made the decision to use versioning, I believe we should
continue. At least until we have a public decision that we're
no longer going to use versioning.

Change-Id: I0c3b2c1cbb297ae2b2864b647c224922987d74ad
Signed-off-by: Kaleb S KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14717
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
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;
</pre>
</div>
</content>
</entry>
</feed>
