| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue:
When a process has the open fd and the same file is
unlinked in middle of the operations, then file based
lookup fails with ENOENT or stale file
Solution:
When the file already open and fd is available, use fstat
to get the file attributes
Change-Id: I0e83aee9f11b616dcfe13769ebfcda6742e4e0f4
Fixes: #1281
Signed-off-by: Vinayakswami Hariharmath <vharihar@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found with GCC ThreadSanitizer:
WARNING: ThreadSanitizer: use of an invalid mutex (e.g. uninitialized or destroyed) (pid=188590)
#0 pthread_mutex_lock <null> (libtsan.so.0+0x528ac)
#1 client_ctx_del /path/to/glusterfs/libglusterfs/src/client_t.c:535 (libglusterfs.so.0+0xc681a)
#2 client_destroy_cbk /path/to/glusterfs/xlators/protocol/server/src/server.c:944 (server.so+0xaf6e)
#3 gf_client_destroy_recursive /path/to/glusterfs/libglusterfs/src/client_t.c:295 (libglusterfs.so.0+0xc5058)
#4 client_destroy /path/to/glusterfs/libglusterfs/src/client_t.c:330 (libglusterfs.so.0+0xc60e4)
...
Location is heap block of size 272 at 0x7b440001a180 allocated by thread T7:
#0 calloc <null> (libtsan.so.0+0x3075a)
#1 __gf_calloc /path/to/glusterfs/libglusterfs/src/mem-pool.c:151 (libglusterfs.so.0+0x6e42b)
#2 gf_client_get /path/to/glusterfs/libglusterfs/src/client_t.c:155 (libglusterfs.so.0+0xc571a)
...
The problem is that client_destroy() may call client_ctx_del() (which attempts to lock
'sratch_ctx.lock') via recursive deletion from gf_client_destroy_recursive(), so
destroying mutex before entering recursive deletion is an error. It should be destroyed
later - just before the client context is freed.
Change-Id: I730a628714d2b404e3f019ae552403da16b51b68
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1285
|
|
|
|
|
|
|
|
|
|
| |
Add destroy calls for 'store_volinfo_lock' and 'lock' of volume info.
Move initialization of 'store_volinfo_lock' from glusterd_op_create_volume()
to common place, which is glusterd_volinfo_new() indeed.
Change-Id: I5fae4469f28eab80c4fa6f5947646528e6aedad7
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1291
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initially found with GCC UBsan:
cli/src/cli-rpc-ops.c:5347:73: runtime error: left shift of 1 by 31
places cannot be represented in type 'int'
cli/src/cli-rpc-ops.c:5355:74: runtime error: left shift of 1 by 31
places cannot be represented in type 'int'
Ditto in cli/src/cli-xml-output.c.
Change-Id: I14ed51d06dafe5039f154b0c4edf25a0997d696e
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1279
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Brick process are not properly attached on any cluster node while
some volume options are changed on peer node and glusterd is down on
that specific node.
Solution: At the time of restart glusterd it got a friend update request
from a peer node if peer node having some changes on volume.If the brick
process is started before received a friend update request in that case
brick_mux behavior is not workingproperly. All bricks are attached to
the same process even volumes options are not the same. To avoid the
issue introduce an atomic flag volpeerupdate and update the value while
glusterd has received a friend update request from peer for a specific
volume.If volpeerupdate flag is 1 volume is started by
glusterd_import_friend_volume synctask
Change-Id: I4c026f1e7807ded249153670e6967a2be8d22cb7
Credit: Sanju Rakaonde <srakonde@redhat.com>
fixes: #1290
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example:
We have 3 nodes and create ec 3*(2+1) volume for
test-disperse-0/test-disperse-1/test-disperse-2 when we do
'gluster v heal test full' in node-1 that can in node-1/
node-2/node-3 glustershd's get op=GF_EVENT_TRANSLATOR_OP
and then do full heal in different disperse group.
Let us say we have 2X(2+1) disperse with each brick
from different machine m0, m1, m2, m3, m4, m5. and candidate_max is m5.
and do full heal so '*index' is 3 and !gf_uuid_compare(MY_UUID, brickinfo->uuid)
will be true in m3,and then m3's glustershd will be the heal-xlator.
Id: I5c6762e6cfb375aed32d3fc11fe5eae3ee41aab4
Signed-off-by: yinkui <13965432176@163.com>
Change-Id: Ic7ef3ddfd30b5f4714ba99b4e7b708c927d68764
fixes: bz#1724948
|
|
|
|
|
|
|
|
|
|
|
| |
The claim that Fedora package guidelines do not require this
scheme is a non-argument. Not only do they not require it, they
don't prohibit it either. (And you can't prove a negative. It's
a specious argument.)
Change-Id: I7748c7531d52dedd71b3a7f5df049742258a6aba
Fixes: #1126
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
I'm currently trying to update the FreeBSD port of glusterfs from 3.11 to
7.6. With this change I was able to compile everything again on 11.3,
11.4RC1, 12.1 and 13 (head)
Change-Id: I867fa51e931f7ef486529eecb58d903d2d23f79a
Fixes: #1275
Signed-off-by: Florian Smeets <flo@FreeBSD.org>
|
|
|
|
|
|
|
|
|
| |
Using 'const' qualifier on function return type makes no effect in
ISO C, as reported with -Wignored-qualifiers of gcc-10 and clang-10.
Change-Id: I83de7ab4c8255284683bb462cd9f584ebf0f983b
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1249
|
|
|
|
|
|
|
|
|
|
| |
The curr call to delete the xattr from the dict fails to find the key: dict_del_sizen(xdata, xattr_name);
This is beacuse keysize is calculated as sizeof of xattr_name which is a pointer, this lead to wrong size -> hash.
Fix: call to dict_deln which get keysize using strlen.
fixes: #1282
Change-Id: I23ce1f8f7928e9daa43bc3a9fa8d3611e81bbc36
Signed-off-by: Tamar Shacked <tshacked@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
AFR doesn't delay post-op for fsync fop. For fsync heavy workloads
this leads to un-necessary fxattrop/finodelk for every fsync leading
to bad performance.
Fix:
Have delayed post-op for fsync. Add special flag in xdata to indicate
that afr shouldn't delay post-op in cases where either the
process will terminate or graph-switch would happen. Otherwise it leads
to un-necessary heals when the graph-switch/process-termination
happens before delayed-post-op completes.
Fixes: #1253
Change-Id: I531940d13269a111c49e0510d49514dc169f4577
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The optimal way for configuring disperse and replicate volumes
is to have all bricks in different nodes.
During create operation it fails saying it is not optimal, user
must use force to over-ride this behavior. Implementing same
during add-brick operation to avoid situation where all the added
bricks end up from same host. Operation will error out accordingly.
and this can be over-ridden by using force same as create.
fixes: #1047
Change-Id: I3ee9c97c1a14b73f4532893bc00187ef9355238b
Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found with GCC's address sanitizer:
==67190==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 24624 byte(s) in 6 object(s) allocated from:
#0 0x7f62535c0837 in __interceptor_calloc (/usr/lib64/libasan.so.6+0xb0837)
#1 0x7f62532a1690 in __gf_default_calloc glusterfs/mem-pool.h:122
#2 0x7f62532a20ca in __gf_calloc /path/to/glusterfs/libglusterfs/src/mem-pool.c:144
#3 0x7f62532c8128 in gf_store_iter_new /path/to/glusterfs/libglusterfs/src/store.c:511
#4 0x7f623e2f9ed7 in glusterd_store_retrieve_bricks /path/to/glusterfs/xlators/mgmt/glusterd/src/glusterd-store.c:2389
Direct leak of 8208 byte(s) in 2 object(s) allocated from:
#0 0x7f62535c0837 in __interceptor_calloc (/usr/lib64/libasan.so.6+0xb0837)
#1 0x7f62532a1690 in __gf_default_calloc glusterfs/mem-pool.h:122
#2 0x7f62532a20ca in __gf_calloc /path/to/glusterfs/libglusterfs/src/mem-pool.c:144
#3 0x7f62532c8128 in gf_store_iter_new /path/to/glusterfs/libglusterfs/src/store.c:511
#4 0x7f623e2f9cf0 in glusterd_store_retrieve_bricks /path/to/glusterfs/xlators/mgmt/glusterd/src/glusterd-store.c:2363
#5 0x7fff5cb70bcf ([stack]+0x15bcf)
#6 0x7f623e309113 in glusterd_store_retrieve_volumes /path/to/glusterfs/xlators/mgmt/glusterd/src/glusterd-store.c:3505
#7 0xfffeb96e61d (<unknown module>)
#8 0x7f623e4586d7 (/usr/lib64/glusterfs/9dev/xlator/mgmt/glusterd.so+0x2f86d7)
Change-Id: I9b2a543dc095f4fa739cd664fd4d608bf8c87d60
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1263
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
In a replicate/arbiter volume if file creations or writes fails on
quorum number of bricks and on one brick it is due to ENOSPC and
on other brick it fails for a different reason, it may fail with
errors other than ENOSPC in some cases.
Fix:
Prioritize ENOSPC over other lesser priority errors and do not set
op_errno in posix_gfid_set if op_ret is 0 to avoid receiving any
error_no which can be misinterpreted by __afr_dir_write_finalize().
Also removing the function afr_has_arbiter_fop_cbk_quorum() which
might consider a successful reply form a single brick as quorum
success in some cases, whereas we always need fop to be successful
on quorum number of bricks in arbiter configuration.
Change-Id: I106e267f8b9451f681022f1cccb410d9bc824c08
Fixes: #1254
Signed-off-by: karthik-us <ksubrahm@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was a critical flaw in the previous implementation of open-behind.
When an open is done in the background, it's necessary to take a
reference on the fd_t object because once we "fake" the open answer,
the fd could be destroyed. However as long as there's a reference,
the release function won't be called. So, if the application closes
the file descriptor without having actually opened it, there will
always remain at least 1 reference, causing a leak.
To avoid this problem, the previous implementation didn't take a
reference on the fd_t, so there were races where the fd could be
destroyed while it was still in use.
To fix this, I've implemented a new xlator cbk that gets called from
fuse when the application closes a file descriptor.
The whole logic of handling background opens have been simplified and
it's more efficient now. Only if the fop needs to be delayed until an
open completes, a stub is created. Otherwise no memory allocations are
needed.
Correctly handling the close request while the open is still pending
has added a bit of complexity, but overall normal operation is simpler.
Change-Id: I6376a5491368e0e1c283cc452849032636261592
Fixes: #1225
Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Implement minimal proper synchronization between gf_attach
and underlying RPC layer using convenient POSIX primitives.
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1260
Change-Id: Ib5130b586a8b65ed5cf5f9156c111b161570224b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All files under .meta (synthetic subtree facilitating
reflection for glusterfs clients, implemented by meta
xlator) were shown as writable, but the vast majority of
them are usable only for querying parameters or stats, not
for setting them. (The exceptions are loglevel and
measure_latency.)
However, one could only find out about this only by trial
and error, or reading the code.
With this change we align file permissions with
tunability, stripping the writable bits for those nodes
which are only for querying.
Also strip writable bits from directory permissions.
updates: #1000
Change-Id: I82954e165ffc31cdf7307f4d990ef60b8154a2e2
Signed-off-by: Csaba Henk <csaba@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
removing it.
Problem: vdsm-client command failing below traceback
[root@dhcp35-179 ~]# cat <<EOF | vdsm-client --gluster-enabled -f - GlusterEvent webhookUpdate
{
"url": "https://mail.google.com/mail/u/1/#inbox",
"bearerToken": "ritesh"
}
EOF
vdsm-client: Command GlusterEvent.webhookUpdate with args
{'url': 'https://mail.google.com/mail/u/1/#inbox', 'bearerToken': 'ritesh'} failed:
(code=4752, message=Failed to update webhook: rc=1 out=()
err=b'Traceback (most recent call last): File "/sbin/gluster-eventsapi", line 673,
in <module> runcli()
File "/usr/lib/python3.6/site-packages/gluster/cliutils/cliutils.py", line 232,
in runcli cls.run(args)\n
File "/sbin/gluster-eventsapi", line 357,
in run
isinstance(data[args.url], unicode):NameError: name \'unicode\' is not defined')
Solution:
In py3 str can hold unicode string.
Change-Id: I3dc59df8b812f236380d2d57cfcf8e3aba91e582
Fixes: #1226
Signed-off-by: Ritesh Chikatwar <rchikatw@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Per a "TODO" comment in the code, a code block can be removed as it's no
longer required
Change-Id: I60e064ece985ff2ea2a686bbd2f0e6cc850899e9
updates: #1000
Signed-off-by: Barak Sason Rofman <bsasonro@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- performance.cache-size has a flawed semantics, as it's
dispatched on two independent translators, io-cache
and quick-read.
- performance.qr-cache-timeout has a confusing name, as
other options affecting quick-read have an unabbreviated
"quick-read-..." prefix in their names.
We keep these options with unchanged operation, but in the
help output we indicate their deprecation.
The following better alternatives are introduced:
- performance.io-cache-size to tune cache-size option of io-cache
- performance.quick-read-cache-size to tune cache-size option of
quick-read
- performance.quick-read-cache-timeout as a preferred synonym for
performance.qr-cache-timeout
Fixes: #952
Change-Id: Ibd04fb638de8cac450ba992ad8a415154f9f4281
Signed-off-by: Csaba Henk <csaba@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found with GCC ASan:
Direct leak of 202 byte(s) in 2 object(s) allocated from:
#0 0x7fc6c6ef0667 in __interceptor_malloc (/usr/lib64/libasan.so.6+0xb0667)
#1 0x7fc6c6bd145b in __gf_malloc /path/to/glusterfs/libglusterfs/src/mem-pool.c:175
#2 0x7fc6c6bd17a3 in gf_vasprintf /path/to/glusterfs/libglusterfs/src/mem-pool.c:223
#3 0x7fc6c6bd1993 in gf_asprintf /path/to/glusterfs/libglusterfs/src/mem-pool.c:243
#4 0x7fc6b0dc92f6 in init /path/to/glusterfs/xlators/cluster/afr/src/afr.c:590
...
Change-Id: I29feb1d30a045fb70472758e6ed4e195888090b2
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1278
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently data migration in rebalance reads sparse file sequentially,
disregarding which segments are holes and which are data. This can lead
to extremely long migration time for large sparse file.
Data migration mechanism needs to be enhanced so only data segments are
read and migrated. This can be achieved using lseek to seek for holes
and data in the file.
This enhancement is a consequence of
https://bugzilla.redhat.com/show_bug.cgi?id=1823703
fixes: #1222
Change-Id: If5f448a0c532926464e1f34f504c5c94749b08c3
Signed-off-by: Barak Sason Rofman <bsasonro@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
In gf_cli_gsync_status_output(), call to gf_cli_read_status_data()
overwrites 'sts_vals' pointers to areas allocated by GF_CALLOC()
with pointers to dict data, thus making the allocated areas not
accessible.
Change-Id: I00c310aec1a1413caf13ade14dc4fed37b51962c
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1259
|
|
|
|
|
|
|
|
|
|
| |
bash [[ ... =~ ... ]] built-in returns _0_ when the regex matches,
not 1, thus the sense of the test is backwards and never correctly
detects rhel or centos.
Change-Id: Ic9e60aae4ea38aff8f13979080995e60621a68fe
Fixes: #1269
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Posix translator returns pre and postbufs in the dict in {F}REMOVEXATTR fops.
These iatts are further cached at layers like md-cache.
Shard translator, in its current state, simply returns these values without
updating the aggregated file size and block-count.
This patch fixes this problem.
Change-Id: I4b2dd41ede472c5829af80a67401ec5a6376d872
Fixes: #1243
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
|
|
|
|
|
|
| |
fixes: #1258
Change-Id: I9d1fb512072bcc540d21d47da5b15ae1b79cf2b8
Signed-off-by: Susant Palai <spalai@redhat.com>
|
|
|
|
|
|
|
|
|
| |
This patch includes the following CID from Coverity Scan:
*1419116
*1420206
Change-Id: Id92fd6a78c8a00726a61aa4697b5c126ced8ed4d
Updates: #1202
|
|
|
|
|
|
|
|
|
|
| |
SSL performance is improved after configuring AES128 cipher
so use AES128 cipher as a default cipher on the CPU those
enabled AES bits otherwise ssl use AES256 cipher
Change-Id: I91c50fe987cbb22ed76f8012094730c592c63506
Fixes: #1050
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
While taking a snapshot clone, if the snapshot is not activated,
th cli was returning that the bricks are down.
This patch clearly print tha the error is due to the snapshot
state.
Change-Id: Ia840e6e071342e061ad38bf15e2e2ff2b0dacdfa
Fixes: #1255
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Posix translator returns pre and postbufs in the dict in {F}SETXATTR fops.
These iatts are further cached at layers like md-cache.
Shard translator, in its current state, simply returns these values without
updating the aggregated file size and block-count.
This patch fixes this problem.
Change-Id: I4da0eceb4235b91546df79270bcc0af8cd64e9ea
Fixes: #1243
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change is a followup to
I510158843e4b1d482bdc496c2e97b1860dc1ba93.
In referred change we pushed log messages about 'weird'
write errors to fuse device out of sight, by reporting
them at Debug loglevel instead of Error (where
'weird' means errno is not POSIX compliant but having
meaningful semantics for FUSE protocol).
This solved the issue of spurious error reporting.
And so far so good: these messages don't indicate
an error condition by themselves. However, when they
come in high repetitions, that indicates a suboptimal
condition which should be reported.[1]
Therefore now we shall emit a Warning if a certain
errno occurs a certain number of times[2] as the
outcome of a write to the fuse device.
___
[1] typically ENOENTs and ENOTDIRs accumulate
when glusterfs' inode invalidation lags behind
the kernel's internal inode garbage collection
(in this case above errnos mean that the inode
which we requested to be invalidated is not found
in kernel). This can be mitigated with the
invalidate-limit command line / mount option,
cf. bz#1732717.
[2] 256, as of the current implementation.
Change-Id: I8cc7fe104da43a88875f93b0db49d5677cc16045
Updates: #1000
Signed-off-by: Csaba Henk <csaba@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
After the changes in commit 3da22f8cb08b05562a4c6bd2694f2f19199cff7f,
there was a place where synccond_broadcast() was missing. It could
cause a hang if another synctask was waiting on the condition variable.
Change-Id: I92bfe4e15c5c3591e4854a64aa9e1566d50dd204
Fixes: #1116
Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Rename disk space checking thread to comply with
common convention, adjust related docs as well.
Change-Id: I36d642cf09773a28abd95bbe337ce29134ad96a4
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1248
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found with clang-10 -Wfortify-source:
bit-rot-scrub.c:1802:15: warning: 'snprintf' size argument is too large;
destination buffer has size 32, but size argument is 4096 [-Wfortify-source]
len = snprintf(key, PATH_MAX, "quarantine-%d", j);
^
bit-rot-scrub.c:1813:9: warning: 'snprintf' size argument is too large;
destination buffer has size 32, but size argument is 4096 [-Wfortify-source]
snprintf(main_key, PATH_MAX, "quarantine-%d", tmp_count);
Change-Id: I9b9c09ef2223ed181d81215154345de976b82f13
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1221
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
In add-brick that increases replica count
SHD was restarted after pending xattrs are set on the new bricks and
adding bricks. But before restarting SHD there is a possibility that
old SHD would do a scan on root-directory see no heal is needed and
delete index for root-dir leading to no heals until lookup is executed
on the mount
Fix:
Stop shd, perform pending-xattr setting/adding new bricks and
then restart shd
Fixes: #1240
Change-Id: I94fd7c6c909211b597185dfe097a559db6c0d00f
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
| |
updates: #1000
Change-Id: I2840ef1909cb0b4ae3d0f7fbaf11cfc9b8c0831f
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
ok 32 [ 11/ 9] < 46> 'gf_rm_file_and_gfid_link /d/backends/patchy0 del-file'
not ok 33 [ 13/ 131] < 48> '! dd if=/dev/zero of=/mnt/glusterfs/0/del-file bs=1M count=1 oflag=direct' -> ''
The assumption in the test above is that the file wouldn't exist when dd
happens. But heal can lead to creation of the file in some cases leading to
spurious failures.
Fix:
Disable client side heal.
Fixes: #1245
Change-Id: I96b2b45528f9dfb3199d503a467cafafba9b387f
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In brick-mux tests, all bricks of the volume have same pid.
"generate_brick_statedump" cleans up the older statedumps
with same brick pid. So successive calls to this function
will delete previous brick's statedump as all bricks share
same pid. So grep calls to the statedump were failing leading
to failure of the .t
To fix this, stored the result we need from statedump before calling
next brick's statedump
Fixes: #1234
Change-Id: I824ed4dff79e7242b3e980364836b9af0e87a6ee
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current scaling of the syncop thread pool is not working properly
and can leave some tasks in the run queue more time than necessary
when the maximum number of threads is not reached.
This patch provides a better scaling condition to react faster to
pending work.
Condition variables and sleep in the context of a synctask have also
been implemented. Their purpose is to replace regular condition
variables and sleeps that block synctask threads and prevent other
tasks to be executed.
The new features have been applied to several places in glusterd.
Change-Id: Ic50b7c73c104f9e41f08101a357d30b95efccfbf
Fixes: #1116
Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
|
|
|
|
|
|
|
|
| |
glusterfs-geo-replication sub-package requires policycoreutils-python-utilson rhel8 to set relevant selinux boolean to allow rsync.
Change-Id: Ia0fdcfdd8c7d18cd194e011f6b365bf5cb70a20a
Fixes: #1236
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently opendir is done from the cluster view. Hence, even if
one opendir is successful, the opendir operation as a whole is considered
successful.
But since in gf_defrag_get_entry we fetch entries selectively from
local_subvols, we need to opendir individually on those local subvols
and keep track of fds separately. Otherwise it is possible that opendir
failed on one of the subvol and we wind readdirp call on the fd to the
corresponding subvol, which will ultimately result in EINVAL error.
fixes: #1218
Change-Id: I50dd88b9597852a15579f4ee325918979417f570
Signed-off-by: Susant Palai <spalai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following crash happens when EBADF is returned
for some of the loc operations. EBADF should be returned only
for fd based fops
(data=0x7ff1700606e8) at
/home/jenkins/root/workspace/centos7-regression/xlators/cluster/dht/src/dht-helper.c:502
loc = {path = 0x0, name = 0x0, inode = 0x0, parent = 0x0, gfid = '\000'
<repeats 15 times>, pargfid = '\000' <repeats 15 times>}
ret = -1
frame = 0x7ff1700606e8
local = 0x7ff170049208
fd = 0x0
this = 0x7ff17c01d720
subvol = 0x7ff17c0197f0
__FUNCTION__ = "dht_check_and_open_fd_on_subvol_task"
/home/jenkins/root/workspace/centos7-regression/libglusterfs/src/syncop.c:279
task = 0x7ff17c0b4920
Fixes: #1230
Change-Id: I24c11a8820a3c8b4070127e69c520e2c61e70930
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case of readdir was send with an FD on which opendir
was failed, this FD will be useless and we return it with error.
For now, we are returning it with EINVAL without logging any
message in log file.
Return a correct error code and also log the message to improve thing to debug.
fixes: #1220
Change-Id: Iaf035254b9c5aa52fa43ace72d328be622b06169
|
|
|
|
|
|
|
|
|
| |
A wrong pointer check causes the offset returned by seek to be always
wrong
fixes: #1228
Change-Id: Iac4c6a163175617ac4f14544fc6b7c6fb4041cd6
Signed-off-by: Barak Sason Rofman <bsasonro@redhat.com>
|
|
|
|
|
|
| |
Fixes: #1223
Change-Id: I36cb72d920ffd77405051546615c5262c392daef
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pacemaker devs change the format of the ouput of `pcs status`
Expected to find a line in the format:
Online: ....
but now it's
* Online: ...
And the `grep -E "^Online:" no longer finds the list of nodes that
are online.
Also other lines now have '*' in first few characters of the line
throwing off `grep -x ...`
Change-Id: Ia04a89e76914f2a455a755f0a93fa415f60aefd0
Fixes: #1169
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Since mcheck()/mprobe() etc. features are no longer used,
mcheck.h isn't required to be included.
2. Since mallinfo() is used to obtain malloc statistics,
it should be detected instead of malloc_stats().
Change-Id: I54c7d2ee568e06ab29938efc01d1a2153c5bd5db
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Fixes: #1172
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is a possibility that 'frame' could have been
destroyed in dht_selfheal_dir_setattr() which can
lead to local->mds_heal_fresh_lookup showing junk
non-zero number. That will lead to double
STACK_DESTROY. Remembered the value of the variable
before the call to fix the access.
Fixes: #1214
Change-Id: I37d1657798bfb549bb3887e260484d58fff42c91
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Make sure bricks are up before mounting volume.
Also made sure that mount is available before creating test data.
Change-Id: I4915b837df46e43be5678dac8ae5602021c52685
Updates: #1197
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found with clang-10 -Wvarargs:
xlators/cluster/ec/src/ec-combine.c:360:20: warning: passing an object that undergoes
default argument promotion to 'va_start' has undefined behavior [-Wvarargs]
va_start(args, global);
^
xlators/cluster/ec/src/ec-combine.c:348:34: note: parameter of type 'bool' is declared here
gf_boolean_t global, ...)
According to The C11 Standard, 7.16.1.4p4:
If the parameter parmN is declared with the register storage class, with a function
or array type, or with a type that is not compatible with the type that results after
application of the default argument promotions, the behavior is undefined.
Fixes: #1207
Change-Id: I527527845b2d574000d736c278be87cf19504761
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
|