<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/extras, branch release-9</title>
<subtitle>GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system.</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/'/>
<entry>
<title>extras: disable lookup-optimize in virt and block groups</title>
<updated>2021-04-09T16:41:35+00:00</updated>
<author>
<name>Xavi Hernandez</name>
<email>xhernandez@redhat.com</email>
</author>
<published>2021-03-17T09:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=779f86d860e1ab98ee1c9bfc5214c9bd526a98ed'/>
<id>779f86d860e1ab98ee1c9bfc5214c9bd526a98ed</id>
<content type='text'>
lookup-optimize doesn't provide any benefit for virtualized
environments and gluster-block workloads, but it's known to cause
corruption in some cases when sharding is also enabled and the volume
is expanded or shrunk.

For this reason, we disable lookup-optimize by default on those
environments.

Fixes: #2253
Change-Id: I25861aa50b335556a995a9c33318dd3afb41bf71
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
lookup-optimize doesn't provide any benefit for virtualized
environments and gluster-block workloads, but it's known to cause
corruption in some cases when sharding is also enabled and the volume
is expanded or shrunk.

For this reason, we disable lookup-optimize by default on those
environments.

Fixes: #2253
Change-Id: I25861aa50b335556a995a9c33318dd3afb41bf71
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: Fix for shared storage in ipv6 env (#1972) (#2145)</title>
<updated>2021-02-16T12:10:47+00:00</updated>
<author>
<name>Nikhil Ladha</name>
<email>nladha@redhat.com</email>
</author>
<published>2021-02-16T12:10:47+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=532e6a678c610dc8b20271b5597c3f5282353f7d'/>
<id>532e6a678c610dc8b20271b5597c3f5282353f7d</id>
<content type='text'>
Issue:
Mounting shared storage volume was failing in ipv6 env if the hostnames were FQDNs.
The brickname for the volume was being cut off, as a result, volume creation was failing

Change-Id: Ib38993724c709b35b603f9ac666630c50c932c3e
Updates: #1406
Signed-off-by: nik-redhat &lt;nladha@redhat.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Issue:
Mounting shared storage volume was failing in ipv6 env if the hostnames were FQDNs.
The brickname for the volume was being cut off, as a result, volume creation was failing

Change-Id: Ib38993724c709b35b603f9ac666630c50c932c3e
Updates: #1406
Signed-off-by: nik-redhat &lt;nladha@redhat.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>enahancement/debug: Option to generate core dump without killing the process (#1814)</title>
<updated>2020-11-23T02:39:44+00:00</updated>
<author>
<name>Vinayak hariharmath</name>
<email>65405035+VHariharmath-rh@users.noreply.github.com</email>
</author>
<published>2020-11-23T02:39:44+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=f74d3ab643a00632fdeb9b4912211b1767fa120a'/>
<id>f74d3ab643a00632fdeb9b4912211b1767fa120a</id>
<content type='text'>
Comments and idea proposed by: Xavi Hernandez(jahernan@redhat.com):

On production systems sometimes we see a log message saying that an assertion
has failed. But it's hard to track why it failed without additional information
(on debug builds, a GF_ASSERT() generates a core dump and kills the process,
so it can be used to debug the issue, but many times we are only able to
reproduce assertion failures on production systems, where GF_ASSERT() only logs
a message and continues).

In other cases we may have a core dump caused by a bug, but the core dump doesn't
necessarily happen when the bug has happened. Sometimes the crash happens so much
later that the causes that triggered the bug are lost. In these cases we can add
more assertions to the places that touch the potential candidates to cause the bug,
but the only thing we'll get is a log message, which may not be enough.

One solution would be to always generate a core dump in case of assertion failure,
but this was already discussed and it was decided that it was too drastic. If a
core dump was really needed, a new macro was created to do so: GF_ABORT(),
but GF_ASSERT() would continue to not kill the process on production systems.

I'm proposing to modify GF_ASSERT() on production builds so that it conditionally
triggers a signal when a debugger is attached. When this happens, the debugger
will generate a core dump and continue the process as if nothing had happened.
If there's no debugger attached, GF_ASSERT() will behave as always.

The idea I have is to use SIGCONT to do that. This signal is harmless, so we can
unmask it (we currently mask all unneeded signals) and raise it inside a GF_ASSERT()
when some global variable is set to true.

To produce the core dump, run the script under extras/debug/gfcore.py on other
terminal. gdb breaks and produces coredump when GF_ASSERT is hit.

The script is copied from #1810 which is written by Xavi Hernandez(jahernan@redhat.com)

Fixes: #1810
Change-Id: I6566ca2cae15501d8835c36f56be4c6950cb2a53
Signed-off-by: Vinayakswami Hariharmath &lt;vharihar@redhat.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Comments and idea proposed by: Xavi Hernandez(jahernan@redhat.com):

On production systems sometimes we see a log message saying that an assertion
has failed. But it's hard to track why it failed without additional information
(on debug builds, a GF_ASSERT() generates a core dump and kills the process,
so it can be used to debug the issue, but many times we are only able to
reproduce assertion failures on production systems, where GF_ASSERT() only logs
a message and continues).

In other cases we may have a core dump caused by a bug, but the core dump doesn't
necessarily happen when the bug has happened. Sometimes the crash happens so much
later that the causes that triggered the bug are lost. In these cases we can add
more assertions to the places that touch the potential candidates to cause the bug,
but the only thing we'll get is a log message, which may not be enough.

One solution would be to always generate a core dump in case of assertion failure,
but this was already discussed and it was decided that it was too drastic. If a
core dump was really needed, a new macro was created to do so: GF_ABORT(),
but GF_ASSERT() would continue to not kill the process on production systems.

I'm proposing to modify GF_ASSERT() on production builds so that it conditionally
triggers a signal when a debugger is attached. When this happens, the debugger
will generate a core dump and continue the process as if nothing had happened.
If there's no debugger attached, GF_ASSERT() will behave as always.

The idea I have is to use SIGCONT to do that. This signal is harmless, so we can
unmask it (we currently mask all unneeded signals) and raise it inside a GF_ASSERT()
when some global variable is set to true.

To produce the core dump, run the script under extras/debug/gfcore.py on other
terminal. gdb breaks and produces coredump when GF_ASSERT is hit.

The script is copied from #1810 which is written by Xavi Hernandez(jahernan@redhat.com)

Fixes: #1810
Change-Id: I6566ca2cae15501d8835c36f56be4c6950cb2a53
Signed-off-by: Vinayakswami Hariharmath &lt;vharihar@redhat.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>ganesha-ha: revised regex exprs for --status</title>
<updated>2020-11-10T09:00:59+00:00</updated>
<author>
<name>Kaleb S. KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2020-11-06T21:52:07+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=4026fe9a956238d8e4785cf39c3b7290eae90f03'/>
<id>4026fe9a956238d8e4785cf39c3b7290eae90f03</id>
<content type='text'>
better whitespace in regex

This has worked for years, but somehow no longer works on rhel8

Updates: #1000
Change-Id: I2c1a3537573d125608334772ba1a263c55407dd4
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
better whitespace in regex

This has worked for years, but somehow no longer works on rhel8

Updates: #1000
Change-Id: I2c1a3537573d125608334772ba1a263c55407dd4
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>extras/rebalance: Script to perform directory rebalance (#1676)</title>
<updated>2020-10-30T06:29:04+00:00</updated>
<author>
<name>Pranith Kumar Karampuri</name>
<email>pranith.karampuri@phonepe.com</email>
</author>
<published>2020-10-30T06:29:04+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=8b9c2e1cb66fb1ddc932f85c0dc2bccdfbfdd621'/>
<id>8b9c2e1cb66fb1ddc932f85c0dc2bccdfbfdd621</id>
<content type='text'>
* extras/rebalance: Script to perform directory rebalance

How should the script be executed?
$ /path/to/directory-rebalance.py &lt;dir-to-rebalance&gt;
will do rebalance just for that directory. The script assumes that fix-layout
operation is completed for all the directories present inside the
&lt;dir-to-rebalance&gt;

How does it work?
For the given directory path that needs to be rebalanced, full crawl is
performed and the files that need to be healed and the size of each file
is first written to the index. Once building the index is completed, the
index is read and for each file the script executes equivalent of
setfattr -n trusted.distribute.migrate-data -v 1 &lt;path/to/file&gt;

Why does the script take two passes?
Printing a sensible ETA has been a primary goal of the script. Without
knowing the approximate size that will be rebalanced, it is difficult to
find ETA. Hence the script does one pass to find files, sizes which it
writes to the index file and then the next pass is done on the
index file. It takes a minute or two for the ETA to converge but in our
testing it has been giving a reasonable ETA

What versions does the script support?
For the script to work correctly, dht should handle
"trusted.distribute.migrate-data" setxattr correctly.

fixes: #1654
Change-Id: Ie5070127bd45f1a1b9cd18ed029e364420c971c1
Signed-off-by: Pranith Kumar K &lt;pranith.karampuri@phonepe.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* extras/rebalance: Script to perform directory rebalance

How should the script be executed?
$ /path/to/directory-rebalance.py &lt;dir-to-rebalance&gt;
will do rebalance just for that directory. The script assumes that fix-layout
operation is completed for all the directories present inside the
&lt;dir-to-rebalance&gt;

How does it work?
For the given directory path that needs to be rebalanced, full crawl is
performed and the files that need to be healed and the size of each file
is first written to the index. Once building the index is completed, the
index is read and for each file the script executes equivalent of
setfattr -n trusted.distribute.migrate-data -v 1 &lt;path/to/file&gt;

Why does the script take two passes?
Printing a sensible ETA has been a primary goal of the script. Without
knowing the approximate size that will be rebalanced, it is difficult to
find ETA. Hence the script does one pass to find files, sizes which it
writes to the index file and then the next pass is done on the
index file. It takes a minute or two for the ETA to converge but in our
testing it has been giving a reasonable ETA

What versions does the script support?
For the script to work correctly, dht should handle
"trusted.distribute.migrate-data" setxattr correctly.

fixes: #1654
Change-Id: Ie5070127bd45f1a1b9cd18ed029e364420c971c1
Signed-off-by: Pranith Kumar K &lt;pranith.karampuri@phonepe.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>quota_fsck.py fails with UnicodeDecodeError</title>
<updated>2020-09-16T03:25:22+00:00</updated>
<author>
<name>srijan-sivakumar</name>
<email>ssivakum@redhat.com</email>
</author>
<published>2020-09-16T03:25:22+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=e5e511b81dcb7600127ef0a1040bb3d87ebc03bb'/>
<id>e5e511b81dcb7600127ef0a1040bb3d87ebc03bb</id>
<content type='text'>
Issue: While decoding the byte characters the quota_fsck
script stumbled across a corner case wherein the file names
given by the getfattr dump will cause the decoding to UTF-8
to fail with UnicodeDecodeError.

Code Change:
On looking through the quota_fsck.py script, it seems like
the file path is actually not needed when decoding for the
xattr parsing, hence the code change reflects that. Also,
removed a comparison which previously existed to skip the
file names as that won't be required now.

Fixes: #1487
Change-Id: I8a13ab07be6c9cfafae996f17764fbb4a285bd8c
Signed-off-by: srijan-sivakumar &lt;ssivakum@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Issue: While decoding the byte characters the quota_fsck
script stumbled across a corner case wherein the file names
given by the getfattr dump will cause the decoding to UTF-8
to fail with UnicodeDecodeError.

Code Change:
On looking through the quota_fsck.py script, it seems like
the file path is actually not needed when decoding for the
xattr parsing, hence the code change reflects that. Also,
removed a comparison which previously existed to skip the
file names as that won't be required now.

Fixes: #1487
Change-Id: I8a13ab07be6c9cfafae996f17764fbb4a285bd8c
Signed-off-by: srijan-sivakumar &lt;ssivakum@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs-ganesha: gluster_shared_storage fails to automount on node reboot on rhel 8</title>
<updated>2020-09-10T07:46:12+00:00</updated>
<author>
<name>Shwetha K Acharya</name>
<email>sacharya@redhat.com</email>
</author>
<published>2020-09-10T07:46:12+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=3d2de9d89b27639c8e65379143e6ad4a9505d3fd'/>
<id>3d2de9d89b27639c8e65379143e6ad4a9505d3fd</id>
<content type='text'>
The patch https://review.gluster.org/#/c/glusterfs/+/24934/, changes mount point
of gluster_shared_storage from /var/run to /run to address the issue of symlink
at mount path in fstab.
NOTE: mount point /var/run is symlink to /run

The required changes with respect to gluster_shared_storage mount path are
introduced with this patch in nfs-ganesha.

Fixes: #1475
Change-Id: I9c7677a053e1291f71476d47ba6fa2e729f59625
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The patch https://review.gluster.org/#/c/glusterfs/+/24934/, changes mount point
of gluster_shared_storage from /var/run to /run to address the issue of symlink
at mount path in fstab.
NOTE: mount point /var/run is symlink to /run

The required changes with respect to gluster_shared_storage mount path are
introduced with this patch in nfs-ganesha.

Fixes: #1475
Change-Id: I9c7677a053e1291f71476d47ba6fa2e729f59625
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>extras/snap_scheduler: changes in gluster-shared-storage mount path</title>
<updated>2020-09-10T08:19:09+00:00</updated>
<author>
<name>Shwetha K Acharya</name>
<email>sacharya@redhat.com</email>
</author>
<published>2020-09-10T08:19:09+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=6c9c5bece3d4cec278b64239f5e3147729ef5ced'/>
<id>6c9c5bece3d4cec278b64239f5e3147729ef5ced</id>
<content type='text'>
The patch https://review.gluster.org/#/c/glusterfs/+/24934/, changes mount point
of gluster_shared_storage from /var/run to /run to address the issue of symlink
at mount path in fstab.
NOTE: mount point /var/run is symlink to /run

The required changes with respect to gluster_shared_storage mount path are
introduced with this patch in snap_scheduler.

Fixes: #1476
Change-Id: I9ce88c2f624c6aa5982de04edfee2d0a9f160d62
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The patch https://review.gluster.org/#/c/glusterfs/+/24934/, changes mount point
of gluster_shared_storage from /var/run to /run to address the issue of symlink
at mount path in fstab.
NOTE: mount point /var/run is symlink to /run

The required changes with respect to gluster_shared_storage mount path are
introduced with this patch in snap_scheduler.

Fixes: #1476
Change-Id: I9ce88c2f624c6aa5982de04edfee2d0a9f160d62
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>geo-rep: gluster_shared_storage fails to automount on node reboot on rhel 8.</title>
<updated>2020-08-31T14:38:39+00:00</updated>
<author>
<name>Shwetha K Acharya</name>
<email>sacharya@redhat.com</email>
</author>
<published>2020-08-31T14:38:39+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=254f8650372407dc1a68b46615e1e05cba20795b'/>
<id>254f8650372407dc1a68b46615e1e05cba20795b</id>
<content type='text'>
Issue: On reboot, all the mounts get wiped out.
       Only the mounts mentioned in /etc/fstab  automatically gets mounted
       during boot/reboot.

       But /etc/fstab complains on not getting a canonical path
       (it gets path containing a symlink)
       This is because the gluster_shared_storage, is mounted to
       /var/run which is symlink to /run. This is a general practice
       followed by most operating systems.

       [root@ ~]# ls -lsah /var/run
       0 lrwxrwxrwx. 1 root root 6 Jul 22 19:39 /var/run -&gt; ../run

Fix:   Mount gluster_shared_storage on /run.
       (Also It is seen that /var/run is mostly
        used by old or legacy systems, thus it is a good practice to
        update /var/run to /run)

fixes: #1459
Change-Id: I8c16653be8cd746c84f01abf0eea19284fb97c77
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Issue: On reboot, all the mounts get wiped out.
       Only the mounts mentioned in /etc/fstab  automatically gets mounted
       during boot/reboot.

       But /etc/fstab complains on not getting a canonical path
       (it gets path containing a symlink)
       This is because the gluster_shared_storage, is mounted to
       /var/run which is symlink to /run. This is a general practice
       followed by most operating systems.

       [root@ ~]# ls -lsah /var/run
       0 lrwxrwxrwx. 1 root root 6 Jul 22 19:39 /var/run -&gt; ../run

Fix:   Mount gluster_shared_storage on /run.
       (Also It is seen that /var/run is mostly
        used by old or legacy systems, thus it is a good practice to
        update /var/run to /run)

fixes: #1459
Change-Id: I8c16653be8cd746c84f01abf0eea19284fb97c77
Signed-off-by: Shwetha K Acharya &lt;sacharya@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: extend --enable-valgrind to support Memcheck and DRD</title>
<updated>2020-08-31T11:17:24+00:00</updated>
<author>
<name>Dmitry Antipov</name>
<email>dmantipov@yandex.ru</email>
</author>
<published>2020-08-31T11:17:24+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=9ed1558ed088c8c4ddc372cb50a9ef8a04679f8f'/>
<id>9ed1558ed088c8c4ddc372cb50a9ef8a04679f8f</id>
<content type='text'>
Extend '-enable-valgrind' to '--enable=valgrind[=memcheck,drd]'
to enable Memcheck or DRD Valgrind tool, respectively.

Change-Id: I80d13d72ba9756e0cbcdbeb6766b5c98e3e8c002
Signed-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;
Updates: #1002
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extend '-enable-valgrind' to '--enable=valgrind[=memcheck,drd]'
to enable Memcheck or DRD Valgrind tool, respectively.

Change-Id: I80d13d72ba9756e0cbcdbeb6766b5c98e3e8c002
Signed-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;
Updates: #1002
</pre>
</div>
</content>
</entry>
</feed>
