summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* dht: Fix stale-layout and create issueSusant Palai2020-02-097-20/+322
| | | | | | | | | | | | | | | | | 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>
* bitrot: Make number of signer threads configurableKotresh HR2020-02-0712-25/+267
| | | | | | | | | | | | | 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>
* libglusterfs-event-epoll: structure loggingyatipadia2020-02-064-109/+114
| | | | | | | | convert gf_msg() to gf_smsg() Change-Id: Idf5bfc826b0c9f1a2674eea2a2e6164f30806b00 Updates: #657 Signed-off-by: yatipadia <ypadia@redhat.com>
* glusterfsd: structure loggingyatipadia2020-02-065-143/+155
| | | | | | | | convert gf_msg() to gf_smsg() Change-Id: I1cd6a5ac6f4361195d5d925efb2cc194045d0bba Updates: #657 Signed-off-by: yatip <ypadia@redhat.com>
* protocol/client-rpc-fops: structure loggingyatip2020-02-062-350/+278
| | | | | | | | | convert all gf_msg() to gf_smsg() Updates: #657 Change-Id: Ia9d4fb17579af6586bc13d69ec7990c6cf220aac Signed-off-by: yatip <ypadia@redhat.com>
* configure: add an option to build with tcmalloc libraryAmar Tumballi2020-02-061-0/+14
| | | | | | | | | | | | | | | | 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>
* protocol/client: Maintain connection to brick statusPranith Kumar K2020-02-052-7/+5
| | | | | | | | | | | | | | | | 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>
* dht-hashfn.c: ensure we do not try to calculate hash on NULL pathYaniv Kaul2020-02-051-0/+3
| | | | | | | | | | | 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>
* xlator/dht-selfheal: structure loggingyatipadia2020-02-043-258/+222
| | | | | | | | Convert gf_msg() to gf_smsg() Change-Id: Ic72f2513e641cfcbe074933cb2697ee9fc05a766 Updates: #657 Signed-off-by: yatip <ypadia@redhat.com>
* xlator/bit-rot: structure loggingyatipadia2020-02-042-137/+153
| | | | | | | | convert all gf_msg() to gf_smsg() Change-Id: Ifa45b5089f83ddfcf69132bb8d9c0dc6d012464b Updates: #657 Signed-off-by: yatipadia <ypadia@redhat.com>
* xlator/snapview: structure loggingyatip2020-02-042-225/+189
| | | | | | | | | convert gf_msg() to gf_smsg() Updates: #657 Change-Id: I2dd09a205c11d1c05abc7106e67802d2aa3bca79 Signed-off-by: yatip <ypadia@redhat.com>
* libglusterfs/common-utils: structure loggingyatipadia2020-02-042-122/+130
| | | | | | | | changes all the gf_msg() to gf_smgs() Change-Id: I3524bbd8f8070df2f2c888ea9b0fb7db1ee44453 Updates: #657 Signed-off-by: yatipadia <ypadia@redhat.com>
* xlator/dht-linkfile: structure loggingyatip2020-02-042-26/+269
| | | | | | | | | convert all gf_msg() to gf_smsg() Updates: #657 Change-Id: I9104ba8a8102f04d031a208abb06b6cf8ea8fd13 Signed-off-by: yatip <ypadia@redhat.com>
* protocol/client: structure loggingyatip2020-02-042-78/+88
| | | | | | | | | convert all gf_msg() to gf_smsg() Updates: #657 Change-Id: I69b228d7c7a8bc6263f9bd33710e880678d8c017 Signed-off-by: yatip <ypadia@redhat.com>
* protocol/client-handshake: structure loggingyatip2020-02-042-175/+170
| | | | | | | | | convert gf_msg() to gf_smsg() Updates: #657 Change-Id: Iee07228cfc3a9a9cd10e89ae9eb918681b072585 Signed-off-by: yatip <ypadia@redhat.com>
* protocol/client-rpc-fops_v2: structure loggingyatip2020-02-042-216/+168
| | | | | | | | | convert gf_msg() to gf_smsg() Updates: #657 Change-Id: Ib45f121f583c2af09bfddb23391f73a117e63213 Signed-off-by: yatip <ypadia@redhat.com>
* ec: change error message for heal commands for disperse volumeSheetal Pamecha2020-02-032-6/+13
| | | | | | | | | | | | 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>
* libgfapi: fix resource leakSunny Kumar2020-02-031-0/+1
| | | | | | | | | | 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>
* Improve logging in EC, client and lock translatorAshish Pandey2020-02-033-7/+12
| | | | | Change-Id: I98af8672a25ff9fd9dba91a2e1384719f9155255 Fixes: bz#1779760
* geo-rep: Fix for "Transport End Point not connected" issueHarpreet Kaur2020-01-314-3/+91
| | | | | | | | | | | | | | | | | | | | | | 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>
* build: glusterfs-ganesha pkg requires python3-policycoreutils on rhel8Kaleb S. KEITHLEY2020-01-281-1/+2
| | | | | | | | | | | 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>
* tests: fix test failures for nfsnobody user and groupSunil Kumar Acharya2020-01-242-4/+20
| | | | | | | | | | | '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>
* afr: restore timestamp of files during metadata healSheetal Pamecha2020-01-242-6/+76
| | | | | | | | | | | 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>
* snapview: fix memory leakXie Changlong2020-01-231-3/+2
| | | | | | | | | 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>
* server.c: fix Coverity issue 1405844 (memory - illegal access)Yaniv Kaul2020-01-231-2/+2
| | | | | | | | | | 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>
* multiple files: ensure nfs_svc functions are availableYaniv Kaul2020-01-237-25/+48
| | | | | | | | | | | | 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
* server: Mount fails after reboot 1/3 gluster nodesMohit Agrawal2020-01-223-16/+29
| | | | | | | | | | | | | | | | | 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>
* posix-entry-ops.c/posix.h: improve GFID_NULL_CHECK_AND_GOTO macroYaniv Kaul2020-01-212-19/+31
| | | | | | | | | | | 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
* Fix possible resource leaks.Xi Jinyu2020-01-211-0/+3
| | | | | | | | | | 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>
* cli - removing fetch of unnecessary items.Barak Sason Rofman2020-01-211-66/+1
| | | | | | | | | | 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>
* dictionary: remove the 'extra_free' parameterYaniv Kaul2020-01-216-34/+14
| | | | | | | | | | | | | | | 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>
* pkg-version: fix warning due to wrong check.Amar Tumballi2020-01-201-1/+1
| | | | | | | | | | | | | | | | 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>
* glusterd: fix use after freeXie Changlong2020-01-201-1/+3
| | | | | | updates: bz#789278 Change-Id: I652d8d4428cf6ce61b712a66d309e78030a5f911 Signed-off-by: Xie Changlong <xiechanglong@cmss.chinamobile.com>
* name.c: fix Coverity issues 1412332/3 - strcat into uninitialized valueYaniv Kaul2020-01-191-2/+3
| | | | | | | | | | Check limit to 108 bytes before strcpy(). fixes: CID#1412332 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com> Change-Id: I8b26b1e1d2daca98ff36db531539bec0a405769c
* geo-rep: Fix ssh-port validationSunny Kumar2020-01-173-1/+32
| | | | | | | | | | | | | | | | | | | | | | 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>
* events: fix IPv6 memory corruptionXavi Hernandez2020-01-171-41/+15
| | | | | | | | | | | | | 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>
* Be explicit on this being a python3 scriptMichael Scherer2020-01-161-1/+1
| | | | | | | | | | | | | 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>
* protocol/client: Fix a log entryAnoop C S2020-01-151-1/+1
| | | | | | | | | 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>
* dht-hashfn.c: remove a strlen()Yaniv Kaul2020-01-141-16/+19
| | | | | | | | | | | 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>
* multiple xlators: reduce key lengthYaniv Kaul2020-01-1417-125/+123
| | | | | | | | | | | | | | | 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>
* xlator/changelog: structure loggingyatipadia2020-01-148-155/+209
| | | | | | | | | 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>
* api-glfs-fops: structure loggingyatipadia2020-01-147-286/+330
| | | | | | | | Convert gf_msg() to gf_smsg() Change-Id: Iceb40d60a75106c7b4b0a2487b611f7376bccc46 Updates: #657 Signed-off-by: yatipadia <ypadia@redhat.com>
* tools/glusterfind: Remove an extra argumentShwetha K Acharya2020-01-141-1/+1
| | | | | | fixes: bz#1790748 Change-Id: I1cb12c975142794139456d0f8e99fbdbb03c53a1 Signed-off-by: Shwetha K Acharya <sacharya@redhat.com>
* xlator/bit-rot-stub-helpers: structure loggingyatipadia2020-01-143-71/+76
| | | | | | | | convert gf_msg() to gf_smsg() Change-Id: Id03b6a2f6817101650ea6eeffb10e91c09e6ef80 Updates: #657 Signed-off-by: yatipadia <ypadia@redhat.com>
* xlators/storage: remove duplicated includesDmitry Antipov2020-01-133-3/+0
| | | | | | | | Do not include ftw.h twice. Change-Id: Id9e8d1813aafd890940adcd6883d90fa1b4beaf9 Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Updates: bz#1193929
* xlators/storage: prefer HAVE_xxx to host C library predefinesDmitry Antipov2020-01-131-5/+1
| | | | | | | | | 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
* dict: use the free_pair's key presence or NULL as a sign of use.Yaniv Kaul2020-01-132-18/+15
| | | | | | | | | | | | | 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>
* socket.c/name.c: minor changesYaniv Kaul2020-01-133-238/+136
| | | | | | | | | | | | | | - Move functions to static - Remove redundant checks - Use dict_get_...sizen() where applicable - Remove unused variables. - Moved some code to be executed only if relevant. ~3% object size reduction. Change-Id: Id9b8414e0a17442f1dac10ba77014d565756c935 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* rpc-transport: minor changesYaniv Kaul2020-01-132-61/+32
| | | | | | | | | | - Removed dead code - Remove redundant checks - Changed dict functions to use dict_..._sizen() functions. Change-Id: If00aaa90eef4078effd5b7fed2294f872e001b0a updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* glusterd-volgen.c: fix to disable property when gNFS disabled.Yaniv Kaul2020-01-131-8/+10
| | | | | | | | | | | | | | | | | | | The code was not ifdef'ed properly when gNFS was not enabled. Strangely, I could not reproduce the failure on my system (Fedora 31), but it was reproduced elsehwere and the fix was verified to correct it. The failure: gluster volume create testvol replica 3 127.0.0.2:/tests/brick{1..3} force gluster v set testvol write-behind off grep -rne write-behind /var/lib/glusterd/vols/testvol/trusted-testvol.tcp-fuse.vol The last grep was supposed to come out empty. The issue was that perfxl_option_handler may not have been called when it should have been. Change-Id: Ie9f8ec87dabeef6624527c2266ddf9af01ca7373 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>