<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git, branch v3.7.9</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>mount/fuse: cleanup an additional inode_ref()</title>
<updated>2016-03-17T20:05:20+00:00</updated>
<author>
<name>Vijay Bellur</name>
<email>vbellur@redhat.com</email>
</author>
<published>2016-03-13T14:44:12+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=1eece065f1379bf08af839bae626ae701ccd91b0'/>
<id>1eece065f1379bf08af839bae626ae701ccd91b0</id>
<content type='text'>
commit ca515db0127 introduced a check in
fuse_resolve_inode_simple(). This results in an additional
ref being held on inodes which were obtained through readdirp.
As a result, the inode table keeps growing and entries remain in
the active list even after deletion of such inodes from the volume.

Change-Id: I780ec5513990d6ef00ea051ec57ff20e4428081e
BUG: 1317959
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13745
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ca515db0127 introduced a check in
fuse_resolve_inode_simple(). This results in an additional
ref being held on inodes which were obtained through readdirp.
As a result, the inode table keeps growing and entries remain in
the active list even after deletion of such inodes from the volume.

Change-Id: I780ec5513990d6ef00ea051ec57ff20e4428081e
BUG: 1317959
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13745
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/tier: break out of iterating query file once cycle time ends</title>
<updated>2016-03-17T04:37:48+00:00</updated>
<author>
<name>Dan Lambright</name>
<email>dlambrig@redhat.com</email>
</author>
<published>2016-01-22T22:31:48+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=9fbcf7f862df50925c3e2b83740c30ccd55e80dd'/>
<id>9fbcf7f862df50925c3e2b83740c30ccd55e80dd</id>
<content type='text'>
When iterating the query file during migration, tiering should
break out of the loop once cycle time completes. Otherwise it
may be possible to stay in the loop for a long time. If that
happens updates to files will become stale and have not impact
migration.

This is a backport of 13284

&gt; Change-Id: Ib60cf74bc84e8646e6a0da21ff04954b1b83c414
&gt; BUG: 1301227
&gt; Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/13284
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;

Change-Id: Ia305784b0aa570b70e54f532bf5d68a91b0cf305
BUG: 1318203
Reviewed-on: http://review.gluster.org/13750
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: hari gowtham &lt;hari.gowtham005@gmail.com&gt;
Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When iterating the query file during migration, tiering should
break out of the loop once cycle time completes. Otherwise it
may be possible to stay in the loop for a long time. If that
happens updates to files will become stale and have not impact
migration.

This is a backport of 13284

&gt; Change-Id: Ib60cf74bc84e8646e6a0da21ff04954b1b83c414
&gt; BUG: 1301227
&gt; Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/13284
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;

Change-Id: Ia305784b0aa570b70e54f532bf5d68a91b0cf305
BUG: 1318203
Reviewed-on: http://review.gluster.org/13750
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: hari gowtham &lt;hari.gowtham005@gmail.com&gt;
Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests/quota : improving tests for quota</title>
<updated>2016-03-15T09:48:10+00:00</updated>
<author>
<name>Manikandan Selvaganesh</name>
<email>mselvaga@redhat.com</email>
</author>
<published>2016-01-12T11:28:57+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=16a535753c4e5ef8b579d3758a5f709c19fb9592'/>
<id>16a535753c4e5ef8b579d3758a5f709c19fb9592</id>
<content type='text'>
tests/basic/quota.t includes all the basic test that
needs to be tested for quota. In most of the other
tests specific to bugs(tests/bugs/quota/*), tests
such as creating and starting volume, enabling quota,
setting limit, writing data, doing list have been done
which is essential to write a individual quota test
file, but, if the specific bug just needs to test
*few* particular cases, I have moved those tests
under tests/basic itself to speedup the regressions.

Basics of inode-quota and it's enforcing, renaming
with quota are basic tests and is hence moved under
tests/basic folder.

In other files, I have removed tests which are not
needed, such as 'pidof glusterd' or checking for
'gluster volume info' or if there are any test which
is already being tested under tests/basic and is being
written again.

        Backport of http://review.gluster.org/#/c/13216/

&gt; Change-Id: Iefd6d9529246d59829cc5bf02687a1861d8462a8
&gt; BUG: 1294826
&gt; Signed-off-by: Manikandan Selvaganesh &lt;mselvaga@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/13216
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijaikumar Mallikarjuna &lt;vmallika@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;

Change-Id: Iefd6d9529246d59829cc5bf02687a1861d8462a8
BUG: 1314680
Signed-off-by: Manikandan Selvaganesh &lt;mselvaga@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13606
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Vijaikumar Mallikarjuna &lt;vmallika@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tests/basic/quota.t includes all the basic test that
needs to be tested for quota. In most of the other
tests specific to bugs(tests/bugs/quota/*), tests
such as creating and starting volume, enabling quota,
setting limit, writing data, doing list have been done
which is essential to write a individual quota test
file, but, if the specific bug just needs to test
*few* particular cases, I have moved those tests
under tests/basic itself to speedup the regressions.

Basics of inode-quota and it's enforcing, renaming
with quota are basic tests and is hence moved under
tests/basic folder.

In other files, I have removed tests which are not
needed, such as 'pidof glusterd' or checking for
'gluster volume info' or if there are any test which
is already being tested under tests/basic and is being
written again.

        Backport of http://review.gluster.org/#/c/13216/

&gt; Change-Id: Iefd6d9529246d59829cc5bf02687a1861d8462a8
&gt; BUG: 1294826
&gt; Signed-off-by: Manikandan Selvaganesh &lt;mselvaga@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/13216
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Vijaikumar Mallikarjuna &lt;vmallika@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;

Change-Id: Iefd6d9529246d59829cc5bf02687a1861d8462a8
BUG: 1314680
Signed-off-by: Manikandan Selvaganesh &lt;mselvaga@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13606
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Vijaikumar Mallikarjuna &lt;vmallika@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>snapshot: Fix parent volinfo corruption in snapshot restore</title>
<updated>2016-03-11T08:06:55+00:00</updated>
<author>
<name>Avra Sengupta</name>
<email>asengupt@redhat.com</email>
</author>
<published>2016-01-22T11:29:53+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=7ece0b7b04059f79e25cd7bf44218eb4688dd8e3'/>
<id>7ece0b7b04059f79e25cd7bf44218eb4688dd8e3</id>
<content type='text'>
    Backport of http://review.gluster.org/#/c/13282/

Remove parent_volinfo irrespective of success or failure
of glusterd_lvm_snapshot_remove(). This prevents the
duplication of the volinfo after the execution of
glusterd_snapshot_restore().

When commit fails on originator node, we don't perform
commit on the other nodes, as a result we don't have a
backup of /var/lib/glusterd/vols/&lt;volname&gt; in the
GLUSTERD_TRASH in other nodes. But in the postvalidate
we try to restore from GLUSTED_TRASH and end up cleaning
up /var/lib/glusterd/vols/&lt;volname&gt;. Hence moved
glusterd_snapshot_backup_vol() from commit to prevalidate,
so that the backup is always available when a cleanup is
needed.

Change-Id: Icd471b23faf02bad680b9a1aadc4a0175f7cce8b
BUG: 1301030
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13282
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
(cherry picked from commit 3f78b6b3dc6376945a1b1a7c4af16103901ab746)
Reviewed-on: http://review.gluster.org/13548
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
    Backport of http://review.gluster.org/#/c/13282/

Remove parent_volinfo irrespective of success or failure
of glusterd_lvm_snapshot_remove(). This prevents the
duplication of the volinfo after the execution of
glusterd_snapshot_restore().

When commit fails on originator node, we don't perform
commit on the other nodes, as a result we don't have a
backup of /var/lib/glusterd/vols/&lt;volname&gt; in the
GLUSTERD_TRASH in other nodes. But in the postvalidate
we try to restore from GLUSTED_TRASH and end up cleaning
up /var/lib/glusterd/vols/&lt;volname&gt;. Hence moved
glusterd_snapshot_backup_vol() from commit to prevalidate,
so that the backup is always available when a cleanup is
needed.

Change-Id: Icd471b23faf02bad680b9a1aadc4a0175f7cce8b
BUG: 1301030
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13282
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
(cherry picked from commit 3f78b6b3dc6376945a1b1a7c4af16103901ab746)
Reviewed-on: http://review.gluster.org/13548
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: fixing few memory leak in glusterd</title>
<updated>2016-03-10T15:20:04+00:00</updated>
<author>
<name>Gaurav Kumar Garg</name>
<email>garg.gaurav52@gmail.com</email>
</author>
<published>2015-12-09T14:42:17+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=af7428490253421484e61409ddb77b653c4a5e63'/>
<id>af7428490253421484e61409ddb77b653c4a5e63</id>
<content type='text'>
This patch is backport of: http://review.gluster.org/#/c/12927/

Current glusterd code base having memory leak. This is because of
memory allocate by dict_allocate_and_serialize function in
"gd_syncop_mgmt_v3_lock" and "gd_syncop_mgmt_v3_unlock"
function is not freeing up memory upon exit.

Fix is to free the memory after exit of the above function.

Thanks Carlos and Roman for finding out the issue and fix.

 &gt;&gt; Change-Id: Id67aa794c84969830ca7ea8c2374f80c64d7a639
 &gt;&gt; BUG: 1287517
 &gt;&gt; Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
 &gt;&gt; Signed-off-by: Carlos Chinea &lt;carlos.chinea@nokia.com&gt;
 &gt;&gt; Signed-off-by: Roman Tereshonkov &lt;roman.tereshonkov@nokia.com&gt;
 &gt;&gt; Reviewed-on: http://review.gluster.org/12927
 &gt;&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
 &gt;&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
 &gt;&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
 &gt;&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;

Change-Id: Id67aa794c84969830ca7ea8c2374f80c64d7a639
BUG: 1311377
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
(cherry picked from commit e38bf1bdeda3c7a89be3193ad62a72b9139358dd)
Reviewed-on: http://review.gluster.org/13503
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch is backport of: http://review.gluster.org/#/c/12927/

Current glusterd code base having memory leak. This is because of
memory allocate by dict_allocate_and_serialize function in
"gd_syncop_mgmt_v3_lock" and "gd_syncop_mgmt_v3_unlock"
function is not freeing up memory upon exit.

Fix is to free the memory after exit of the above function.

Thanks Carlos and Roman for finding out the issue and fix.

 &gt;&gt; Change-Id: Id67aa794c84969830ca7ea8c2374f80c64d7a639
 &gt;&gt; BUG: 1287517
 &gt;&gt; Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
 &gt;&gt; Signed-off-by: Carlos Chinea &lt;carlos.chinea@nokia.com&gt;
 &gt;&gt; Signed-off-by: Roman Tereshonkov &lt;roman.tereshonkov@nokia.com&gt;
 &gt;&gt; Reviewed-on: http://review.gluster.org/12927
 &gt;&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
 &gt;&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
 &gt;&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
 &gt;&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;

Change-Id: Id67aa794c84969830ca7ea8c2374f80c64d7a639
BUG: 1311377
Signed-off-by: Gaurav Kumar Garg &lt;ggarg@redhat.com&gt;
(cherry picked from commit e38bf1bdeda3c7a89be3193ad62a72b9139358dd)
Reviewed-on: http://review.gluster.org/13503
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse: Add a new mount option capability</title>
<updated>2016-03-10T03:09:43+00:00</updated>
<author>
<name>Poornima G</name>
<email>pgurusid@redhat.com</email>
</author>
<published>2016-02-26T11:42:14+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=a8a8feb25216db2fa426b09d778f61c0f89d514c'/>
<id>a8a8feb25216db2fa426b09d778f61c0f89d514c</id>
<content type='text'>
Originally all security.* xattrs were forbidden if selinux is disabled,
which was causing Samba's acl_xattr module to not work, as it would
store the NTACL in security.NTACL. To fix this http://review.gluster.org/#/c/12826/
was sent, which forbid only security.selinux. This opened up a getxattr
call on security.capability before every write fop and others.

Capabilities can be used without selinux, hence if selinux is disabled,
security.capability cannot be forbidden. Hence adding a new mount
option called capability.

Only when "--capability" or "--selinux" mount option is used,
security.capability is sent to the brick, else it is forbidden.

Backport of : http://review.gluster.org/#/c/13540/ &amp;
              http://review.gluster.org/#/c/13653/

BUG: 1309462
Change-Id: Ib8d4f32d9f1458f4d71a05785f92b526aa7033ff
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13626
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Originally all security.* xattrs were forbidden if selinux is disabled,
which was causing Samba's acl_xattr module to not work, as it would
store the NTACL in security.NTACL. To fix this http://review.gluster.org/#/c/12826/
was sent, which forbid only security.selinux. This opened up a getxattr
call on security.capability before every write fop and others.

Capabilities can be used without selinux, hence if selinux is disabled,
security.capability cannot be forbidden. Hence adding a new mount
option called capability.

Only when "--capability" or "--selinux" mount option is used,
security.capability is sent to the brick, else it is forbidden.

Backport of : http://review.gluster.org/#/c/13540/ &amp;
              http://review.gluster.org/#/c/13653/

BUG: 1309462
Change-Id: Ib8d4f32d9f1458f4d71a05785f92b526aa7033ff
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13626
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>packaging: rpm scriptlet cleanup, handle -p /sbin/ldconfig</title>
<updated>2016-03-09T21:11:44+00:00</updated>
<author>
<name>Kaleb S KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2016-03-09T03:50:41+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=73f415353b0d70a4e6e4a4cedc05cd9b8418625f'/>
<id>73f415353b0d70a4e6e4a4cedc05cd9b8418625f</id>
<content type='text'>
The RPM documention indicates that during an rpm install or erase, the
script(lets): %post, %preun, and %postun (and %pre, %build, %install,
etc.) are copied to a temp file, and then the temp file is run as a
(/bin/sh or bash) script.

Unfortunately the documentation is not clear about how rpmbuild and/or
rpm determine where the end of any scriptlet is when it is copied to
the file.

Most things in the glusterfs.spec work correctly as is. These are the
%preun, %post, and %postun scriptlets that are "closed" by a following
%preun, %post, and %postun, or poetentially another scriptlet, e.g.
%file.

The ones that don't work correctly (only one actually) are those where
there is a comment in the spec file before it is closed by another
scriptlet. Further complicating things is that the type of scriptlet
affects what rpm does and what `rpm -qp --scripts ...` shows.

The specific one that didn't work was the "%postun libs" scriptlet. It
is followed by a comment before being "closed" by the %files section (or
scriptlet). It can be written two ways: "%postun libs\n/sbin/ldconfig"
or "%postun libs -p /sbin/ldconfig" Either way it's written, `rpm -qp
--scripts glusterfs-libs...` will include the comment lines between the
%postun libs line and the following %files line.

But the way rpm executes these depends on how they're written. If
written as "%postun libs\n/sbin/ldconfig" rpm will simply run
/sbin/ldconfig with no command line options, i.e.
  execve ("/sbin/ldconfig", [ "/sbin/ldconfig" ], [ ]);

But when written as "%postun libs -p /sbin/ldconfig", it will copy
the comment lines to a temp file, and pass the temp file name and "1"
as (command line) parameters, i.e.
  execve ("/sbin/ldconfig", [ "/sbin/ldconfig", "/tmp/tmpXXXXXX", "1" ],
          [ ]);

Which results in ldconfig exiting with an error. (Remember, both ways show
the comment in `rpm -qp --scripts ...`)

(Note though, that the similar "%postun api -p /sbin/ldconfig" is run
correctly, because it is "closed" by the following "%postun server"
scriptlet.)

Finally, through trial and error, it appears that rpm can be tricked with
a hack, and "closure" of the scriptlet forcedlike this:

 %postun libs -p /sbin/ldconfig

 %if ( 0%{?_undocumented_hack_closes_scriptlets} )
 %postun
 %endif

in which case ldconfig appears to run correctly. Note also that here too
the comment will be included in the output of `rpm -qp --scripts ...`
But that's very ugly hack.

backport of:
&gt;Change-Id: I587a490ddcdf47d01605479bc8ef8b0e439108fb
&gt;BUG: 1315024
&gt;Reviewed-on http://review.gluster.org/#/c/13613/

Change-Id: Ia45162ba0282db00026b3da5396811fdef5e6515
BUG: 1315935
Signed-off-by: Kaleb S KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13650
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
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.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The RPM documention indicates that during an rpm install or erase, the
script(lets): %post, %preun, and %postun (and %pre, %build, %install,
etc.) are copied to a temp file, and then the temp file is run as a
(/bin/sh or bash) script.

Unfortunately the documentation is not clear about how rpmbuild and/or
rpm determine where the end of any scriptlet is when it is copied to
the file.

Most things in the glusterfs.spec work correctly as is. These are the
%preun, %post, and %postun scriptlets that are "closed" by a following
%preun, %post, and %postun, or poetentially another scriptlet, e.g.
%file.

The ones that don't work correctly (only one actually) are those where
there is a comment in the spec file before it is closed by another
scriptlet. Further complicating things is that the type of scriptlet
affects what rpm does and what `rpm -qp --scripts ...` shows.

The specific one that didn't work was the "%postun libs" scriptlet. It
is followed by a comment before being "closed" by the %files section (or
scriptlet). It can be written two ways: "%postun libs\n/sbin/ldconfig"
or "%postun libs -p /sbin/ldconfig" Either way it's written, `rpm -qp
--scripts glusterfs-libs...` will include the comment lines between the
%postun libs line and the following %files line.

But the way rpm executes these depends on how they're written. If
written as "%postun libs\n/sbin/ldconfig" rpm will simply run
/sbin/ldconfig with no command line options, i.e.
  execve ("/sbin/ldconfig", [ "/sbin/ldconfig" ], [ ]);

But when written as "%postun libs -p /sbin/ldconfig", it will copy
the comment lines to a temp file, and pass the temp file name and "1"
as (command line) parameters, i.e.
  execve ("/sbin/ldconfig", [ "/sbin/ldconfig", "/tmp/tmpXXXXXX", "1" ],
          [ ]);

Which results in ldconfig exiting with an error. (Remember, both ways show
the comment in `rpm -qp --scripts ...`)

(Note though, that the similar "%postun api -p /sbin/ldconfig" is run
correctly, because it is "closed" by the following "%postun server"
scriptlet.)

Finally, through trial and error, it appears that rpm can be tricked with
a hack, and "closure" of the scriptlet forcedlike this:

 %postun libs -p /sbin/ldconfig

 %if ( 0%{?_undocumented_hack_closes_scriptlets} )
 %postun
 %endif

in which case ldconfig appears to run correctly. Note also that here too
the comment will be included in the output of `rpm -qp --scripts ...`
But that's very ugly hack.

backport of:
&gt;Change-Id: I587a490ddcdf47d01605479bc8ef8b0e439108fb
&gt;BUG: 1315024
&gt;Reviewed-on http://review.gluster.org/#/c/13613/

Change-Id: Ia45162ba0282db00026b3da5396811fdef5e6515
BUG: 1315935
Signed-off-by: Kaleb S KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13650
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
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.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/bit-rot-stub: get frame-&gt;local before unwinding</title>
<updated>2016-03-09T19:29:26+00:00</updated>
<author>
<name>Raghavendra Bhat</name>
<email>raghavendra@redhat.com</email>
</author>
<published>2016-03-07T20:01:39+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=df1b06d24d5f699f397d7936dda740364c5126cd'/>
<id>df1b06d24d5f699f397d7936dda740364c5126cd</id>
<content type='text'>
In bit-rot-stub, if unlink fails, then it was unwinding
directly. Then it was trying to cleanup local. But local
would be NULL, since it was unwinding directly without getting
the value of frame-&gt;local. The NULL cleanup of local was
causing the brick process to crash.

Change-Id: I8544ba73b2e8dc0c50b1a53ff8027d85588d087b
BUG: 1315552
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13630
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In bit-rot-stub, if unlink fails, then it was unwinding
directly. Then it was trying to cleanup local. But local
would be NULL, since it was unwinding directly without getting
the value of frame-&gt;local. The NULL cleanup of local was
causing the brick process to crash.

Change-Id: I8544ba73b2e8dc0c50b1a53ff8027d85588d087b
BUG: 1315552
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Signed-off-by: Venky Shankar &lt;vshankar@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13630
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/shard: Return ENOTSUP for unsupported fallocate flags</title>
<updated>2016-03-09T12:05:08+00:00</updated>
<author>
<name>Krutika Dhananjay</name>
<email>kdhananj@redhat.com</email>
</author>
<published>2016-02-25T12:57:09+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=dc57965cca4c6820f65e69b1b9c9bf94a38218e6'/>
<id>dc57965cca4c6820f65e69b1b9c9bf94a38218e6</id>
<content type='text'>
        Backport of: http://review.gluster.org/13523

Basis: http://lists.gnu.org/archive/html/qemu-devel/2016-02/msg05101.html

Change-Id: I681eb4d0c43c635cf96a2deab0996dec7a255fe5
BUG: 1299712
Signed-off-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13652
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&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.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
        Backport of: http://review.gluster.org/13523

Basis: http://lists.gnu.org/archive/html/qemu-devel/2016-02/msg05101.html

Change-Id: I681eb4d0c43c635cf96a2deab0996dec7a255fe5
BUG: 1299712
Signed-off-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13652
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&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.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: return EINVAL for unsupported  lseek() operations</title>
<updated>2016-03-09T12:03:23+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2016-03-08T04:39:01+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=ba1a401e142ad8884f9d3f13c51f7d5b17d008fc'/>
<id>ba1a401e142ad8884f9d3f13c51f7d5b17d008fc</id>
<content type='text'>
GlusterFS 3.8 contains support for SEEK_DATA/SEEK_HOLE. This protocol
extension is not available in 3.7. libgfapi needs to handle unsupported
SEEK_* operations correctly, by returning -1 and setting errno to
EINVAL.

This change is different from the patch in the master branch, it is only
needed to do the improved error checking in this version.

BUG: 1315557
Change-Id: I142dde11923244809b03fcca8cd4c2f7d5ff3929
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13631
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GlusterFS 3.8 contains support for SEEK_DATA/SEEK_HOLE. This protocol
extension is not available in 3.7. libgfapi needs to handle unsupported
SEEK_* operations correctly, by returning -1 and setting errno to
EINVAL.

This change is different from the patch in the master branch, it is only
needed to do the improved error checking in this version.

BUG: 1315557
Change-Id: I142dde11923244809b03fcca8cd4c2f7d5ff3929
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13631
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
