summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/afr/src/afr.h
diff options
context:
space:
mode:
authorRavishankar N <ravishankar@redhat.com>2015-12-23 13:49:14 +0530
committerPranith Kumar Karampuri <pkarampu@redhat.com>2016-04-27 00:35:19 -0700
commit3c35329feb4dd479c9e4856ee27fa4b12c708db2 (patch)
tree99ffea033b1982088344aaf584f8cd193f385aff /xlators/cluster/afr/src/afr.h
parent41fef03eb929a08588a4f4ebf4638096a5918a62 (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.h3
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;