diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-09-19 00:03:00 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-09-19 00:03:00 -0700 |
| commit | 2c21eb19719d06a2fbf0b9e75cba46aa5e4e01c2 (patch) | |
| tree | bdac398e1103157b6ec2482503c603eaa6bcb62c /weed/server/volume_grpc_client_to_master.go | |
| parent | 2cbd1cf121921fd4c7f5c53ad0f0e64eaa85bcf4 (diff) | |
| download | seaweedfs-2c21eb19719d06a2fbf0b9e75cba46aa5e4e01c2.tar.xz seaweedfs-2c21eb19719d06a2fbf0b9e75cba46aa5e4e01c2.zip | |
volume: get metrics configuration from master
fix https://github.com/chrislusf/seaweedfs/issues/1354
Diffstat (limited to 'weed/server/volume_grpc_client_to_master.go')
| -rw-r--r-- | weed/server/volume_grpc_client_to_master.go | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/weed/server/volume_grpc_client_to_master.go b/weed/server/volume_grpc_client_to_master.go index 0c0cc39c1..8698a4c64 100644 --- a/weed/server/volume_grpc_client_to_master.go +++ b/weed/server/volume_grpc_client_to_master.go @@ -24,21 +24,25 @@ func (vs *VolumeServer) GetMaster() string { } func (vs *VolumeServer) checkWithMaster() (err error) { - for _, master := range vs.SeedMasterNodes { - err = operation.WithMasterServerClient(master, vs.grpcDialOption, func(masterClient master_pb.SeaweedClient) error { - resp, err := masterClient.GetMasterConfiguration(context.Background(), &master_pb.GetMasterConfigurationRequest{}) - if err != nil { - return fmt.Errorf("get master %s configuration: %v", master, err) + isConnected := false + for !isConnected { + for _, master := range vs.SeedMasterNodes { + err = operation.WithMasterServerClient(master, vs.grpcDialOption, func(masterClient master_pb.SeaweedClient) error { + resp, err := masterClient.GetMasterConfiguration(context.Background(), &master_pb.GetMasterConfigurationRequest{}) + if err != nil { + return fmt.Errorf("get master %s configuration: %v", master, err) + } + vs.metricsAddress, vs.metricsIntervalSec = resp.MetricsAddress, int(resp.MetricsIntervalSeconds) + backend.LoadFromPbStorageBackends(resp.StorageBackends) + return nil + }) + if err == nil { + return + } else { + glog.V(0).Infof("checkWithMaster %s: %v", master, err) } - vs.MetricsAddress, vs.MetricsIntervalSec = resp.MetricsAddress, int(resp.MetricsIntervalSeconds) - backend.LoadFromPbStorageBackends(resp.StorageBackends) - return nil - }) - if err == nil { - return - } else { - glog.V(0).Infof("checkWithMaster %s: %v", master, err) } + time.Sleep(1790 * time.Millisecond) } return } |
