summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* debug/io-stats: add an option to set volume-idAmar Tumballi2019-11-296-22/+45
| | | | | | | | | | | 'volume-id' is good to have for a graph for uniquely identifying it. Add it to graph->volume_id while generating volfile itself. This can be further used in many other places. Updates: #763 Change-Id: I80516d62d28a284e8ff4707841570ced97a37e73 Signed-off-by: Amar Tumballi <amar@kadalu.io>
* MAINTAINERS: Add Nithya to past contributors sectionRaghavendra G2019-11-291-0/+1
| | | | | | Change-Id: I18195a61314946930db669fcf72703a7a18f43a1 Signed-off-by: Raghavendra G <rgowdapp@redhat.com> updates: bz#1193929
* cluster/afr - coverity issue fixBarak Sason Rofman2019-11-281-0/+5
| | | | | | | | | | | Added a log for a failure in order to avoid "unused variable" coverity issue. fixes: CID#1274209 Change-Id: Ibc6b0ab4bdff482096e42e88fd4c8c7eadfeeadb Updates: bz#789278 Signed-off-by: Barak Sason Rofman <bsasonro@redhat.com>
* Revert "afr: make heal info lockless"Ravishankar N2019-11-288-293/+88
| | | | | | | | This reverts commit fce5f68bc72d448490a0d41be494ac54a9181b3c. I merged the wrong patch by mistake! Hence reverting it. updates: bz#1774011 Change-Id: Id7d6ed1d727efc02467c8a9aea3374331261ebd5
* afr: make heal info locklessRavishankar N2019-11-288-88/+293
| | | | | | | | | | | | | | | | | | | Changes in locks xlator: Added support for per-domain inodelk count requests. Caller needs to set GLUSTERFS_MULTIPLE_DOM_LK_CNT_REQUESTS key in the dict and then set each key with name 'GLUSTERFS_INODELK_DOM_PREFIX:<domain name>'. In the response dict, the xlator will send the per domain count as values for each of these keys. Changes in AFR: Replaced afr_selfheal_locked_inspect() with afr_lockless_inspect(). Logic has been added to make the latter behave same as the former, thus not breaking the current heal info output behaviour. fixes: bz#1774011 Change-Id: I9ae08ce768b39aeb6ee230207b5b7fa744176952 Signed-off-by: Ravishankar N <ravishankar@redhat.com>
* common-utils.c: add gf_strn2boolean() functionYaniv Kaul2019-11-273-1/+71
| | | | | | | | | | | | | | | | | | | | | The function takes a string and its length and based on it returns if it's a boolean. It's identical in functionality to gf_string2boolean only with far less string comparisons since it takes into account the length of the string. dict_get_str_boolean() has been converted to use it. Other cases of gf_string2boolean() across the code base can be converted as well, but more importantly, they should be converted from dict_get_str() and then calling to gf_string2boolean to simply call dict_get_str_boolean(), which would take care of this for them. This is therefore a first step in the conversion. Change-Id: I9ee93abfc676f6e123a3919d8df8c25e8848b799 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* Maintainers: Remove Nithya as maintainer/peerroot2019-11-271-3/+0
| | | | | | Change-Id: I9512a70622b51416174ff0936f8d02e3c0178e19 Updates: bz#1193929 Signed-off-by: Nithya Balachandran <nbalacha@redhat.com>
* glusterfsd.c: remove sys_lstat() callYaniv Kaul2019-11-271-9/+0
| | | | | | | | | get_volfp() in glfs.c doesn't use it, so get_volfp() in glusterfsd.c can just open the file without the stat call as well, IMHO. Change-Id: I3cb5bf12a09b5be42aa2ee4f432f8d351eee5b9e updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* store.c/glusterd-store.c: remove sys_stat callsYaniv Kaul2019-11-273-68/+12
| | | | | | | | | | | | | | | Instead of querying for the file size and allocating a char array according to its size, let's just use a fixed size. Those calls are not really needed, and are either expensive or cached anyway. Since we do dynamic allocation/free, let's just use a fixed array instead. I'll see if there are other sys_stat() calls that are not really useful and try to eliminate them in separate patches. Change-Id: I76b40e78a52ab38f613fc0cdef4be60e6253bf20 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* pcsvc: fix subnet_mask_v4 checkAmar Tumballi2019-11-271-4/+7
| | | | | | | | | | The check we had for subnet mask validation wasn't checking in proper sequence. Corrected the order of calling `inet_pton()` as the fix. Fixes: #765 Change-Id: I5d31468eb917aa94cbb85f573b37c60023e9daf3 Signed-off-by: Amar Tumballi <amar@kadalu.io>
* posix-inode-fd-ops.c: excute sys_fstat() only when neededYaniv Kaul2019-11-271-7/+16
| | | | | | | | | | | It appears that in posix_do_futimes() we may not need to unconditionally execute sys_fstat(). Avoid it and use the existing stbuf atime and mtime if possible. If not, we execute it. Change-Id: I0bdd471e5c821fcd28f057c75046c673a212d347 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* cli-*: make some structs static to reduce space consumed.Yaniv Kaul2019-11-265-88/+94
| | | | | | | | | | | | | | | | | | | | | | | There's a small difference when structs are defined static. Whenever possible, define them as such. Specifically, before: text data bss dec hex filename 678 216 0 894 37e ./cli/src/cli-cmd-misc.o 150024 1264 16 151304 24f08 ./cli/src/cli-rpc-ops.o 71980 64 0 72044 1196c ./cli/src/cli-cmd-parser.o 66189 4 16 66209 102a1 ./cli/src/cli-xml-output.o After: text data bss dec hex filename 670 216 0 886 376 ./cli/src/cli-cmd-misc.o 149848 1392 16 151256 24ed8 ./cli/src/cli-rpc-ops.o 70346 1320 0 71666 117f2 ./cli/src/cli-cmd-parser.o 66157 4 16 66177 10281 ./cli/src/cli-xml-output.o Change-Id: I206bd895290595d79fac7b26eee66f4279b50f92 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* glusterfsd-mgmt.c: move INFO log outside a LOCKYaniv Kaul2019-11-191-28/+27
| | | | | | | | | | | | | In glusterfs_handle_attach() we can: 1. Move an INFO level to be executed before the LOCK. 2. Skip the LOCK altogether, if there's no active graph. I hope it's safe - I've seen that in other functions you could look at ctx->active outside of a lock. Change-Id: I3e1ec5b1430d5fddee46883d468ff4f5bd6ca54b updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* socket.c: minor changesYaniv Kaul2019-11-192-105/+77
| | | | | | | | | | | | 1. Remove dead code and declarations 2. Move some dict functions to use more efficient ones. 3. Use more constants, where possible. 4. Align messages - easier to grep the code for them. 5. Aligned structures and adding padding where needed. Change-Id: Ifc2639afe65a935fab5238d3e4a121b662836d3d updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* libglusterfs: remove unused gfdb specific files from repoAmar Tumballi2019-11-1816-5647/+1
| | | | | | Updates: bz#1193929 Change-Id: Idb98394c51917e9b132aeb32facccd112effe672 Signed-off-by: Amar Tumballi <amarts@gmail.com>
* posix: Improve MAKE_HANDLE_PATHMohit Agrawal2019-11-183-32/+17
| | | | | | | | | Pass the maximum buffer (PATH_MAX) to posix_handle_path to avoid the posix_handle_path call again. Change-Id: I7d18313870218dc028c5f7fc94d6ec85a2bdb332 Updates #761 Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
* glusterd-volgen.c: improve volgen_graph_set_options_generic()Yaniv Kaul2019-11-181-11/+12
| | | | | | | | | | | | | | | Skip fetching "skip-CLIOT" unconditionally on every invocation of volgen_graph_set_options_generic(). Instead, fetch only if the vme->key matches to it. We calculate the length of vme->key (but we would have done it anyway in dict_get() later on, so now we can use dict_getn() instead and re-use that key length) and check if the lengths match before doing a strcmp() between them. Lastly, if they match, we actually do the fetch. Change-Id: I9d9a7104f9e920bf81477128adb5fc87f5d30627 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* extras: fix the remote subvol name in case of thin-arbiterAmar Tumballi2019-11-162-4/+3
| | | | | | | | | * Also make sure to provide log-level in systemd file, instead of volfile itself. Updates: bz#1193929 Change-Id: I45a0b0ff3ebb4b3e095b4eed14b7bdf5816926d0 Signed-off-by: Amar Tumballi <amarts@gmail.com>
* cluster/dht: Add comments to the codeN Balachandran2019-11-161-12/+75
| | | | | | | | | Add comments to the code to explain what is being done and why. Change-Id: I50831d7bd4bb73e75f6cda05fafaeb5a8619baae Updates: bz#1765421 Signed-off-by: N Balachandran <nbalacha@redhat.com>
* afr: fix log floodingRavishankar N2019-11-162-1/+4
| | | | | | | | | | | | | | | | | | | | | | | Commit "ccf33e789 - dict.c: remove redundant checks" removed some NULL checks in certain dict functions. This caused flooding of fuse mount logs when I/O was done on the mount on a replica volume: Message: W [dict.c:1478:dict_get_with_refn] (-->/usr/local/lib/libglusterfs.so.0(dict_get_uint32+0x4d) [0x7ff9121ec963] -->/usr/local/lib/libglusterfs.so.0(dict_get_with_ref+0x90) [0x7ff9121eb93f] -->/usr/local/lib/libglusterfs.so.0(+0x229be) [0x7ff9121eb9be] ) 0-dict: dict OR key (glusterfs.lk.lkmode) is NULL [Invalid argument] Fix: In the relevant AFR functions, check that dict is not NULL before trying to perform operations on it. See bug description for more details. fixes: bz#1772006 Change-Id: I30c89c0b5d6c80cc86a6047aae70127769412120 Signed-off-by: Ravishankar N <ravishankar@redhat.com>
* ssl/test: ssl test case is failing when using specific cipherMohit Agrawal2019-11-151-19/+40
| | | | | | | | | | | | | Problem: On RHEL-8 ssl test case is failing when trying to connect with a peer after using the specific cipher. Solution: If cipher is not supported by openssl on rhel-8 then test case is failed.To avoid the issue validate the cipher before connecting with peer. Change-Id: I96d92d3602cf7fd40337126c8305a3f8925faf9b Fixes: bz#1756900 Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
* Revert "dict.c: remove redundant checks"MOHIT AGRAWAL2019-11-151-27/+103
| | | | | | | | | | This patch floods of dict_log at the time accessing key from dict if dict is not valid so revert the patch. This reverts commit ccf33e789f2cbd202e21340f684e2140d844a129. Change-Id: I81fa3b080a2f784254b519044ad284858583ec66 updates: bz#1193929
* geo-rep: Improve debuggingKotresh HR2019-11-131-1/+1
| | | | | | | | | | | | | | | | When gsyncd failed with tracebacks during start, it prints only exception object but not the error string. This patch adds the error string as well. Earlier: "failed with ImportError" Now: "failed with ImportError: No module named _io." fixes: bz#1771895 Change-Id: I0d772a250d4c2010a0c35053aa7b165b71f8434e Signed-off-by: Kotresh HR <khiremat@redhat.com>
* cluster/dht: Don't skip entries with invalid statN Balachandran2019-11-131-5/+4
| | | | | | | | | Don't strip out entries with invalid stats in dht_readdirp_cbk. Change-Id: I136ab342762d020a3c0f43e51e0090aed2af4120 Fixes: bz#1769754 Signed-off-by: N Balachandran <nbalacha@redhat.com>
* api: Fix documentation path in READMENiklas Hamb├╝chen2019-11-131-1/+1
| | | | | | | Ref: #84 Updates: bz#1193929 Change-Id: If346dbe421d3e301ae035165b2e01ee0a7176d36 Signed-off-by: Amar Tumballi <amarts@gmail.com>
* [WIP]gluster-volgen.c: remove more of JBR and FDL xlatorsYaniv Kaul2019-11-134-152/+1
| | | | | | | | | the JBR and FDL experimental xlators were apparently removed. Removed additional leftovers scattered in the code. Change-Id: I78b6fa5fd9044dc48cdcb1fb094b8c267c2d1323 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* geo-rep: Fix py2/py3 compatibility in repceKotresh HR2019-11-121-3/+2
| | | | | | | | | | Geo-rep fails to start on python2 only machine like centos6. It fails with "ImportError no module named _io". This patch fixes the same. fixes: bz#1771577 Change-Id: I8228458a853a230546f9faf29a0e9e0f23b3efec Signed-off-by: Kotresh HR <khiremat@redhat.com>
* libglusterfs/dict.c: Fix memory leaks.Xi Jinyu2019-11-121-0/+11
| | | | | | fixes: bz#1771365 Change-Id: Id31687c4704cbbfea1084f912ed0420c7d1cc1ec Signed-off-by: Xi Jinyu <xijinyu@cmss.chinamobile.com>
* gluster: check ctx->activeXie Changlong2019-11-121-0/+10
| | | | | | | | | To avoid process "TRANSLATOR INFO" "BARRIER" if graph is not ready, also see commit ee630e25. Updates: bz#1769712 Signed-off-by: Xie Changlong <xiechanglong@cmss.chinamobile.com> Change-Id: Ibd446a35962206d3689667cda7e6712d72e4ec2f
* MAINTAINERS: revised the maintainers list after 2 yearsAmar Tumballi2019-11-121-84/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last major change to the file happened 2 years 5 months back. For the better health of the project, and to motivate the active contributors, and keeping the file up-to-date with who is working on what, it is critical for us to keep refreshing the file once every 2 years (at least). This is one such effort. Highlighted changes: * Moving both Jeff and Vijay from Maintainers to 'Special Thanks' section. * Moving Amar and Xavi as Maintainers, and Atin as Peer, mainly looking at the activities (patches, reviews, merges) across the codebase, and also the contributions in discussions. * Moving Shyam and Niels out of Peer list highlighting the 6+ months of changed priorities. * Changed Xavi's contact from Datalab's to Red Hat's * Changed Amar's contact from Red Hat's to his Personal. * Removed: - Block Device (BD) - Experimental (RIO / JBR) - Gluster Object - Gluster Hadoop Plugin - Nagios Monitoring - GlusterD2 (and renamed glusterd1 to glusterd) * Marked 'NFS (gluster-NFS)' component as 'Deprecated / Orphan' * Moved few people, who stopped major contribution, mainly because of changing companies, changing projects inside their own company etc, to 'Special Thanks' section. * Additions: - Kotresh added as Peer in Posix - Raghavendra Gowdappa added as Peer in FUSE Bridge, Maintainer of readdir-ahead - Nithya Added as peer in readdir-ahead - Hari Gowtham as Peer in Quota, Maintainer in Releases - Yaniv Kaul for xxhash - Rinku Kothiya added as Peer in releases. - Sheetal Pamecha and Shwetha Acharya added as Peers in packaging for Debian/Ubuntu and OpenSUSE. Updates: bz#1193929 Change-Id: I0d6eccfee4306e26cdbc2b94f43ac493e2c25a61 Signed-off-by: Amar Tumballi <amarts@gmail.com>
* glusterd: Client Handling of Elastic ClustersMohit Agrawal2019-11-125-3/+119
| | | | | | | | | | | | | | Configure the list of gluster servers in the key GLUSTERD_BRICK_SERVERS at the time of GETSPEC RPC CALL and access the value in client side to update volfile serve list so that client would be able to connect next volfile server in case of current volfile server is down Updates #741 Signed-off-by: Mohit Agrawal <moagrawa@redhat.com> Change-Id: I23f36ddb92982bb02ffd83937a8bd8a2c97e8104
* cli: display detailed rebalance infoSanju Rakonde2019-11-122-7/+23
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: When one of the node is down in cluster, rebalance status is not displaying detailed information. Cause: In glusterd_volume_rebalance_use_rsp_dict() we are aggregating rsp from all the nodes into a dictionary and sending it to cli for printing. While assigning a index to keys we are considering all the peers instead of considering only the peers which are up. Because of which, index is not reaching till 1. while parsing the rsp cli unable to find status-1 key in dictionary and going out without printing any information. Solution: The simplest fix for this without much code change is to continue to look for other keys when status-1 key is not found. fixes: bz#1764119 Change-Id: I0062839933c9706119eb85416256eade97e976dc Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
* posix: Improve MAKE_HANDLE_GFID_PATH and MAKE_HANDLE_RELPATHMohit Agrawal2019-11-115-42/+26
| | | | | | | | Avoid one function call to set the gfid_path in buffer Change-Id: If9b95801b05c34d262fac9a275492c794d12bf58 Updates #748 Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
* rpc: Cleanup SSL specific data at the time of freeing rpc objectl17zhou2019-11-082-5/+40
| | | | | | | | | | | | Problem: At the time of cleanup rpc object ssl specific data is not freeing so it has become a leak. Solution: To avoid the leak cleanup ssl specific data at the time of cleanup rpc object Credits: l17zhou <cynthia.zhou@nokia-sbell.com.cn> Fixes: bz#1768407 Change-Id: I37f598673ae2d7a33c75f39eb8843ccc6dffaaf0
* glusterfsd-mgmt: unify read and write testsYaniv Kaul2019-11-073-148/+66
| | | | | | | | | | | | | | | | | 1. Both read and write tests required writing first. Either just writing (write test) or write and then read (read test). So the code is now unified. 2. There's no reason to read zeros from /dev/zero. Just use a CALLOC'ed buffer. I don't think we should read and write zeros, but I did not change the code yet (I think compression and/or dedup will offset results) It appears neither read-perf nor write-perf were tested, so added basic tests for them. Change-Id: I24b1f249fa0335ed652a8982e99c0687d940230e updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* dict.c: remove redundant checksYaniv Kaul2019-11-071-103/+27
| | | | | | | | | It removes ~2% of the object size, and did not add meaningful checks whatsoever or to readability (IMHO). Change-Id: I54346c2af47dcab13bd8d5c8ad52fc765e6afad4 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* iobuf.c, h: minor fixesYaniv Kaul2019-11-072-61/+37
| | | | | | | | | | | | | | - Align structures - gf_iobuf_get_pagesize() will now also return the index, reducing the need for an additional very similar call. - Removal of an inefficient loop I've inadvertently added previously. It was harmless, but just inefficient. - New pool initialization does not need to be done under lock - no one can touch that pool yet, so no need to protect it. Change-Id: I61c50f2f14fa79edc131e515e9615a9928ee2dca updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* extras: add statedumpparse.rbCsaba Henk2019-11-071-0/+175
| | | | | | | | | | | | | | | By default, the script mangles statedump records to JSON, which has two benefits: - easier machine processing - more friendly with line oriented tools, as one line will correspond to one record '--format=memstat' is also available which displays memory allocation types along the size of their allocations. Change-Id: I1685d3afcea6009fbcfafb33798f85bcd645c82f updates: bz#1193929 Signed-off-by: Csaba Henk <csaba@redhat.com>
* Improve logging of fusedump creation failureCsaba Henk2019-11-071-4/+10
| | | | | | updates bz#1193929 Signed-off-by: Csaba Henk <csaba@redhat.com> Change-Id: I12cbe1d87f60fb497654d0e13e12171940867f76
* georep: Merge Worker and Agent as a single processAravinda VK2019-11-0710-363/+176
| | | | | | | | | | | | - libgfchangelog is simplified by removing unnecessary API Class - Merged Agent logic into Worker instead of running Worker and Agent as two separate processes and maintaining RPC between Worker and Agent. - Geo-rep command Pause and Resume will continue without any changes. But Agent functionality also gets paused with that. Updates: #755 Change-Id: Ie2c00fa7dddf21f180f0649e0aaf084d29023c98 Signed-off-by: Aravinda VK <avishwan@redhat.com>
* cloudsync: remove dead code, unused variableYaniv Kaul2019-11-063-65/+16
| | | | | | | | | Minor changes - remove unused functions and unused variables. Switch dict functions to use sizen() when relevant. Change-Id: I737ce04a4beaf4df9b1eea25a90100d315627c14 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* posix-helpers.c (and others): minor changes to posix_xattr_fill()Yaniv Kaul2019-11-065-44/+45
| | | | | | | | | | | | | | | | posix_xattr_fill() is called from several POSIX functions. Made minor changes to it and the functions called from it: 1. Dict functions to use known lengths (dict_getn() instead of dict_get(), etc.) 2. Re-ordered some static char[] arrays, to account (hopefully) to the frequency of the xattrs usage (based on grep in the code...) 3. Before strcmp(), check if the strings lengths match. 4. Removed some dead code. Hopefully, no functional changes. Change-Id: I510c0d2785e54ffe0f82c4c449782f2302d63a32 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* scripts: quota_fsck script TypeError: %d format:not dictHari Gowtham2019-11-061-2/+2
| | | | | | | | | | | Problem: One of the prints in the script have been using %i as the format for printing which doesn't work. Fix: use %s as the format in the place of %i Fixes: bz#1764129 Change-Id: I4480ede7bf62906ddedbe5f880a1e89c76946641 Signed-off-by: Hari Gowtham <hgowtham@redhat.com>
* barrier: structs re-alignmentPurna Pavan Chandra Aekkaladevi2019-11-061-1/+2
| | | | | | | | Re-aligned a struct and added manual padding to avoid compile time padding. Change-Id: I8c6fc67a1b635dc7d8e2522bd4fd8587c09f74e9 Updates: bz#1754448 Signed-off-by: Purna Pavan Chandra Aekkaladevi <paekkala@redhat.com>
* dict.c: remove one strlen() done under lock.Yaniv Kaul2019-11-051-10/+12
| | | | | | | | It's not needed in some cases, where we can pass the key length. Change-Id: I2e8ed0b69c50a35f5858bae7c1755a0dfd2c77e5 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* cluster/ec: Change handling of heal failure to avoid crashAshish Pandey2019-11-042-13/+13
| | | | | | | | | | | | | | | | | Problem: ec_getxattr_heal_cbk was called with NULL as second argument in case heal was failing. This function was dereferencing "cookie" argument which caused crash. Solution: Cookie is changed to carry the value that was supposed to be stored in fop->data, so even in the case when fop is NULL in error case, there won't be any NULL dereference. Thanks to Xavi for the suggestion about the fix. Change-Id: I0798000d5cadb17c3c2fbfa1baf77033ffc2bb8c fixes: bz#1729085
* posix-entry-ops.c: pass correct key length in posix_skip_non_linkto_unlink()Yaniv Kaul2019-11-041-4/+6
| | | | | | | | | | | | | | | | As was found out in a different patch, passing a pointer to a constant string still calculates the size of the pointer and not the string. This is not catastrophic as the dictionary is matching not just hashes but key names, but is certainly what was intended to be done. Instead, pass explicitly the key lenth. I've looked for additional cases for such an issue and did not find them, luckily. Change-Id: I644a07a77dd541e9cf4886811ab54897e0c9d483 updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
* tests/shard: fix tests/bugs/shard/unlinks-and-renames.t failureSheetal Pamecha2019-11-011-0/+1
| | | | | | | | | | | | | | | | | | | | on rhel8 machine cleanup of shards is not happening properly for a sharded file with hard-links. It needs to refresh the hard link count to make it successful The problem occurs when a sharded file with hard-links gets removed. When the last link file is removed, all shards need to be cleaned up. But in the current code structure shard xlator, instead of sending a lookup to get the link count uses stale cache values of inodectx. Therby removing the base shard but not the shards present in /.shard directory. This fix will make sure that it marks in the first unlink's callback that the inode ctx needs a refresh so that in the next operation, it will be refreshed by looking up the file on-disk. fixes: bz#1764110 Change-Id: I81625c7451dabf006c0864d859b1600f3521b648 Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
* tools/glusterfind: handle offline bricksMilind Changire2019-10-312-25/+61
| | | | | | | | | | | | | | | | | | | Problem: glusterfind is unable to copy remote output file to local node when a remove-brick is in progress on the remote node. After copying remote files, in the --full output listing path, a "sort -u" command is run on the collected files. However, "sort" exits with an error code if it finds any file missing. Solution: Maintain a map of (pid, output file) when the node commands are started and remove the mapping for the pid for which the command returns an error. Use the list of files present in the map for the "sort" command. Change-Id: Ie6e019037379f4cb163f24b1c65eb382efc2fb3b fixes: bz#1410439 Signed-off-by: Milind Changire <mchangir@redhat.com> Signed-off-by: Shwetha K Acharya <sacharya@redhat.com>
* MAINTAINERS: Add Sunny Kumar as co-maintainer of geo-repKotresh HR2019-10-311-0/+1
| | | | | | Change-Id: I774710273702f1d093601035435989d3caba449c Signed-off-by: Kotresh HR <khiremat@redhat.com> fixes: bz#1765542