<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/mgmt/glusterd/src, branch v3.7.15</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>glusterd/geo-rep: Add relative path validation to copy file command</title>
<updated>2016-08-25T07:30:53+00:00</updated>
<author>
<name>Aravinda VK</name>
<email>avishwan@redhat.com</email>
</author>
<published>2016-07-19T06:03:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c9434a70f07ec25821563f66f36767c3a7ad0de4'/>
<id>c9434a70f07ec25821563f66f36767c3a7ad0de4</id>
<content type='text'>
Added validation for input file, command fails if input file path is
relative path pointing outside of GLUSTERD_WORKDIR.

BUG: 1350784
Change-Id: I329d43ebed69bfe9fe03d6be70dc8c78a605ffc5
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14772
Reviewed-on: http://review.gluster.org/14948
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added validation for input file, command fails if input file path is
relative path pointing outside of GLUSTERD_WORKDIR.

BUG: 1350784
Change-Id: I329d43ebed69bfe9fe03d6be70dc8c78a605ffc5
Signed-off-by: Aravinda VK &lt;avishwan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14772
Reviewed-on: http://review.gluster.org/14948
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kotresh HR &lt;khiremat@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>snapshot/snapd: Don't display pid when snapd is offline</title>
<updated>2016-08-22T08:34:31+00:00</updated>
<author>
<name>Avra Sengupta</name>
<email>asengupt@redhat.com</email>
</author>
<published>2016-07-22T06:10:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=888ad44a9da3006b3e5695e5e5b40d6e446aa109'/>
<id>888ad44a9da3006b3e5695e5e5b40d6e446aa109</id>
<content type='text'>
    Backport of http://review.gluster.org/#/c/14981/

We were previously reading the pidfile, and displaying
the pid even if snapd daemon is not running. Now to fix
it, we re-assign pid value to -1, if snapd is offline.

&gt; Reviewed-on: http://review.gluster.org/14981
&gt; Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;

(cherry picked from commit ec6925a379c7bee071df1638bc2751b266cee346)

Change-Id: I4baff8d489fe9380061c52aea006db90fa421cd7
BUG: 1360979
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15032
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: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
    Backport of http://review.gluster.org/#/c/14981/

We were previously reading the pidfile, and displaying
the pid even if snapd daemon is not running. Now to fix
it, we re-assign pid value to -1, if snapd is offline.

&gt; Reviewed-on: http://review.gluster.org/14981
&gt; Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;

(cherry picked from commit ec6925a379c7bee071df1638bc2751b266cee346)

Change-Id: I4baff8d489fe9380061c52aea006db90fa421cd7
BUG: 1360979
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15032
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: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd/geo-rep: Handle empty monitor.status during upgrade</title>
<updated>2016-08-19T10:47:44+00:00</updated>
<author>
<name>Saravanakumar Arumugam</name>
<email>sarumuga@redhat.com</email>
</author>
<published>2016-06-29T10:06:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=26c153bec24c0c0a37e788707f6ca793890279f0'/>
<id>26c153bec24c0c0a37e788707f6ca793890279f0</id>
<content type='text'>
Problem:
Consider geo-replication is in Stopped state.
Following which, glusterfs is upgraded (where monitor.status is the new status file).

Now, When geo-replication status command is run,
empty monitor status file gets created.

Now, if glusterd is restarted, it reads empty monitor status
and  starts geo-replication session. This is incorrect as session
was in Stopped state earlier.

Solution:
If monitor status is empty, error out and avoid
starting geo-replication session.

Note: if monitor status is empty, geo-rep session is displayed
as Stopped state.

Change-Id: Ifb3db896e5ed92b927764cf1163503765cb08bb4
BUG: 1368055
Signed-off-by: Saravanakumar Arumugam &lt;sarumuga@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14830
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
(cherry picked from commit f938b3a26ffab9482d5f910ee76d2bb2b370517f)
Reviewed-on: http://review.gluster.org/15197
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: Aravinda VK &lt;avishwan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Consider geo-replication is in Stopped state.
Following which, glusterfs is upgraded (where monitor.status is the new status file).

Now, When geo-replication status command is run,
empty monitor status file gets created.

Now, if glusterd is restarted, it reads empty monitor status
and  starts geo-replication session. This is incorrect as session
was in Stopped state earlier.

Solution:
If monitor status is empty, error out and avoid
starting geo-replication session.

Note: if monitor status is empty, geo-rep session is displayed
as Stopped state.

Change-Id: Ifb3db896e5ed92b927764cf1163503765cb08bb4
BUG: 1368055
Signed-off-by: Saravanakumar Arumugam &lt;sarumuga@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14830
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
(cherry picked from commit f938b3a26ffab9482d5f910ee76d2bb2b370517f)
Reviewed-on: http://review.gluster.org/15197
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: Aravinda VK &lt;avishwan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: Convert volume to replica after adding brick self heal is not triggered</title>
<updated>2016-08-18T14:44:46+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawa@redhat.com</email>
</author>
<published>2016-08-09T10:23:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=68b68ce5d4bd0df63e1b7a0a0e6365b5020a3db7'/>
<id>68b68ce5d4bd0df63e1b7a0a0e6365b5020a3db7</id>
<content type='text'>
Problem:  After add brick to a distribute volume to convert to replica is not
          triggering self heal.

Solution: Modify the condition in brick_graph_add_index to set trusted.afr.dirty
          attribute in xlator.

Test    : To verify the patch followd below steps
          1) Create a single node volume
             gluster volume create &lt;DIS&gt; &lt;IP:/dist1/brick1&gt;
          2) Start volume and create mount point
             mount -t glusterfs &lt;IP&gt;:/DIS /mnt
          3) Touch some file and write some data on file
          4) Add another brick along with replica 2
             gluster volume add-brick DIS replica 2 &lt;IP&gt;:/dist2/brick2
          5) Before apply the patch file size is 0 bytes in mount point.
Backport of commit 87bb8d0400d4ed18dd3954b1d9e5ca6ee0fb9742
BUG: 1366444
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;

&gt; Change-Id: Ief0ccbf98ea21b53d0e27edef177db6cabb3397f
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/15118
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
&gt; Reviewed-by: Anuradha Talur &lt;atalur@redhat.com&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
&gt; (cherry picked from commit 87bb8d0400d4ed18dd3954b1d9e5ca6ee0fb9742)

Change-Id: I9c21ba4d7b1a2d7c5c79a6bb86cc05831b0cd120
Reviewed-on: http://review.gluster.org/15152
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Ravishankar N &lt;ravishankar@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;
Tested-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  After add brick to a distribute volume to convert to replica is not
          triggering self heal.

Solution: Modify the condition in brick_graph_add_index to set trusted.afr.dirty
          attribute in xlator.

Test    : To verify the patch followd below steps
          1) Create a single node volume
             gluster volume create &lt;DIS&gt; &lt;IP:/dist1/brick1&gt;
          2) Start volume and create mount point
             mount -t glusterfs &lt;IP&gt;:/DIS /mnt
          3) Touch some file and write some data on file
          4) Add another brick along with replica 2
             gluster volume add-brick DIS replica 2 &lt;IP&gt;:/dist2/brick2
          5) Before apply the patch file size is 0 bytes in mount point.
Backport of commit 87bb8d0400d4ed18dd3954b1d9e5ca6ee0fb9742
BUG: 1366444
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;

&gt; Change-Id: Ief0ccbf98ea21b53d0e27edef177db6cabb3397f
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/15118
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
&gt; Reviewed-by: Anuradha Talur &lt;atalur@redhat.com&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
&gt; (cherry picked from commit 87bb8d0400d4ed18dd3954b1d9e5ca6ee0fb9742)

Change-Id: I9c21ba4d7b1a2d7c5c79a6bb86cc05831b0cd120
Reviewed-on: http://review.gluster.org/15152
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Ravishankar N &lt;ravishankar@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;
Tested-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gluster v set help does not show ssl options</title>
<updated>2016-08-11T14:08:02+00:00</updated>
<author>
<name>Mohit Agrawal</name>
<email>moagrawa@redhat.com</email>
</author>
<published>2016-06-29T10:06:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=97adfece98bcb7987fa0a1b6cc27439e04eef3b4'/>
<id>97adfece98bcb7987fa0a1b6cc27439e04eef3b4</id>
<content type='text'>
Problem: "gluster v set help" does not show ssl options.

Solution: Remove NO_DOC option for client.ssl/server.ssl from glusterd_volopt_map.
Backport of commit 9733c68e878869daec196bf7bca16780eef73f74
BUG: 1365757
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;

&gt; Change-Id: Iabe982ea56398209bbf30d41260798e5ad7fce7b
&gt; BUG: 1351134
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14829
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; (cherry picked from commit 9733c68e878869daec196bf7bca16780eef73f74)

Change-Id: Ic602ede19342fb8c507e1daed56d4883392fb172
Reviewed-on: http://review.gluster.org/15131
Tested-by: MOHIT AGRAWAL &lt;moagrawa@redhat.com&gt;
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster 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>
Problem: "gluster v set help" does not show ssl options.

Solution: Remove NO_DOC option for client.ssl/server.ssl from glusterd_volopt_map.
Backport of commit 9733c68e878869daec196bf7bca16780eef73f74
BUG: 1365757
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;

&gt; Change-Id: Iabe982ea56398209bbf30d41260798e5ad7fce7b
&gt; BUG: 1351134
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14829
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; (cherry picked from commit 9733c68e878869daec196bf7bca16780eef73f74)

Change-Id: Ic602ede19342fb8c507e1daed56d4883392fb172
Reviewed-on: http://review.gluster.org/15131
Tested-by: MOHIT AGRAWAL &lt;moagrawa@redhat.com&gt;
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster 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>glusterd: Fix memory leak in glusterd (un)lock RPCs</title>
<updated>2016-08-04T03:58:38+00:00</updated>
<author>
<name>root</name>
<email>root@dhcp35-131.lab.eng.blr.redhat.com</email>
</author>
<published>2016-07-05T09:03:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=058ccf9520794280f3fc254de00e3f604e3cfbb7'/>
<id>058ccf9520794280f3fc254de00e3f604e3cfbb7</id>
<content type='text'>
Problem:  At the time of execute "gluster volume profile &lt;vol&gt; info" command
          It does have memory leak in glusterd.

Solution: Modify the code to prevent memory leak in glusterd.

Fix    : 1) Unref dict and free dict_val buffer in glusterd_mgmt_v3_lock_peer and
            glusterd_mgmt_v3_unlock_peers.

Test   : To verify the patch run below loop to generate io traffic
         for (( i=0 ; i&lt;=1000000 ; i++ ));
           do echo "hi Start Line " &gt; file$i;
           cat file$i &gt;&gt; /dev/null;
         done

         To verify the improvement in memory leak specific to glusterd run below command

         cnt=0;while [ $cnt -le 1000 ]; do
         pmap -x &lt;glusterd-pid&gt; | grep total;
         gluster volume profile distributed info &gt; /dev/null; cnt=`expr $cnt + 1`; done

         After apply this patch it will reduce leak significantly.

&gt; Reviewed-on: http://review.gluster.org/14862
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
&gt; Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;

BUG: 1363747
Change-Id: I52a0ca47adb20bfe4b1848a11df23e5e37c5cea9
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
Signed-off-by: Oleksandr Natalenko &lt;oleksandr@natalenko.name&gt;
Reviewed-on: http://review.gluster.org/15081
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;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  At the time of execute "gluster volume profile &lt;vol&gt; info" command
          It does have memory leak in glusterd.

Solution: Modify the code to prevent memory leak in glusterd.

Fix    : 1) Unref dict and free dict_val buffer in glusterd_mgmt_v3_lock_peer and
            glusterd_mgmt_v3_unlock_peers.

Test   : To verify the patch run below loop to generate io traffic
         for (( i=0 ; i&lt;=1000000 ; i++ ));
           do echo "hi Start Line " &gt; file$i;
           cat file$i &gt;&gt; /dev/null;
         done

         To verify the improvement in memory leak specific to glusterd run below command

         cnt=0;while [ $cnt -le 1000 ]; do
         pmap -x &lt;glusterd-pid&gt; | grep total;
         gluster volume profile distributed info &gt; /dev/null; cnt=`expr $cnt + 1`; done

         After apply this patch it will reduce leak significantly.

&gt; Reviewed-on: http://review.gluster.org/14862
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
&gt; Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;

BUG: 1363747
Change-Id: I52a0ca47adb20bfe4b1848a11df23e5e37c5cea9
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;
Signed-off-by: Oleksandr Natalenko &lt;oleksandr@natalenko.name&gt;
Reviewed-on: http://review.gluster.org/15081
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>changelog/rpc: Fix rpc_clnt_t mem leaks</title>
<updated>2016-07-27T10:13:33+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2016-03-07T06:15:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=5a32c26bb59bdd20bdfc9ea00ce90c7d1c64aa04'/>
<id>5a32c26bb59bdd20bdfc9ea00ce90c7d1c64aa04</id>
<content type='text'>
Backport of http://review.gluster.org/13658

PROBLEM:
   1. Freeing up rpc_clnt object might lead to crashes. Well,
      it was not a necessity to free rpc-clnt object till now
      because all the existing use cases needs to reconnect
      back on disconnects. Hence timer code was not taking
      ref on rpc-clnt object.

      Glusterd had some use-cases that led to crash due to
      ping-timer and they fixed only those code paths that
      involve ping-timer.

      Now, since changelog has an use-case where rpc-clnt
      need to be freed up, we need to fix timer code to take
      refs

   2. In changelog, because of issue 1, only mydata was being
      freed which is incorrect. And there are races where
      rpc-clnt object would access the freed mydata which
      would lead to crashes.

      Since changelog xlator resides on brick side and is long
      living process, if multiple libgfchangelog consumers
      register to changelog and disconnect/reconnect mulitple
      times, it would result in leak of 'rpc-clnt' object
      for every connect/disconnect.

SOLUTION:
   1. Handle ref/unref of 'rpc_clnt' structure in timer
      functions properly.
   2. In changelog, unref 'rpc_clnt' in RPC_CLNT_DISCONNECT
      after disabling timers and free mydata on RPC_CLNT_DESTROY.

RPC SETUP IN CHANGELOG:
   1. changelog xlator initiates rpc server say 'changelog_rpc_server'
   2. libgfchangelog initiates one rpc server say 'libgfchangelog_rpc_server'
   3. libgfchangelog initiates rpc client and connects to 'changelog_rpc_server'
   4. In return changelog_rpc_server initiates a rpc client and connects back
      to 'libgfchangelog_rpc_server'

REF/UNREF HANDLING IN TIMER FUNCTIONS:
Let's say rpc clnt refcount = 1
   1. Take the ref before reigstering callback to timer queue
           &gt;&gt;&gt;&gt;  rpc_clnt_ref (say ref count becomes = 2)
   2. Register a callback to timer say 'callback1'
   3. If register fails:
           &gt;&gt;&gt;&gt; rpc_clnt_unref (ref count = 1)
   4. On timer expiration, 'callback1' gets called. So unref rpc clnt at the end
      in 'callback1'. This is corresponding to ref taken in step 1
           &gt;&gt;&gt;&gt; rpc_clnt_unref (ref count = 1)
   5. The cycle from step-1 to step-4 continues....until timer cancel event happens
   6. timer cancel of say 'callback1'
           If timer cancel fails:
                 Do nothing, Step-4 would have unrefd
           If timer cancel succeeds:
                 &gt;&gt;&gt;&gt; rpc_clnt_unref (ref count = 1)

Change-Id: I91389bc511b8b1a17824941970ee8d2c29a74a09
BUG: 1359363
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 637ce9e2e27e9f598a4a6c5a04cd339efaa62076)
Reviewed-on: http://review.gluster.org/14993
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport of http://review.gluster.org/13658

PROBLEM:
   1. Freeing up rpc_clnt object might lead to crashes. Well,
      it was not a necessity to free rpc-clnt object till now
      because all the existing use cases needs to reconnect
      back on disconnects. Hence timer code was not taking
      ref on rpc-clnt object.

      Glusterd had some use-cases that led to crash due to
      ping-timer and they fixed only those code paths that
      involve ping-timer.

      Now, since changelog has an use-case where rpc-clnt
      need to be freed up, we need to fix timer code to take
      refs

   2. In changelog, because of issue 1, only mydata was being
      freed which is incorrect. And there are races where
      rpc-clnt object would access the freed mydata which
      would lead to crashes.

      Since changelog xlator resides on brick side and is long
      living process, if multiple libgfchangelog consumers
      register to changelog and disconnect/reconnect mulitple
      times, it would result in leak of 'rpc-clnt' object
      for every connect/disconnect.

SOLUTION:
   1. Handle ref/unref of 'rpc_clnt' structure in timer
      functions properly.
   2. In changelog, unref 'rpc_clnt' in RPC_CLNT_DISCONNECT
      after disabling timers and free mydata on RPC_CLNT_DESTROY.

RPC SETUP IN CHANGELOG:
   1. changelog xlator initiates rpc server say 'changelog_rpc_server'
   2. libgfchangelog initiates one rpc server say 'libgfchangelog_rpc_server'
   3. libgfchangelog initiates rpc client and connects to 'changelog_rpc_server'
   4. In return changelog_rpc_server initiates a rpc client and connects back
      to 'libgfchangelog_rpc_server'

REF/UNREF HANDLING IN TIMER FUNCTIONS:
Let's say rpc clnt refcount = 1
   1. Take the ref before reigstering callback to timer queue
           &gt;&gt;&gt;&gt;  rpc_clnt_ref (say ref count becomes = 2)
   2. Register a callback to timer say 'callback1'
   3. If register fails:
           &gt;&gt;&gt;&gt; rpc_clnt_unref (ref count = 1)
   4. On timer expiration, 'callback1' gets called. So unref rpc clnt at the end
      in 'callback1'. This is corresponding to ref taken in step 1
           &gt;&gt;&gt;&gt; rpc_clnt_unref (ref count = 1)
   5. The cycle from step-1 to step-4 continues....until timer cancel event happens
   6. timer cancel of say 'callback1'
           If timer cancel fails:
                 Do nothing, Step-4 would have unrefd
           If timer cancel succeeds:
                 &gt;&gt;&gt;&gt; rpc_clnt_unref (ref count = 1)

Change-Id: I91389bc511b8b1a17824941970ee8d2c29a74a09
BUG: 1359363
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 637ce9e2e27e9f598a4a6c5a04cd339efaa62076)
Reviewed-on: http://review.gluster.org/14993
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>georep: add reset-sync-time option for session delete</title>
<updated>2016-07-21T10:04:23+00:00</updated>
<author>
<name>Milind Changire</name>
<email>mchangir@redhat.com</email>
</author>
<published>2016-04-22T11:26:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=301e4e8366759c45aaff03a7953ab5248b5f61de'/>
<id>301e4e8366759c45aaff03a7953ab5248b5f61de</id>
<content type='text'>
Set the stime xattr at all the brick roots to (0,0) if the argument
reset-sync-time has been provided on the command-line.
To avoid testing against directory specific stime, the remote
stime is assumed to be minus_infinity, if the root directory
stime is set to (0,0), before the directory scan begins.
This triggers a full volume resync to slave in the case of a
geo-rep session recreation with the same master-slave volume
pair.

Command synopsis:
gluster volume geo-replication &lt;MASTERVOL&gt; &lt;SLAVE&gt;::&lt;SLAVEVOL&gt; delete \
    [reset-sync-time]

Update gluster cli man page to include new sub-command reset-sync-time.

Change-Id: Ie4ce03b9425ed9bb81eda8681058c0fc6f990948
BUG: 1357772
Signed-off-by: Milind Changire &lt;mchangir@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14051
Reviewed-by: Kotresh HR &lt;khiremat@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: Aravinda VK &lt;avishwan@redhat.com&gt;
(cherry picked from commit 70fd68d94f768c098b3178c151fa92c5079a8cfd)
Reviewed-on: http://review.gluster.org/14952
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Set the stime xattr at all the brick roots to (0,0) if the argument
reset-sync-time has been provided on the command-line.
To avoid testing against directory specific stime, the remote
stime is assumed to be minus_infinity, if the root directory
stime is set to (0,0), before the directory scan begins.
This triggers a full volume resync to slave in the case of a
geo-rep session recreation with the same master-slave volume
pair.

Command synopsis:
gluster volume geo-replication &lt;MASTERVOL&gt; &lt;SLAVE&gt;::&lt;SLAVEVOL&gt; delete \
    [reset-sync-time]

Update gluster cli man page to include new sub-command reset-sync-time.

Change-Id: Ie4ce03b9425ed9bb81eda8681058c0fc6f990948
BUG: 1357772
Signed-off-by: Milind Changire &lt;mchangir@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14051
Reviewed-by: Kotresh HR &lt;khiremat@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: Aravinda VK &lt;avishwan@redhat.com&gt;
(cherry picked from commit 70fd68d94f768c098b3178c151fa92c5079a8cfd)
Reviewed-on: http://review.gluster.org/14952
</pre>
</div>
</content>
</entry>
<entry>
<title>Glusterd: printing the node details on error message of rebalance</title>
<updated>2016-07-15T13:46:10+00:00</updated>
<author>
<name>hari</name>
<email>hgowtham@redhat.com</email>
</author>
<published>2016-05-23T06:37:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c28aca72289c6526abc48d08f669c50e13ef4ab5'/>
<id>c28aca72289c6526abc48d08f669c50e13ef4ab5</id>
<content type='text'>
        back-port of : http://review.gluster.org/#/c/14495

Problem: on the rebalance start with one of the glusterd being
down among the volume, the error message says only about the
brick path.

Fix: adding the node details

&gt;Change-Id: I5827d3a9a15b0461c9ce3a51c0b16246ca58f335
&gt;BUG: 1337899
&gt;Signed-off-by: hari &lt;hgowtham@redhat.com&gt;

Change-Id: I3075f3a73e289dfe577742a3d5086531026f567d
BUG: 1339923
Signed-off-by: hari gowtham &lt;hgowtham@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14540
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: hari gowtham &lt;hari.gowtham005@gmail.com&gt;
Reviewed-by: Zhou Zhengping &lt;johnzzpcrystal@gmail.com&gt;
Smoke: 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>
        back-port of : http://review.gluster.org/#/c/14495

Problem: on the rebalance start with one of the glusterd being
down among the volume, the error message says only about the
brick path.

Fix: adding the node details

&gt;Change-Id: I5827d3a9a15b0461c9ce3a51c0b16246ca58f335
&gt;BUG: 1337899
&gt;Signed-off-by: hari &lt;hgowtham@redhat.com&gt;

Change-Id: I3075f3a73e289dfe577742a3d5086531026f567d
BUG: 1339923
Signed-off-by: hari gowtham &lt;hgowtham@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14540
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: hari gowtham &lt;hari.gowtham005@gmail.com&gt;
Reviewed-by: Zhou Zhengping &lt;johnzzpcrystal@gmail.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: Fix gsyncd upgrade issue</title>
<updated>2016-07-15T13:45:23+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2016-07-11T19:09:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=ce1905c58fd604f1ef00a55609a832d1cf658c7e'/>
<id>ce1905c58fd604f1ef00a55609a832d1cf658c7e</id>
<content type='text'>
Backport of http://review.gluster.org/14898/

Problem:
    gluster upgrade is not generating new volfiles

Cause:
During upgrade, "glusterd --xlator-option *.upgrade=on -N"
is run to generate new volfiles. It is run post 'glusterfs'
rpm installation. The above command fails during upgrade
if geo-replication is installed. This is because on
glusterd start 'gsyncd' binary is called to configure
geo-replication related stuff. Since 'glusterfs' rpm is
installed prior to 'geo-rep' rpm, the 'gsyncd' binary
used to glusterd upgrade command is of old version and
hence it fails before generating new volfiles.

Solution:
Don't call geo-replication configure during upgrade/downgrade.
Geo-replication configuration happens during start of glusterd
after upgrade.

Change-Id: Id58ea44ead9f69982f86fb68dc5b9ee3f6cd11a1
BUG: 1356426
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 1b998788ece8c8b52657e8b9aae65d3279690c5b)
Reviewed-on: http://review.gluster.org/14915
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: 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>
Backport of http://review.gluster.org/14898/

Problem:
    gluster upgrade is not generating new volfiles

Cause:
During upgrade, "glusterd --xlator-option *.upgrade=on -N"
is run to generate new volfiles. It is run post 'glusterfs'
rpm installation. The above command fails during upgrade
if geo-replication is installed. This is because on
glusterd start 'gsyncd' binary is called to configure
geo-replication related stuff. Since 'glusterfs' rpm is
installed prior to 'geo-rep' rpm, the 'gsyncd' binary
used to glusterd upgrade command is of old version and
hence it fails before generating new volfiles.

Solution:
Don't call geo-replication configure during upgrade/downgrade.
Geo-replication configuration happens during start of glusterd
after upgrade.

Change-Id: Id58ea44ead9f69982f86fb68dc5b9ee3f6cd11a1
BUG: 1356426
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
(cherry picked from commit 1b998788ece8c8b52657e8b9aae65d3279690c5b)
Reviewed-on: http://review.gluster.org/14915
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
