autobuild v6.0-47
Resolves: bz#1286171 bz#1821743 bz#1837926 Signed-off-by: Gluster Jenkins <dkhandel+glusterjenkins@redhat.com>
This commit is contained in:
parent
46b769fe94
commit
ffa49e3d28
@ -0,0 +1,49 @@
|
||||
From 3612b3a46c33d19bb7d4aee6eb6625d8d903d459 Mon Sep 17 00:00:00 2001
|
||||
From: Pranith Kumar K <pkarampu@redhat.com>
|
||||
Date: Wed, 17 Jun 2020 10:44:37 +0530
|
||||
Subject: [PATCH 474/478] features/locks: posixlk-clear-lock should set error
|
||||
as EINTR
|
||||
|
||||
Problem:
|
||||
fuse on receiving interrupt for setlk sends clear-lock "fop"
|
||||
using virtual-getxattr. At the moment blocked locks which are
|
||||
cleared return EAGAIN errno as opposed to EINTR errno
|
||||
|
||||
Fix:
|
||||
Return EINTR errno.
|
||||
|
||||
Upstream:
|
||||
> Reviewed-on: https://review.gluster.org/24587
|
||||
> Updates: #1310
|
||||
> Change-Id: I47de0fcaec370b267f2f5f89deeb37e1b9c0ee9b
|
||||
> Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
||||
|
||||
BUG: 1821743
|
||||
Change-Id: Id8301ce6e21c009949e88db5904d8b6ecc278f66
|
||||
Signed-off-by: Csaba Henk <csaba@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/216157
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
xlators/features/locks/src/clear.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xlators/features/locks/src/clear.c b/xlators/features/locks/src/clear.c
|
||||
index 116aed6..ab1eac6 100644
|
||||
--- a/xlators/features/locks/src/clear.c
|
||||
+++ b/xlators/features/locks/src/clear.c
|
||||
@@ -181,9 +181,9 @@ clrlk_clear_posixlk(xlator_t *this, pl_inode_t *pl_inode, clrlk_args *args,
|
||||
if (plock->blocked) {
|
||||
bcount++;
|
||||
pl_trace_out(this, plock->frame, NULL, NULL, F_SETLKW,
|
||||
- &plock->user_flock, -1, EAGAIN, NULL);
|
||||
+ &plock->user_flock, -1, EINTR, NULL);
|
||||
|
||||
- STACK_UNWIND_STRICT(lk, plock->frame, -1, EAGAIN,
|
||||
+ STACK_UNWIND_STRICT(lk, plock->frame, -1, EINTR,
|
||||
&plock->user_flock, NULL);
|
||||
|
||||
} else {
|
||||
--
|
||||
1.8.3.1
|
||||
|
46
0475-fuse-lock-interrupt-fix-flock_interrupt.t.patch
Normal file
46
0475-fuse-lock-interrupt-fix-flock_interrupt.t.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From 47d8c316f622850d060af90d1d939528ace5607a Mon Sep 17 00:00:00 2001
|
||||
From: Csaba Henk <csaba@redhat.com>
|
||||
Date: Thu, 14 Feb 2019 02:01:38 +0100
|
||||
Subject: [PATCH 475/478] fuse lock interrupt: fix flock_interrupt.t
|
||||
|
||||
Upstream:
|
||||
> Reviewed-on: https://review.gluster.org/22213
|
||||
> updates: bz#1193929
|
||||
> Change-Id: I347de62755100cd69e3cf341434767ae23fd1ba4
|
||||
> Signed-off-by: Csaba Henk <csaba@redhat.com>
|
||||
|
||||
BUG: 1821743
|
||||
Change-Id: I0088f804bca215152e7ca2c490402c11f7b5333a
|
||||
Signed-off-by: Csaba Henk <csaba@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/216158
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
tests/features/flock_interrupt.t | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/features/flock_interrupt.t b/tests/features/flock_interrupt.t
|
||||
index 8603b65..964a4bc 100644
|
||||
--- a/tests/features/flock_interrupt.t
|
||||
+++ b/tests/features/flock_interrupt.t
|
||||
@@ -22,12 +22,12 @@ EXPECT 'Started' volinfo_field $V0 'Status';
|
||||
TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0;
|
||||
TEST touch $M0/testfile;
|
||||
|
||||
-function flock_interrupt {
|
||||
- flock $MO/testfile sleep 3 & flock -w 1 $M0/testfile true;
|
||||
- echo ok;
|
||||
-}
|
||||
+echo > got_lock
|
||||
+flock $M0/testfile sleep 6 & { sleep 0.3; flock -w 2 $M0/testfile true; echo ok > got_lock; } &
|
||||
|
||||
-EXPECT_WITHIN 2 ok flock_interrupt;
|
||||
+EXPECT_WITHIN 4 ok cat got_lock;
|
||||
|
||||
## Finish up
|
||||
+sleep 7;
|
||||
+rm -f got_lock;
|
||||
cleanup;
|
||||
--
|
||||
1.8.3.1
|
||||
|
114
0476-mount-fuse-use-cookies-to-get-fuse-interrupt-record-.patch
Normal file
114
0476-mount-fuse-use-cookies-to-get-fuse-interrupt-record-.patch
Normal file
@ -0,0 +1,114 @@
|
||||
From 40519185067d891f06818c574301ea1af4b36479 Mon Sep 17 00:00:00 2001
|
||||
From: Pranith Kumar K <pkarampu@redhat.com>
|
||||
Date: Wed, 17 Jun 2020 10:45:19 +0530
|
||||
Subject: [PATCH 476/478] mount/fuse: use cookies to get fuse-interrupt-record
|
||||
instead of xdata
|
||||
|
||||
Problem:
|
||||
On executing tests/features/flock_interrupt.t the following error log
|
||||
appears
|
||||
[2020-06-16 11:51:54.631072 +0000] E
|
||||
[fuse-bridge.c:4791:fuse_setlk_interrupt_handler_cbk] 0-glusterfs-fuse:
|
||||
interrupt record not found
|
||||
|
||||
This happens because fuse-interrupt-record is never sent on the wire by
|
||||
getxattr fop and there is no guarantee that in the cbk it will be
|
||||
available in case of failures.
|
||||
|
||||
Fix:
|
||||
wind getxattr fop with fuse-interrupt-record as cookie and recover it
|
||||
in the cbk
|
||||
|
||||
Upstream:
|
||||
> Reviewed-on: https://review.gluster.org/24588
|
||||
> Fixes: #1310
|
||||
> Change-Id: I4cfff154321a449114fc26e9440db0f08e5c7daa
|
||||
> Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
||||
|
||||
BUG: 1821743
|
||||
Change-Id: If9576801654d4d743bd66ae90ca259c4d34746a7
|
||||
Signed-off-by: Csaba Henk <csaba@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/216159
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
tests/features/flock_interrupt.t | 1 -
|
||||
xlators/mount/fuse/src/fuse-bridge.c | 28 +++++++---------------------
|
||||
2 files changed, 7 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/tests/features/flock_interrupt.t b/tests/features/flock_interrupt.t
|
||||
index 964a4bc..b8717e3 100644
|
||||
--- a/tests/features/flock_interrupt.t
|
||||
+++ b/tests/features/flock_interrupt.t
|
||||
@@ -28,6 +28,5 @@ flock $M0/testfile sleep 6 & { sleep 0.3; flock -w 2 $M0/testfile true; echo ok
|
||||
EXPECT_WITHIN 4 ok cat got_lock;
|
||||
|
||||
## Finish up
|
||||
-sleep 7;
|
||||
rm -f got_lock;
|
||||
cleanup;
|
||||
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
|
||||
index f61fa39..1bddac2 100644
|
||||
--- a/xlators/mount/fuse/src/fuse-bridge.c
|
||||
+++ b/xlators/mount/fuse/src/fuse-bridge.c
|
||||
@@ -4768,16 +4768,8 @@ fuse_setlk_interrupt_handler_cbk(call_frame_t *frame, void *cookie,
|
||||
int32_t op_errno, dict_t *dict, dict_t *xdata)
|
||||
{
|
||||
fuse_interrupt_state_t intstat = INTERRUPT_NONE;
|
||||
- fuse_interrupt_record_t *fir;
|
||||
+ fuse_interrupt_record_t *fir = cookie;
|
||||
fuse_state_t *state = NULL;
|
||||
- int ret = 0;
|
||||
-
|
||||
- ret = dict_get_bin(xdata, "fuse-interrupt-record", (void **)&fir);
|
||||
- if (ret < 0) {
|
||||
- gf_log("glusterfs-fuse", GF_LOG_ERROR, "interrupt record not found");
|
||||
-
|
||||
- goto out;
|
||||
- }
|
||||
|
||||
intstat = op_ret >= 0 ? INTERRUPT_HANDLED : INTERRUPT_SQUELCHED;
|
||||
|
||||
@@ -4789,7 +4781,6 @@ fuse_setlk_interrupt_handler_cbk(call_frame_t *frame, void *cookie,
|
||||
GF_FREE(state);
|
||||
}
|
||||
|
||||
-out:
|
||||
STACK_DESTROY(frame->root);
|
||||
|
||||
return 0;
|
||||
@@ -4827,9 +4818,10 @@ fuse_setlk_interrupt_handler(xlator_t *this, fuse_interrupt_record_t *fir)
|
||||
frame->op = GF_FOP_GETXATTR;
|
||||
state->name = xattr_name;
|
||||
|
||||
- STACK_WIND(frame, fuse_setlk_interrupt_handler_cbk, state->active_subvol,
|
||||
- state->active_subvol->fops->fgetxattr, state->fd, xattr_name,
|
||||
- state->xdata);
|
||||
+ STACK_WIND_COOKIE(frame, fuse_setlk_interrupt_handler_cbk, fir,
|
||||
+ state->active_subvol,
|
||||
+ state->active_subvol->fops->fgetxattr, state->fd,
|
||||
+ xattr_name, state->xdata);
|
||||
|
||||
return;
|
||||
|
||||
@@ -4852,15 +4844,9 @@ fuse_setlk_resume(fuse_state_t *state)
|
||||
fir = fuse_interrupt_record_new(state->finh, fuse_setlk_interrupt_handler);
|
||||
state_clone = gf_memdup(state, sizeof(*state));
|
||||
if (state_clone) {
|
||||
- /*
|
||||
- * Calling this allocator with fir casted to (char *) seems like
|
||||
- * an abuse of this API, but in fact the API is stupid to assume
|
||||
- * a (char *) argument (in the funcion it's casted to (void *)
|
||||
- * anyway).
|
||||
- */
|
||||
- state_clone->xdata = dict_for_key_value(
|
||||
- "fuse-interrupt-record", (char *)fir, sizeof(*fir), _gf_true);
|
||||
+ state_clone->xdata = dict_new();
|
||||
}
|
||||
+
|
||||
if (!fir || !state_clone || !state_clone->xdata) {
|
||||
if (fir) {
|
||||
GF_FREE(fir);
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,51 @@
|
||||
From 3d50207b346cb5d95af94aa010ebd1ec3e795554 Mon Sep 17 00:00:00 2001
|
||||
From: srijan-sivakumar <ssivakum@redhat.com>
|
||||
Date: Wed, 4 Nov 2020 11:44:51 +0530
|
||||
Subject: [PATCH 477/478] glusterd/snapshot: Snapshot prevalidation failure not
|
||||
failing.
|
||||
|
||||
The value of `ret` is to be set to `-1` to indicate failure
|
||||
or else the prevalidation which is supposed to be a failure
|
||||
as the snapshot isn't even activated for cloning will move
|
||||
to next stage.
|
||||
|
||||
Label: DOWNSTREAM ONLY
|
||||
BUG: 1837926
|
||||
|
||||
Change-Id: I95122c3a261332630efa00033a1892a8f95fc00b
|
||||
Signed-off-by: srijan-sivakumar <ssivakum@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/216920
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Shwetha Acharya <sacharya@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
xlators/mgmt/glusterd/src/glusterd-snapshot.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot.c b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
|
||||
index 5b8ae97..ee3cea0 100644
|
||||
--- a/xlators/mgmt/glusterd/src/glusterd-snapshot.c
|
||||
+++ b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
|
||||
@@ -2298,8 +2298,8 @@ glusterd_snapshot_clone_prevalidate(dict_t *dict, char **op_errstr,
|
||||
goto out;
|
||||
}
|
||||
|
||||
-
|
||||
if (!glusterd_is_volume_started(snap_vol)) {
|
||||
+ ret = -1;
|
||||
snprintf(err_str, sizeof(err_str),
|
||||
"Snapshot %s is "
|
||||
"not activated",
|
||||
@@ -9361,7 +9361,8 @@ glusterd_handle_snapshot_fn(rpcsvc_request_t *req)
|
||||
"for a snapshot");
|
||||
op_errno = EG_OPNOTSUP;
|
||||
gf_msg(this->name, GF_LOG_ERROR, 0, GD_MSG_UNSUPPORTED_VERSION,
|
||||
- "%s (%d < %d)", err_str, conf->op_version, GD_OP_VERSION_RHS_3_0);
|
||||
+ "%s (%d < %d)", err_str, conf->op_version,
|
||||
+ GD_OP_VERSION_RHS_3_0);
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
119
0478-DHT-Fixing-rebalance-failure-on-issuing-stop-command.patch
Normal file
119
0478-DHT-Fixing-rebalance-failure-on-issuing-stop-command.patch
Normal file
@ -0,0 +1,119 @@
|
||||
From e772bef5631017145cd0270d72a9ada1378e022a Mon Sep 17 00:00:00 2001
|
||||
From: Barak Sason Rofman <bsasonro@redhat.com>
|
||||
Date: Fri, 30 Oct 2020 08:27:47 +0200
|
||||
Subject: [PATCH 478/478] DHT - Fixing rebalance failure on issuing stop
|
||||
command
|
||||
|
||||
Issuing a stop command for an ongoing rebalance process results in an error.
|
||||
This issue was brought up in https://bugzilla.redhat.com/1286171 and a patch
|
||||
(https://review.gluster.org/24103/) was submitted to resolve the issue.
|
||||
|
||||
However the submitted patch resolved only part of the
|
||||
problem by reducing the number of log messages that were printed (since
|
||||
rebalnace is currently a recursive process, an error message was printed
|
||||
for every directory) but didn't fully resolve the root cause for the
|
||||
failure.
|
||||
|
||||
This patch fixes the issue by modifying the code-path which handles the
|
||||
termination of the rebalance process by issuing a stop command.
|
||||
|
||||
Upstream:
|
||||
> Reviewed-on: https://github.com/gluster/glusterfs/pull/1628
|
||||
> fixes: #1627
|
||||
> Change-Id: I604f2b0f8b1ccb1026b8425a14200bbd1dc5bd03
|
||||
> Signed-off-by: Barak Sason Rofman bsasonro@redhat.com
|
||||
|
||||
BUG: 1286171
|
||||
Change-Id: I604f2b0f8b1ccb1026b8425a14200bbd1dc5bd03
|
||||
Signed-off-by: Barak Sason Rofman <bsasonro@redhat.com>
|
||||
Reviewed-on: https://code.engineering.redhat.com/gerrit/216896
|
||||
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
||||
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
||||
---
|
||||
xlators/cluster/dht/src/dht-rebalance.c | 22 ++++++++++++----------
|
||||
1 file changed, 12 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c
|
||||
index abc10fc..d49a719 100644
|
||||
--- a/xlators/cluster/dht/src/dht-rebalance.c
|
||||
+++ b/xlators/cluster/dht/src/dht-rebalance.c
|
||||
@@ -3113,12 +3113,10 @@ int static gf_defrag_get_entry(xlator_t *this, int i,
|
||||
struct dht_container *tmp_container = NULL;
|
||||
|
||||
if (defrag->defrag_status != GF_DEFRAG_STATUS_STARTED) {
|
||||
- ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (dir_dfmeta->offset_var[i].readdir_done == 1) {
|
||||
- ret = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -3135,7 +3133,6 @@ int static gf_defrag_get_entry(xlator_t *this, int i,
|
||||
&(dir_dfmeta->equeue[i]), xattr_req, NULL);
|
||||
if (ret == 0) {
|
||||
dir_dfmeta->offset_var[i].readdir_done = 1;
|
||||
- ret = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -3161,7 +3158,6 @@ int static gf_defrag_get_entry(xlator_t *this, int i,
|
||||
|
||||
while (1) {
|
||||
if (defrag->defrag_status != GF_DEFRAG_STATUS_STARTED) {
|
||||
- ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -3273,12 +3269,14 @@ int static gf_defrag_get_entry(xlator_t *this, int i,
|
||||
}
|
||||
|
||||
out:
|
||||
- if (ret == 0) {
|
||||
- *container = tmp_container;
|
||||
- } else {
|
||||
- if (tmp_container) {
|
||||
+ if (defrag->defrag_status == GF_DEFRAG_STATUS_STARTED) {
|
||||
+ if (ret == 0) {
|
||||
+ *container = tmp_container;
|
||||
+ } else {
|
||||
gf_defrag_free_container(tmp_container);
|
||||
}
|
||||
+ } else {
|
||||
+ gf_defrag_free_container(tmp_container);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -3487,7 +3485,7 @@ gf_defrag_process_dir(xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,
|
||||
migrate_data, dir_dfmeta, xattr_req,
|
||||
&should_commit_hash, perrno);
|
||||
|
||||
- if (defrag->defrag_status == GF_DEFRAG_STATUS_STOPPED) {
|
||||
+ if (defrag->defrag_status != GF_DEFRAG_STATUS_STARTED) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -3947,7 +3945,7 @@ gf_defrag_fix_layout(xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,
|
||||
ret = gf_defrag_fix_layout(this, defrag, &entry_loc, fix_layout,
|
||||
migrate_data);
|
||||
|
||||
- if (defrag->defrag_status == GF_DEFRAG_STATUS_STOPPED) {
|
||||
+ if (defrag->defrag_status != GF_DEFRAG_STATUS_STARTED) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -4015,6 +4013,10 @@ gf_defrag_fix_layout(xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,
|
||||
(defrag->cmd != GF_DEFRAG_CMD_START_LAYOUT_FIX)) {
|
||||
ret = gf_defrag_process_dir(this, defrag, loc, migrate_data, &perrno);
|
||||
|
||||
+ if (defrag->defrag_status != GF_DEFRAG_STATUS_STARTED) {
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
if (ret && (ret != 2)) {
|
||||
if (perrno == ENOENT || perrno == ESTALE) {
|
||||
ret = 0;
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -237,7 +237,7 @@ Release: 0.1%{?prereltag:.%{prereltag}}%{?dist}
|
||||
%else
|
||||
Name: glusterfs
|
||||
Version: 6.0
|
||||
Release: 46%{?dist}
|
||||
Release: 47%{?dist}
|
||||
ExcludeArch: i686
|
||||
%endif
|
||||
License: GPLv2 or LGPLv3+
|
||||
@ -788,6 +788,11 @@ Patch0470: 0470-extras-snap_scheduler-changes-in-gluster-shared-stor.patch
|
||||
Patch0471: 0471-nfs-ganesha-gluster_shared_storage-fails-to-automoun.patch
|
||||
Patch0472: 0472-geo-rep-gluster_shared_storage-fails-to-automount-on.patch
|
||||
Patch0473: 0473-glusterd-Fix-Add-brick-with-increasing-replica-count.patch
|
||||
Patch0474: 0474-features-locks-posixlk-clear-lock-should-set-error-a.patch
|
||||
Patch0475: 0475-fuse-lock-interrupt-fix-flock_interrupt.t.patch
|
||||
Patch0476: 0476-mount-fuse-use-cookies-to-get-fuse-interrupt-record-.patch
|
||||
Patch0477: 0477-glusterd-snapshot-Snapshot-prevalidation-failure-not.patch
|
||||
Patch0478: 0478-DHT-Fixing-rebalance-failure-on-issuing-stop-command.patch
|
||||
|
||||
%description
|
||||
GlusterFS is a distributed file-system capable of scaling to several
|
||||
@ -2531,6 +2536,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Nov 05 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-47
|
||||
- fixes bugs bz#1286171 bz#1821743 bz#1837926
|
||||
|
||||
* Wed Oct 21 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-46
|
||||
- fixes bugs bz#1873469 bz#1881823
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user