diff options
author | Ravishankar N <ravishankar@redhat.com> | 2015-12-23 13:49:14 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2016-04-27 00:35:19 -0700 |
commit | 3c35329feb4dd479c9e4856ee27fa4b12c708db2 (patch) | |
tree | 99ffea033b1982088344aaf584f8cd193f385aff /xlators/cluster/afr/src/afr.h | |
parent | 41fef03eb929a08588a4f4ebf4638096a5918a62 (diff) |
afr: propagate child up event after timeout
Problem: During mount, afr waits for response from all its children before
notifying the parent xlator. In a 1x2 replica volume , if one of the nodes is
down, the mount will hang for more than a minute until child down is received
from the client xlator for that node.
Fix:
When parent up is received by afr, start a 10 second timer. In the timer call
back, if we receive a successful child up from atleast one brick, propagate the
event to the parent xlator.
Change-Id: I31e57c8802c1a03a4a5d581ee4ab82f3a9c8799d
BUG: 1054694
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/11113
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Smoke: Gluster Build System <jenkins@build.gluster.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr.h')
-rw-r--r-- | xlators/cluster/afr/src/afr.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index ef0d9f74e6e..0a872a98284 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -99,8 +99,7 @@ typedef struct _afr_private { unsigned int wait_count; /* # of servers to wait for success */ - uint64_t up_count; /* number of CHILD_UPs we have seen */ - uint64_t down_count; /* number of CHILD_DOWNs we have seen */ + gf_timer_t *timer; /* launched when parent up is received */ gf_boolean_t optimistic_change_log; gf_boolean_t eager_lock; |