diff --git a/internal/config/etcd_source.go b/internal/config/etcd_source.go index e5096c16f5..76114648c1 100644 --- a/internal/config/etcd_source.go +++ b/internal/config/etcd_source.go @@ -21,11 +21,16 @@ import ( "fmt" "strings" "sync" + "time" "github.com/milvus-io/milvus/internal/util/etcd" clientv3 "go.etcd.io/etcd/client/v3" ) +const ( + ReadConfigTimeout = 3 * time.Second +) + type EtcdSource struct { sync.RWMutex etcdCli *clientv3.Client @@ -108,7 +113,9 @@ func (es *EtcdSource) SetEventHandler(eh EventHandler) { func (es *EtcdSource) refreshConfigurations() error { prefix := es.keyPrefix + "/config" - response, err := es.etcdCli.Get(es.ctx, prefix, clientv3.WithPrefix()) + ctx, cancel := context.WithTimeout(es.ctx, ReadConfigTimeout) + defer cancel() + response, err := es.etcdCli.Get(ctx, prefix, clientv3.WithPrefix()) if err != nil { return err }