From f47f8be912f036eb69974d64dcb7d68ebc39b167 Mon Sep 17 00:00:00 2001 From: chenwanli Date: Tue, 22 Jan 2019 15:58:37 +0800 Subject: [PATCH 1/2] Fix block-waiting for leader when there are no volumes --- weed/wdclient/masterclient.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/weed/wdclient/masterclient.go b/weed/wdclient/masterclient.go index f58c28504..b26853945 100644 --- a/weed/wdclient/masterclient.go +++ b/weed/wdclient/masterclient.go @@ -63,6 +63,11 @@ func (mc *MasterClient) tryAllMasters() { return err } + if mc.currentMaster == "" { + glog.V(0).Infof("Connected to %v", master) + mc.currentMaster = master + } + for { if volumeLocation, err := stream.Recv(); err != nil { glog.V(0).Infof("failed to receive from %s: %v", master, err) @@ -78,12 +83,6 @@ func (mc *MasterClient) tryAllMasters() { for _, deletedVid := range volumeLocation.DeletedVids { mc.deleteLocation(deletedVid, loc) } - - if mc.currentMaster == "" { - glog.V(0).Infof("Connected to %v", master) - mc.currentMaster = master - } - } } From 3f56b12ed40c1cebaa669003942d14af826ff42c Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 22 Jan 2019 09:25:25 -0800 Subject: [PATCH 2/2] raft: adding idle connection time out another attempt to fix https://github.com/chrislusf/seaweedfs/issues/825 --- weed/server/raft_server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/weed/server/raft_server.go b/weed/server/raft_server.go index 2cc8252b8..68042da54 100644 --- a/weed/server/raft_server.go +++ b/weed/server/raft_server.go @@ -44,6 +44,7 @@ func NewRaftServer(r *mux.Router, peers []string, httpAddr string, dataDir strin var err error transporter := raft.NewHTTPTransporter("/cluster", time.Second) transporter.Transport.MaxIdleConnsPerHost = 1024 + transporter.Transport.IdleConnTimeout = time.Second glog.V(0).Infof("Starting RaftServer with %v", httpAddr) // Clear old cluster configurations if peers are changed