aboutsummaryrefslogtreecommitdiff
path: root/weed/server
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2017-01-10 01:30:00 -0800
committerChris Lu <chris.lu@gmail.com>2017-01-10 01:30:00 -0800
commite767c3ea4fd04a9cb01ec6698b4582663bd98bb6 (patch)
treebf92ed8bc20941bea0f0fef051b40844f86f82c3 /weed/server
parente46c3415f752e2e0c252c420adb882c4bcb7416b (diff)
downloadseaweedfs-e767c3ea4fd04a9cb01ec6698b4582663bd98bb6.tar.xz
seaweedfs-e767c3ea4fd04a9cb01ec6698b4582663bd98bb6.zip
disable master connection timeout
temporarily disable master connection timeout due to heartbeat connection timeout
Diffstat (limited to 'weed/server')
-rw-r--r--weed/server/volume_grpc_client.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/weed/server/volume_grpc_client.go b/weed/server/volume_grpc_client.go
index 54e2c2f75..ac3871c8c 100644
--- a/weed/server/volume_grpc_client.go
+++ b/weed/server/volume_grpc_client.go
@@ -53,10 +53,13 @@ func (vs *VolumeServer) doHeartbeat(sleepInterval time.Duration) error {
vs.store.Client = stream
defer func() { vs.store.Client = nil }()
+ doneChan := make(chan error, 1)
+
go func() {
for {
in, err := stream.Recv()
if err != nil {
+ doneChan <- err
return
}
vs.store.VolumeSizeLimit = in.GetVolumeSizeLimit()
@@ -64,11 +67,22 @@ func (vs *VolumeServer) doHeartbeat(sleepInterval time.Duration) error {
}
}()
+ if err = stream.Send(vs.store.CollectHeartbeat()); err != nil {
+ glog.V(0).Infof("Volume Server Failed to talk with master %s: %v", masterNode, err)
+ return err
+ }
+
+ tickChan := time.NewTimer(sleepInterval).C
+
for {
- if err = stream.Send(vs.store.CollectHeartbeat()); err != nil {
- glog.V(0).Infof("Volume Server Failed to talk with master %s: %v", masterNode, err)
+ select {
+ case <-tickChan:
+ if err = stream.Send(vs.store.CollectHeartbeat()); err != nil {
+ glog.V(0).Infof("Volume Server Failed to talk with master %s: %v", masterNode, err)
+ return err
+ }
+ case err := <-doneChan:
return err
}
- time.Sleep(sleepInterval)
}
}