diff --git a/0405-glusterfsd-add-missing-UNLOCK.patch b/0405-glusterfsd-add-missing-UNLOCK.patch new file mode 100644 index 0000000..100e9eb --- /dev/null +++ b/0405-glusterfsd-add-missing-UNLOCK.patch @@ -0,0 +1,54 @@ +From 331b648352fb0a2cce1ac671f24adf46b1b76b38 Mon Sep 17 00:00:00 2001 +From: Milind Changire +Date: Tue, 23 Oct 2018 12:47:34 +0530 +Subject: [PATCH 405/406] glusterfsd: add missing UNLOCK + +Reproducer steps: (by Sanju Rakonde) +1. enable brick mux +2. create 3 volumes +3. start all the 3 volumes +4. stop 1st volume, it will be success +5. stop second volume, it will time out + +Problem: +Deadlock in glusterfs_handle_terminate() during volume stop of 2nd +successive volume resulting in timeout at gluster CLI. + +Solution: +Add missing UNLOCK to xlator_mem_cleanup() + +NOTE: +Upstream code review by Kaushal Madappa has confirmed that the code is +good at upstream. This needs to be a downstream only patch, however, +this patch is not required at a rebase so will not be marking it as +such. + +Upstream patch: https://review.gluster.org/c/glusterfs/+/19734 +Downstream patch: https://code.engineering.redhat.com/gerrit/152908 + +BUG: 1641489 +Change-Id: I7281aa6f03edcb720f9eca3d274025166ff0b601 +Signed-off-by: Milind Changire +Reviewed-on: https://code.engineering.redhat.com/gerrit/153643 +Tested-by: RHGS Build Bot +Reviewed-by: Kaushal Madappa +Reviewed-by: Sunil Kumar Heggodu Gopala Acharya +--- + glusterfsd/src/glusterfsd-mgmt.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c +index e3fceeb..b952526 100644 +--- a/glusterfsd/src/glusterfsd-mgmt.c ++++ b/glusterfsd/src/glusterfsd-mgmt.c +@@ -278,6 +278,7 @@ xlator_mem_cleanup (xlator_t *this) { + break; + } + } ++ UNLOCK (&ctx->volfile_lock); + } + } + +-- +1.8.3.1 + diff --git a/0406-glusterd-improve-logging-for-stage_deleted-flag.patch b/0406-glusterd-improve-logging-for-stage_deleted-flag.patch new file mode 100644 index 0000000..ee4aac5 --- /dev/null +++ b/0406-glusterd-improve-logging-for-stage_deleted-flag.patch @@ -0,0 +1,55 @@ +From 33c75991d92229dc65b24535b8f1d7194b23beb6 Mon Sep 17 00:00:00 2001 +From: Sanju Rakonde +Date: Tue, 23 Oct 2018 11:50:37 +0530 +Subject: [PATCH 406/406] glusterd: improve logging for stage_deleted flag + +> Change-Id: I5f0667a47ddd24cb00949c875c19f3d1dbd8d603 +> BUG: bz#1605077 +> Signed-off-by: Sanju Rakonde + +upstream patch: https://review.gluster.org/#/c/glusterfs/+/21463/ + +Change-Id: I5f0667a47ddd24cb00949c875c19f3d1dbd8d603 +BUG: 1618221 +Signed-off-by: Sanju Rakonde +Reviewed-on: https://code.engineering.redhat.com/gerrit/153671 +Tested-by: RHGS Build Bot +Reviewed-by: Sunil Kumar Heggodu Gopala Acharya +--- + xlators/mgmt/glusterd/src/glusterd-locks.c | 4 ++++ + xlators/mgmt/glusterd/src/glusterd-volume-ops.c | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/xlators/mgmt/glusterd/src/glusterd-locks.c b/xlators/mgmt/glusterd/src/glusterd-locks.c +index f4e0225..d75452d 100644 +--- a/xlators/mgmt/glusterd/src/glusterd-locks.c ++++ b/xlators/mgmt/glusterd/src/glusterd-locks.c +@@ -913,6 +913,10 @@ glusterd_mgmt_v3_unlock (const char *name, uuid_t uuid, char *type) + * stage_deleted flag is set back to false + */ + volinfo->stage_deleted = _gf_false; ++ gf_log(this->name, GF_LOG_INFO, ++ "Volume %s still exist, setting " ++ "stage deleted flag to false for the volume %s", ++ volinfo->volname, volinfo->volname); + } + ret = 0; + out: +diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +index 94e07cb..36d9bff 100644 +--- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c ++++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +@@ -1829,6 +1829,10 @@ glusterd_op_stage_delete_volume (dict_t *dict, char **op_errstr) + goto out; + } + volinfo->stage_deleted = _gf_true; ++ gf_log(this->name, GF_LOG_INFO, ++ "Setting stage deleted flag to true for " ++ "volume %s", ++ volinfo->volname); + ret = 0; + + out: +-- +1.8.3.1 + diff --git a/glusterfs.spec b/glusterfs.spec index 34bc32b..1ce1f5d 100644 --- a/glusterfs.spec +++ b/glusterfs.spec @@ -192,7 +192,7 @@ Release: 0.1%{?prereltag:.%{prereltag}}%{?dist} %else Name: glusterfs Version: 3.12.2 -Release: 23%{?dist} +Release: 24%{?dist} %endif License: GPLv2 or LGPLv3+ Group: System Environment/Base @@ -669,6 +669,8 @@ Patch0401: 0401-client_t.c-fix-the-format-error.patch Patch0402: 0402-core-glusterfsd-keeping-fd-open-in-index-xlator.patch Patch0403: 0403-afr-prevent-winding-inodelks-twice-for-arbiter-volum.patch Patch0404: 0404-core-Resolve-some-warnings-to-release-a-build.patch +Patch0405: 0405-glusterfsd-add-missing-UNLOCK.patch +Patch0406: 0406-glusterd-improve-logging-for-stage_deleted-flag.patch %description GlusterFS is a distributed file-system capable of scaling to several @@ -2617,6 +2619,9 @@ fi %endif %changelog +* Tue Oct 23 2018 Milind Changire - 3.12.2-24 +- fixes bugs bz#1618221 bz#1641489 + * Tue Oct 16 2018 Sunil Kumar Acharya - 3.12.2-23 - fixes bugs bz#1631372 bz#1636902