| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
heal-info code assumes that all indices in xattrop directory
definitely need heal. There is one corner case.
The very first xattrop on the file will lead to adding the
gfid to 'xattrop' index in fop path and in _cbk path it is
removed because the fop is zero-xattr xattrop in success case.
These gfids could be read by heal-info and shown as needing heal.
Fix:
Check the pending flag to see if the file definitely needs or
not instead of which index is being crawled at the moment.
fixes: bz#1801623
Change-Id: I79f00dc7366fedbbb25ec4bec838dba3b34c7ad5
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Changelog creates threads even if the changelog is not enabled
Background:
Changelog xlator broadly does two things
1. Journalling - Cosumers are geo-rep and glusterfind
2. Event Notification for registered events like (open, release etc) -
Consumers are bitrot, geo-rep
The existing option "changelog.changelog" controls journalling and
there is no option to control event notification and is enabled by
default. So when bitrot/geo-rep is not enabled on the volume, threads
and resources(rpc and rbuf) related to event notifications consumes
resources and cpu cycle which is unnecessary.
Solution:
The solution is to have two different options as below.
1. changelog-notification : Event notifications
2. changelog : Journalling
This patch introduces the option "changelog-notification" which is
not exposed to user. When either bitrot or changelog (journalling)
is enabled, it internally enbales 'changelog-notification'. But
once the 'changelog-notification' is enabled, it will not be disabled
for the life time of the brick process even after bitrot and changelog
is disabled. As of now, rpc resource cleanup has lot of races and is
difficult to cleanup cleanly. If allowed, it leads to memory leaks
and crashes on enable/disable of bitrot or changelog (journal) in a
loop. Hence to be safer, the event notification is not disabled within
lifetime of process once enabled.
Change-Id: Ifd00286e0966049e8eb9f21567fe407cf11bb02a
Updates: #475
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
|
|
|
|
|
|
|
|
| |
convert all gf_msg() to gf_smsg()
Change-Id: I8f1ff462b9c8012ed676c51450930a65ac403bf3
Updates: #657
Signed-off-by: yatipadia <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: With lookup-optimize set to on by default, a client with
stale-layout can create a new file on a wrong subvol. This will lead to
possible duplicate files if two different clients attempt to create the
same file with two different layouts.
Solution: Send in-memory layout to be cross checked at posix before
commiting a "create". In case of a mismatch, sync the client layout with
that of the server and attempt the create fop one more time.
test: Manual, testcase(attached)
fixes: bz#1786679
Change-Id: Ife0941f105113f1c572f4363cbcee65e0dd9bd6a
Signed-off-by: Susant Palai <spalai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The number of signing process threads (glfs_brpobj)
is set to 4 by default. The recommendation is to set
it to number of cores available. This patch makes it
configurable as follows
gluster vol bitrot <volname> signer-threads <count>
fixes: bz#1797869
Change-Id: Ia883b3e5e34e0bc8d095243508d320c9c9c58adc
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
|
|
|
|
|
|
|
| |
convert gf_msg() to gf_smsg()
Change-Id: Idf5bfc826b0c9f1a2674eea2a2e6164f30806b00
Updates: #657
Signed-off-by: yatipadia <ypadia@redhat.com>
|
|
|
|
|
|
|
|
| |
convert gf_msg() to gf_smsg()
Change-Id: I1cd6a5ac6f4361195d5d925efb2cc194045d0bba
Updates: #657
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
| |
convert all gf_msg() to gf_smsg()
Updates: #657
Change-Id: Ia9d4fb17579af6586bc13d69ec7990c6cf220aac
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch, one can now use '--enable-tcmalloc' while running
configure, and they can see that their glusterfs is linked with
libtcmalloc.
[atumball@local build]$ ldd /usr/local/sbin/glusterfs | grep tcmalloc
libtcmalloc.so.4 => /lib64/libtcmalloc.so.4 (0x00007feec0b87000)
Once we establish a standard performance number with and without this option,
we will see how to make it default.
Updates: #237
Change-Id: I3377f57bfe4e17f101a212e1914a6d3c1687d528
Signed-off-by: Amar Tumballi <amarts@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The current version of the code depends on the non-zero-port information to
propagate ping event from brick to parent layers. But as and when connection
succeeds, port is set to zero in rpc layer.So ping event is never propagated to
parent layers. Halo doesn't work without this.
Fix:
Remember the status of connection in 'private' structure and use that to decide
to propagate ping event to parent xlator.
fixes: bz#1797934
Change-Id: Ia578ba9fb3813953d2068dbba5c982ab27cc3429
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
For some reason, dht_selfheal_layout_alloc_start() sends a NULL
loc->path string to dht_hash_compute().
Until we understand why it happens, we should strive not to crash
on a strlen of a NULL pointer.
Change-Id: I8c2a22602cfccba9af85f432a1841556f6978450
updates: bz#1793378
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
| |
Convert gf_msg() to gf_smsg()
Change-Id: Ic72f2513e641cfcbe074933cb2697ee9fc05a766
Updates: #657
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
| |
convert all gf_msg() to gf_smsg()
Change-Id: Ifa45b5089f83ddfcf69132bb8d9c0dc6d012464b
Updates: #657
Signed-off-by: yatipadia <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
| |
convert gf_msg() to gf_smsg()
Updates: #657
Change-Id: I2dd09a205c11d1c05abc7106e67802d2aa3bca79
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
| |
changes all the gf_msg() to gf_smgs()
Change-Id: I3524bbd8f8070df2f2c888ea9b0fb7db1ee44453
Updates: #657
Signed-off-by: yatipadia <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
| |
convert all gf_msg() to gf_smsg()
Updates: #657
Change-Id: I9104ba8a8102f04d031a208abb06b6cf8ea8fd13
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
| |
convert all gf_msg() to gf_smsg()
Updates: #657
Change-Id: I69b228d7c7a8bc6263f9bd33710e880678d8c017
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
| |
convert gf_msg() to gf_smsg()
Updates: #657
Change-Id: Iee07228cfc3a9a9cd10e89ae9eb918681b072585
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
| |
convert gf_msg() to gf_smsg()
Updates: #657
Change-Id: Ib45f121f583c2af09bfddb23391f73a117e63213
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently when we issue a heal statistics or similar commands
for disperse volume, it fails with message "Volume is not of
type replicate." Adding message "this command is supported for
volumes of type replicate" to reflect supportability and better
understanding of heal functionality for disperse volumes.
fixes: bz#1785998
Change-Id: I9688a9fdf427cb6f657cfd5b8db2f76a6c56f6e2
Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes resource leak in glfs-fops.c.
CID : 1403873 : Resource leak
updates: bz#789278
Change-Id: I589d4d65d2b074801f7b4b0afd7dc4607d79420e
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
|
|
|
|
| |
Change-Id: I98af8672a25ff9fd9dba91a2e1384719f9155255
Fixes: bz#1779760
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
problem: Geo-rep gsyncd process mounts the master and slave volume
on master nodes and slave nodes respectively and starts
the sync. But it doesn't wait for the mount to be in ready
state to accept I/O. The gluster mount is considered to be
ready when all the distribute sub-volumes is up. If the all
the distribute subvolumes are not up, it can cause ENOTCONN
error, when lookup on file comes and file is on the subvol
that is down.
solution: Added a Virtual Xattr "dht.subvol.status" which returns "1"
if all subvols are up and "0" if all subvols are not up.
Geo-rep then uses this virtual xattr after a fresh mount, to
check whether all subvols are up or not and then starts the
I/O.
fixes: bz#1664335
Change-Id: If3ad01d728b1372da7c08ccbe75a45bdc1ab2a91
Signed-off-by: Harpreet Kaur <hlalwani@redhat.com>
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
glusterfs-ganesha pkg requires policycoreutils-python-utils on rhel8,
not policycoreutils-python
Also needs nfs-ganesha-selinux on recent fedora and rhel/centos 8
Change-Id: Ia97b4dabdc098fb76e3f60e8b48ea4191e677136
updates: bz#1193929
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
'nfsnobody' user and group is merged with
'nobody' user and group in RHEL8.
Tests are modified to use appropriate user and group.
BUG: 1756900
Change-Id: I59863da2262283b00b1cb417d3652ebe29a36407
Signed-off-by: Sunil Kumar Acharya <sheggodu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
For files: During metadata heal, we restore timestamps
only for non-regular (char, block etc.) files.
Extenting it for regular files as timestamp is updated
via touch command also
fixes: bz#1787274
Change-Id: I26fe4fb6dff679422ba4698a7f828bf62ca7ca18
Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Setting frame->local = local immediately after mem_get0.
In this case, SVC_STACK_UNWIND will take of freeing the memory.
Change-Id: If6433be0e14ed0f4ab4127f70a8875f81bb3e6b8
updates: bz#789278
Signed-off-by: Xie Changlong <xiechanglong@cmss.chinamobile.com>
|
|
|
|
|
|
|
|
|
|
| |
We can use memcpy() instead of strncpy() as both are strings that are
37 bytes (GF_UUID_BUF_SIZE) long.
fixes: CID#1405844
Change-Id: Ic74e8817cd790c13e29f3e6be8f18f2bfff77115
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When gNFS is disabled in build time, we have to ensure
taht the .stop(), .start() and other functions of the nfs_svc
are not called, otherwise we'd crash.
In addition, #ifdef more code that is gNFS related.
updates: bz#1793995
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
Change-Id: I5081f1670c04ca306aeaab7208829b0f2f149a42
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: At the time of coming up one server node(1x3) after reboot
client is unmounted.The client is unmounted because a client
is getting AUTH_FAILED event and client call fini for the graph.The
client is getting AUTH_FAILED because brick is not attached with a
graph at that moment
Solution: To avoid the unmounting the client graph throw ENOENT error
from server in case if brick is not attached with server at
the time of authenticate clients.
Credits: Xavi Hernandez <xhernandez@redhat.com>
Change-Id: Ie6fbd73cbcf23a35d8db8841b3b6036e87682f5e
Fixes: bz#1793852
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The macro already fetches from the dictionary the gfid-req variable.
Instead of throwing it away, keep it and in 2 cases,
re-use it later.
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
Change-Id: Id6d42535132805ab69e7e3b802c140b90f2f8958
|
|
|
|
|
|
|
|
|
|
| |
xlators/features/quota/src/quota.c quota_log_usage function.
The quota_log_helper() function applies memory
for path through inode_path(), should be GF_FREE().
fixes: bz#1792707
Change-Id: I33143bdf272bf10837061df4a1b7b2fc146162d5
Signed-off-by: Xi Jinyu <xijinyu@cmss.chinamobile.com>
|
|
|
|
|
|
|
|
|
|
| |
Somem methods dict_get...(...) values and then not use them anywhere.
Removed found occurrences.
fixes: #753
Change-Id: Iaeb8f4cec18f76078f6b2f4e4bd6f9795a3467bc
Signed-off-by: Barak Sason Rofman <bsasonro@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This parameter may have been used in the past, but is no longer
needed. Removing it and the few locations it was actually referenced.
This allows to remove an extra memdup as well, that was not needed
in the 1st place in server_setvolume() and unserialize_rsp_direntp()
functions.
A followup separate patch will remove extra_stdfree parmeter
from the dictionary structure.
Change-Id: Ica0ff0a330672373aaa60e808b7e76ec489a0fe3
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using '==' operator is bash specific, and was giving
warnings like below when we ran `./autogen.sh`
```
build-aux/pkg-version: 26: [: x8dev: unexpected operator
build-aux/pkg-version: 49: [: x384.git22c2725bb: unexpected operator
```
This was not seen where 'sh' is linked to 'bash'.
Updates: bz#1193929
Change-Id: Ied0d6707dd8b5d78756f302b6319b6ef75143018
Signed-off-by: Amar Tumballi <amar@kadalu.io>
|
|
|
|
|
|
| |
updates: bz#789278
Change-Id: I652d8d4428cf6ce61b712a66d309e78030a5f911
Signed-off-by: Xie Changlong <xiechanglong@cmss.chinamobile.com>
|
|
|
|
|
|
|
|
|
|
| |
Check limit to 108 bytes before strcpy().
fixes: CID#1412332
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
Change-Id: I8b26b1e1d2daca98ff36db531539bec0a405769c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If non-standard ssh-port is used, Geo-rep can be configured to use ssh port
by using config option, the value should be in allowed port range and non negative.
At present it can accept negative value and outside allowed port range which is incorrect.
Many Linux kernels use the port range 32768 to 61000.
IANA suggests it should be in the range 1 to 2^16 - 1, so keeping the same.
$ gluster volume geo-replication master 127.0.0.1::slave config ssh-port -22
geo-replication config updated successfully
$ gluster volume geo-replication master 127.0.0.1::slave config ssh-port 22222222
geo-replication config updated successfully
This patch fixes the above issue and have added few validations around this
in test cases.
Change-Id: I9875ab3f00d7257370fbac6f5ed4356d2fed3f3c
Fixes: bz#1792276
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When an event was generated and the target host was resolved to an IPv6
address, there was a memory overflow when that address was copied to a
fixed IPv4 structure (IPv6 addresses are longer than IPv4 ones).
This fix correctly handles IPv4 and IPv6 addresses returned by
getaddrinfo()
Change-Id: I5864a0c6e6f1b405bd85988529570140cf23b250
Fixes: bz#1790870
Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the script seems to work on both python3 and python2, this
break the build of rawhide RPM who requires script to be either
using python2 or python3.
Since python2 is going to be deprecated, I guess we should aim for
python3.
Change-Id: Ic6322ad47772d708b60b96652a1122ee4a54141d
Fixes: bz#1791682
Signed-off-by: Michael Scherer <misc@fedoraproject.org>
|
|
|
|
|
|
|
|
|
| |
It has been a while since we removed lock healing logic from protocol
client. So no need to mention that we healed locks after fd reopen.
Change-Id: I24bd3f9e9f2942e306714b2cb83c229ae57c60ae
Fixes: bz#1193929
Signed-off-by: Anoop C S <anoopcs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We already have the length of the name, or when we munge it,
we can return the length of it instead of strlen() again.
Also, reduce a bit the code under the lock.
Change-Id: I0141b0725ed1a4134d8d9f81ed1187b551b038b5
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In many cases, we were freely allocating long keys with no need.
Smaller char arrays are just fine almost anywhere, so just went ahead
and looked where they we can use smaller ones.
In some cases, annotated the functions as static and the prefixes
passed as const as it was easier to read and understand.
Where relevant, converted the dict functions to use known key length.
Change-Id: I882ab33ea20d90b63278336cd1370c09ffdab7f2
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
| |
convert all gf_msg() to gf_smsg()
Change-Id: I2303aeaa0775b663e2ea5741166a457cd747d2ac
Updates: #657
Signed-off-by: yatipadia <ypadia@redhat.com>
Signed-off-by: yatip <ypadia@redhat.com>
|
|
|
|
|
|
|
|
| |
Convert gf_msg() to gf_smsg()
Change-Id: Iceb40d60a75106c7b4b0a2487b611f7376bccc46
Updates: #657
Signed-off-by: yatipadia <ypadia@redhat.com>
|
|
|
|
|
|
| |
fixes: bz#1790748
Change-Id: I1cb12c975142794139456d0f8e99fbdbb03c53a1
Signed-off-by: Shwetha K Acharya <sacharya@redhat.com>
|
|
|
|
|
|
|
|
| |
convert gf_msg() to gf_smsg()
Change-Id: Id03b6a2f6817101650ea6eeffb10e91c09e6ef80
Updates: #657
Signed-off-by: yatipadia <ypadia@redhat.com>
|
|
|
|
|
|
|
|
| |
Do not include ftw.h twice.
Change-Id: Id9e8d1813aafd890940adcd6883d90fa1b4beaf9
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Updates: bz#1193929
|
|
|
|
|
|
|
|
|
| |
Rely on configure-time HAVE_SET_FSID instead of predefined
linux and __GLIBC__, in the same way as fusermount.c does.
Change-Id: If81f821014bbf3fdc43950670e316b4d178b4cac
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Updates: bz#1193929
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of using a boolean parameter, we can use the key variable.
If it's NULL, the pair is not used and can be used.
Otherwise, it's in use - don't use.
It saves this annoying boolean, which causes the compiler
(or us explicitly) to pad with additional bytes the dict struct.
Change-Id: I89f52db57f35b3ef8acf57b7de2cee37f5d18e06
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|