| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Do not sprintf the path in every invocation.
Initialize parameters sooner.
Change-Id: I26bfffc5dab6530937a50eee1e7fc4982e9b2a7c
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
| |
Fixes: bz#1665358
Change-Id: Iea000dd839d4e4dbef45941f97ab3725a2aa1726
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
This patch addresses CID-1398624 and CID-1398631
removed the unused variable brick_name
Change-Id: I4f40bd76cb4c94b28589c2333e29d4623da339d0
Updates: bz#789278
Signed-off-by: yati <ypadia@redhat.com>
|
|
|
|
|
|
| |
fixes: bz#1760189
Change-Id: Iffbf8d6f4c50b8e2de8364658697bdbe96549f5d
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When creating a thin-arbiter volume, if the replica-count
provided is other than 2, the cli command
fails(which is the expected behaviour) but it fails
while transaction is being committed on localhost.
This, ideally should be handled in cli itself.
Change-Id: I52ecdaf49a7df85670505e4743cdcf3101c71c9f
Signed-off-by: Vishal Pandey <vpandey@redhat.com>
Fixes: bz#1754477
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The return value of gf_asprintf() was used as the key length,
and it was stored into ret.
ret was re-used before the dict function was called, therefore was invalid
as the real key length and contained a different value.
That was masked by the fact the key length was only used in key hash, so
while it was incorrect, it was harmless. The hash was consistent and
the key length was re-calculated anyway in dict_set_lk().
This patch fixes it, so later on we can use the key length also in
dict_set_lk() to save another strlen() (sent in a different patch).
However, in the course of this patch I've also decided to reduce the
copy-pasta in this code path and put all NFS options in an array
and iterate through them. This makes the code shorter and easier to read.
(It's also more efficient since once an entry was found, there's no
additional strcmp()'s as the previous code did).
Change-Id: I968ed50a55f3b1a7ad027c72b06e0fa3788eaa9b
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In many places we use it, compare to it, etc. It could be a static variable,
as it really doesn't change. I think it's better than initializing to 0
and then doing gfid[15] = 1 or other tricks.
I think there are additional oppportunuties to make more variables static.
This is an attempt at an easy one.
Change-Id: I7f23a30a94056d8f043645371ab841cbd0f90d19
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
squash >50 warnings on padding of structs in afr structures.
The warnings were found by manually added '-Wpadded' to the GCC
command line.
Change-Id: I961fbdeb33715cedf3dd10db8e4f8ef40cd3e867
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Structures defined in few files of glusterd src have been modified into
memory efficient manner.
Change-Id: Ie712b41cc74b04d5169bfd2402bff3b9c0d8c95b
Updates: bz#1754448
Signed-off-by: Purna Pavan Chandra Aekkaladevi <paekkala@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch addresses CID-1274094 and CID-1382354
Problem(1): "ret" was assigned a value which was never used,
it was overwritten by 0 and hence has no use.
Problem(2): function was called without checking the return value.
Solution(1): Removed the assignment and just called the function
whose value was being written in ret.
Solution(2): There was no need to check for the return value as at
the end 0 is returned, so typecasted the return value as void.
Change-Id: Iefd0e9000c466ef2428c754c31370263bf1ca0d0
updates: bz#789278
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes Coverity issue with CID 1274206
Problem : -1 is assigned to op_ret, but that stored value is overwritten before it can be used.
Fix : Removal of the line that assigns -1 to op_ret which has no significance.
Change-Id: Icb881549ac946003710551c9b9e88b33b6a06239
Updates: bz#789278
Signed-off-by: Purna Pavan Chandra Aekkaladevi <paekkala@redhat.com>
|
|
|
|
|
|
| |
fixes: bz#1760187
Change-Id: I4c6ad13194d4fc5c7705e35bf9a27fce504b51f9
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the current code there is a window of time between unwinding
response to a read request and internal offset is updated to account
the read just done. If new sequential read request comes in this time
window, it is incorrectly identified as non-sequential read.
Fix is to update the file offset to account for a read request before
sending back the response to it.
Change-Id: Iff0c59c769e1eb15f262257763026657e2d4785d
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Fixes: bz#1753843
|
|
|
|
|
|
|
|
|
|
| |
gluster volume info --xml id displaying wrong distCount
value. This patch addresses it.
fixes: bz#1758878
Change-Id: I64081597e06018361e6524587b433b0c4b2a0260
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- remove dead code
- move functions to be static
- move some code that only needs to be executed under if branch
- remove some dead assignments and redundant checks.
No functional change, I hope.
Change-Id: I93d952408197ecd2fa91c3f812a73c54242342fa
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
| |
I'm not sure why it was there and I did not see any use for it.
In the hope I did not miss anything, I removed it.
Change-Id: I02fa2e8e2a598b488fddbff4c7168dc4a41929b2
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
| |
pidfile1 and pidfile2 were not used anywhere.
Removed the assignment and the variables.
Change-Id: Ic5fe091ba28bb500c370410a63440953048fd0b7
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code is simplified to avoid needless copy as well as simplified
overall for readability.
Such changes are needed elsewhere too (see
https://github.com/gluster/glusterfs/issues/720 )
Few other minor changes here and there, nothing functional.
Change-Id: Ia1167849f54d9cacbfe32ddd712dc1699760daf5
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
rebalance start should not succeed if quorum is not met.
this patch adds a condition to check whether quorum is met
in pre-validation stage.
fixes: bz#1760467
Change-Id: Ic7d0d08f69e4bc6d5e7abae713ec1881531c8ad4
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
|
|
|
|
|
|
|
| |
$subject
Change-Id: Ifd8e3340ae6868ea1fd2d0b53f02b093cc23f2cb
Fixes: bz#1193929
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script was assuming that the heal would have triggered
by the time test was executed, which may not be the case.
It can lead to following failures when the race happens:
...
18:29:45 not ok 14 [ 85/ 1] < 26> '[ 331 == 333 ]' -> ''
...
18:29:45 not ok 16 [ 10097/ 1] < 33> '[ 668 == 666 ]' -> ''
Heal on 3rd brick didn't start completely first time the command was executed.
So the extra count got added to the next profile info.
Fixed it by depending on cumulative stats and waiting until the count is
satisfied using EXPECT_WITHIN
fixes: bz#1759002
Change-Id: I3b410671c902d6b1458a757fa245613cb29d967d
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
In a situation where B1 blames B2, B2 blames B1 and B3 doesn't blame
anything for entry heal, heal will not complete even though we have
clear source and sinks. This will happen because while doing
afr_selfheal_find_direction() only the bricks which are blamed by
non-accused bricks are considered as sinks. Later in
__afr_selfheal_entry_finalize_source() when it tries to mark all the
non-sources as sinks it fails to do so because there won't be any
healed_sinks marked, no witness present and there will be a source.
Fix:
If there is a source and no healed_sinks, then reset all the locked
sources to 0 and healed sinks to 1 to do conservative merge.
Change-Id: If40d8bc95d52a52b2730f55bdcf135109b421548
Fixes: bz#1749322
Signed-off-by: karthik-us <ksubrahm@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The .t was examining the sink brick's iatt value before the launched
client-side metadata heal got a chance to complete.
Fix:
Wait for heal completion.
Fixes: bz#1759081
Change-Id: I4dd4e3a1cccf35fd18e8cdfea6aa76a726a4763b
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ever since we added quorum checks for lookups in afr via commit
bd44d59741bb8c0f5d7a62c5b1094179dd0ce8a4, the split-brain resolution
commands would not work for replica 3 because there would be no
readables for the lookup fop.
The argument was that split-brains do not occur in replica 3 but we do
see (data/metadata) split-brain cases once in a while which indicate that there are
a few bugs/corner cases yet to be discovered and fixed.
Fortunately, commit 8016d51a3bbd410b0b927ed66be50a09574b7982 added
GF_CLIENT_PID_GLFS_HEALD as the pid for all fops made by glfsheal. If we
leverage this and allow lookups in afr when pid is GF_CLIENT_PID_GLFS_HEALD,
split-brain resolution commands will work for replica 3 volumes too.
Likewise, the check is added in shard_lookup as well to permit resolving
split-brains by specifying "/.shard/shard-file.xx" as the file name
(which previously used to fail with EPERM).
Change-Id: I3c543dea79caf7cfbc1633e9089cb1cdd2538ba9
Fixes: bz#1756938
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Direct-io options are currently enabled in the ovirt-gluster
installation through cockpit ui whereas all the other optimizations in
gluster for virt are enabled through the group-virt option using
'volume-set' command. For the sake of completeness and to avoid any
confusion, it would be better to set the o-direct gluster options also
as part of group virt.
Change-Id: Iac4c443c2a8239effeb05a52344e563f1d877916
Fixes: bz#1758984
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you are already under lock, just decrement the call count
directly instead of removing the lock, re-taking the lock
and decrementing.
Implements https://github.com/gluster/glusterfs/issues/728
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
Change-Id: I3fa20b4651fbdb826655c5a03baeed46e99b5487
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch addresses CID-1124388.
Problem: When we reach the "out" section in ra_priv_dump(), if the condition
(ret && conf) holds true, then the value of "add_section" will always be true.
So the condition (add_section == _gf_false) will be a dead code.
Fix:"add_section" has no use in the whole block and was making part of the
block as logically dead code and hence, removed it.
Change-Id: Id7e0105fc9a5ca5b2c2d098c665e6e32ecc6b62b
updates: bz#789278
Signed-off-by: yatipadia <ypadia@redhat.com>
|
|
|
|
|
|
|
|
|
| |
While merging the protocol handshake fixes (bz#1620580), there was
a case which was left out. Adding it separately now.
Change-Id: I52133d5fe160b4567400a65e60aac8f7bc20697f
Updates: bz#1193929
Signed-off-by: Amar Tumballi <amarts@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fd processing loops in the
dht_migration_complete_check_task and the
dht_rebalance_inprogress_task functions were unsafe
and could cause an open to be sent on an already freed
fd. This has been fixed.
Change-Id: I0a3c7d2fba314089e03dfd704f9dceb134749540
Fixes: bz#1757399
Signed-off-by: N Balachandran <nbalacha@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On protocol client connecting to brick, client will firstly contact
glusterd to get port, then reconnect to glusterfsd. Reconnect cancels
the reconnect timer and start a new one. However, cancelling the timer
does not unref rpc ref-ed for it. That leads to refcount leak.
Fix this issue by unref-ing rpc if reconnect timer is canceled.
Change-Id: Ice89dcd93cb283a0c7250c369cc8961d52fb2022
Fixes: bz#1538900
BUG: 1538900
Signed-off-by: Zhang Huan <zhanghuan@open-fs.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This tests is failing with
"SSL routines:SSL_CTX_use_certificate:ee key too small"
in RHEL8. This change is made according to
https://access.redhat.com/solutions/4157431
updates: bz#1756900
Change-Id: Ib436372c3bd94bcf7324976337add7da4088b3d5
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
|
|
|
|
|
|
| |
updates: bz#1193929
Change-Id: I5b4a39fbdaa43642a322440d550ca24df815cae9
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes coverity issue with CID 1405581
A pointer 'volname' is being deferenced (by passing it as an argument to strncmp), even when it points to NULL, leading to segmentation fault.
fix : Adding a NULL check condition beforehand and returning NULL
Change-Id: I18685fa1cb251253996051b83b6790a5d5f0aff9
Updates: bz#789278
Signed-off-by: Purna Pavan Chandra Aekkaladevi <paekkala@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With added check of volume-id during handshake, we can be sure to not
connect with a brick if this gets re-used in another volume. This
prevents any accidental issues which can happen with a stale client
process lurking along.
Also added test case for testing same volume name which would fetch a
different volfile (ie, different bricks, different type), and a
different volume name, but same brick.
For reference:
Currently a client<->server handshake happens in glusterfs through
protocol/client translator (setvolume) to protocol/server using a
dictionary which containes many keys. Rejection happens in server
side if some of the required keys are missing in handshake
dictionary.
Till now, there was no single unique identifier to validate for a
client to tell server if it is actually talking to a corresponding
server. All we look in protocol/client is a key called
'remote-subvolume', which should match with a subvolume name in server
volume file, and for any volume with same brick name (can be present
in same cluster due to recreate), it would be same. This could cause
major issue, when a client was connected to a given brick, in one
volume would be connected to another volume's brick if its
re-created/re-used.
To prevent this behavior, we are now passing along 'volume-id' in
handshake, which would be preserved for the life of client process,
which can prevent this accidental connections.
NOTE: This behavior wouldn't be applicable for user-snapshot enabled
volumes, as snapshotted volume's would have different volume-id.
Fixes: bz#1620580
Change-Id: Ie98286e94ce95ae09c2135fd6ec7d7c2ca1e8095
Signed-off-by: Amar Tumballi <amarts@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: In OCS environment heketidbstorage is detached due
to health_check thread is failed.Sometime aio_write
is not successfully finished within default health-check-timeout
limit and the brick is detached.
Solution: To avoid the issue increase default timeout to 20s
Change-Id: Idff283d5713da571f9d20a6b296274f69c3e5b7b
Fixes: bz#1755900
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
|
|
|
|
|
|
| |
Change-Id: I43eaa53a7b8d876640d225e011b56192bba57eed
Fixes: bz#1753569
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
|
|
|
|
|
|
| |
fixes: bz#1756211
Change-Id: Iee5b37af89ab624c16a45df364806003238280e5
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
| |
fixes: #725
Change-Id: Iaaefe6f49c8193c476b987b92df6bab3e2f62601
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When self-heal daemon receives an inodelk contention notification, it tries
to locate the related inode using inode_find() and the inode table owned by
top-most xlator, which in this case doesn't have any inode table. This causes
many messages to be logged by inode_find() function because the inode table
passed is NULL.
This patch prevents this by making sure the inode table is not NULL before
calling inode_find().
Change-Id: I8d001bd180aaaf1521ba40a536b097fcf70c991f
Fixes: bz#1755344
Signed-off-by: Xavi Hernandez <jahernan@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've found perf xlators io-cache and read-ahead not adding any
performance improvement. At best read-ahead is redundant due to kernel
read-ahead and at worst io-cache is degrading the performance for
workloads that doesn't involve re-read. Given that VFS already have
both these functionalities, this patch makes these two
translators turned off by default for native fuse mounts.
For non-native fuse mounts like gfapi (NFS-ganesha/samba) we can have
these xlators on by having custom profiles.
Change-Id: Ie7535788909d4c741844473696f001274dc0bb60
Signed-off-by: Raghavendra Gowdappa <rgowdapp@redhat.com>
fixes: bz#1676479
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: In brick_mux environment, while multiple volumes are
created (1-1000) sometimes brick is going down due to
health_check thread failure
Solution: Ignore EAGAIN error in health_check thread code to
avoid the issue
Change-Id: Id44c59f8e071a363a14d09d188813a6633855213
Fixes: bz#1751907
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WB saves the wb_inode in frame->local for the truncate and
ftruncate fops. This value is not cleared in case of error
on a conflicting write request. FRAME_DESTROY finds a non-null
frame->local and tries to free it using mem_put. However,
wb_inode is allocated using GF_CALLOC, causing the
process to crash.
credit: vpolakis@gmail.com
Change-Id: I217f61470445775e05145aebe44c814731c1b8c5
Fixes: bz#1753592
Signed-off-by: N Balachandran <nbalacha@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right now we have two separate APIs, one
- 'glfs_h_creat_handle' to create handle & another
- 'glfs_h_open' to create a glfd to return to application
Having two separate routines can result in access errors
while trying to create and write into a read-only file.
Since a fd is opened even during file/directory creation,
introducing a new API to make these two operations atomic i.e,
which can create both handle & fd and pass them to application
Change-Id: Ibf513fcfcdad175f4d7eb6fa7a61b8feec6d33b5
Fixes: bz#1753569
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
|
|
|
|
|
|
|
|
| |
Added test case for non-root geo-rep setup.
Change-Id: Ib6ebee79949a9f61bdc5c7b5e11b51b262750e98
fixes: bz#1717827
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
The current lru-limit value still uses memory for
upto 128K inodes.
Reduce the default value of lru-limit to 64K.
Change-Id: Ica2dd4f8f5fde45cb5180d8f02c3d86114ac52b3
Fixes: bz#1753880
Signed-off-by: N Balachandran <nbalacha@redhat.com>
|
|
|
|
|
|
| |
Fixes: bz#1741779
Change-Id: I708b6b7e6c520dee10445528e6f99ba38e141c25
Signed-off-by: Shwetha K Acharya <sacharya@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Geo-rep session for non-root going faulty.
Solution:
During worker start we do not construct slave url and use 'args.resource_remote'
which is basically just slave-hostname.
This works better for root session but fails in non-root session during
ssh command.
Using slave url solves this issue.
fixes: bz#1753928
Change-Id: Ib83552fde77f81c208896494b323514ab37ebf22
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
|
|
|
|
|
|
|
| |
CID: 1370947
Updates: bz#789278
Change-Id: Ib694056430ff0536ed705a0e77e5ace22486891e
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The bug[1] addresses issue of data inconsistency when handling RENAME with
existing destination. This fix requires some performance tuning considering
this issue occurs in heavy rename workload.
Solution:
If distribution count for master volume is one do not verify op's on
master and go ahead with rename.
The performance improvement with this patch can only be observed if
master volume has distribution count one.
[1]. https://bugzilla.redhat.com/show_bug.cgi?id=1694820
fixes: bz#1753857
Change-Id: I8e9bcd575e7e35f40f9f78b7961c92dee642f47b
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
|
|
|
|
|
|
|
| |
Fixed typos and reworded log messages for clarity.
Change-Id: I46f616ce7d3eb993c77a5812e8bc044e5f283354
Fixes: bz#1753859
Signed-off-by: N Balachandran <nbalacha@redhat.com>
|