diff --git a/client/pkg/fileutil/lock_windows.go b/client/pkg/fileutil/lock_windows.go index 4e938b67c..eb65029c4 100644 --- a/client/pkg/fileutil/lock_windows.go +++ b/client/pkg/fileutil/lock_windows.go @@ -54,7 +54,7 @@ func LockFile(path string, flag int, perm os.FileMode) (*LockedFile, error) { func open(path string, flag int, perm os.FileMode) (*os.File, error) { if path == "" { - return nil, fmt.Errorf("cannot open empty filename") + return nil, errors.New("cannot open empty filename") } var access uint32 switch flag { diff --git a/client/pkg/testutil/leak.go b/client/pkg/testutil/leak.go index e9ffbd0ff..8c08fbd51 100644 --- a/client/pkg/testutil/leak.go +++ b/client/pkg/testutil/leak.go @@ -48,7 +48,7 @@ func CheckLeakedGoroutine() bool { stackCount[normalized]++ } - fmt.Fprintf(os.Stderr, "Unexpected goroutines running after all test(s).\n") + fmt.Fprint(os.Stderr, "Unexpected goroutines running after all test(s).\n") for stack, count := range stackCount { fmt.Fprintf(os.Stderr, "%d instances of:\n%s\n", count, stack) } diff --git a/client/pkg/transport/keepalive_listener.go b/client/pkg/transport/keepalive_listener.go index 8e863d2c9..2006a56b7 100644 --- a/client/pkg/transport/keepalive_listener.go +++ b/client/pkg/transport/keepalive_listener.go @@ -16,6 +16,7 @@ package transport import ( "crypto/tls" + "errors" "fmt" "net" "time" @@ -38,7 +39,7 @@ func NewKeepAliveListener(l net.Listener, scheme string, tlscfg *tls.Config) (ne if scheme == "https" { if tlscfg == nil { - return nil, fmt.Errorf("cannot listen on TLS for given listener: KeyFile and CertFile are not presented") + return nil, errors.New("cannot listen on TLS for given listener: KeyFile and CertFile are not presented") } return newTLSKeepaliveListener(kal, tlscfg), nil } diff --git a/client/pkg/transport/listener.go b/client/pkg/transport/listener.go index 5b01ddaba..398cbc559 100644 --- a/client/pkg/transport/listener.go +++ b/client/pkg/transport/listener.go @@ -200,7 +200,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali verify.Assert(lg != nil, "nil log isn't allowed") info.Logger = lg if selfSignedCertValidity == 0 { - err = fmt.Errorf("selfSignedCertValidity is invalid,it should be greater than 0") + err = errors.New("selfSignedCertValidity is invalid,it should be greater than 0") info.Logger.Warn( "cannot generate cert", zap.Error(err), diff --git a/client/pkg/transport/sockopt_solaris.go b/client/pkg/transport/sockopt_solaris.go index 495c73636..e20f6366f 100644 --- a/client/pkg/transport/sockopt_solaris.go +++ b/client/pkg/transport/sockopt_solaris.go @@ -18,14 +18,14 @@ package transport import ( - "fmt" + "errors" "syscall" "golang.org/x/sys/unix" ) func setReusePort(network, address string, c syscall.RawConn) error { - return fmt.Errorf("port reuse is not supported on Solaris") + return errors.New("port reuse is not supported on Solaris") } func setReuseAddress(network, address string, conn syscall.RawConn) error { diff --git a/client/pkg/transport/sockopt_windows.go b/client/pkg/transport/sockopt_windows.go index 3e28ed48b..4878e4b62 100644 --- a/client/pkg/transport/sockopt_windows.go +++ b/client/pkg/transport/sockopt_windows.go @@ -18,16 +18,16 @@ package transport import ( - "fmt" + "errors" "syscall" ) func setReusePort(network, address string, c syscall.RawConn) error { - return fmt.Errorf("port reuse is not supported on Windows") + return errors.New("port reuse is not supported on Windows") } // Windows supports SO_REUSEADDR, but it may cause undefined behavior, as // there is no protection against port hijacking. func setReuseAddress(network, addr string, conn syscall.RawConn) error { - return fmt.Errorf("address reuse is not supported on Windows") + return errors.New("address reuse is not supported on Windows") } diff --git a/client/pkg/transport/tls.go b/client/pkg/transport/tls.go index 8c3a35b14..d5375863f 100644 --- a/client/pkg/transport/tls.go +++ b/client/pkg/transport/tls.go @@ -16,6 +16,7 @@ package transport import ( "context" + "errors" "fmt" "strings" "time" @@ -46,7 +47,7 @@ func ValidateSecureEndpoints(tlsInfo TLSInfo, eps []string) ([]string, error) { endpoints = append(endpoints, ep) } if len(errs) != 0 { - err = fmt.Errorf("%s", strings.Join(errs, ",")) + err = errors.New(strings.Join(errs, ",")) } return endpoints, err } diff --git a/client/v2/client.go b/client/v2/client.go index c34bc9d7c..a93c528fb 100644 --- a/client/v2/client.go +++ b/client/v2/client.go @@ -649,7 +649,7 @@ func (r *redirectFollowingHTTPClient) Do(ctx context.Context, act httpAction) (* if resp.StatusCode/100 == 3 { hdr := resp.Header.Get("Location") if hdr == "" { - return nil, nil, fmt.Errorf("location header not set") + return nil, nil, errors.New("location header not set") } loc, err := url.Parse(hdr) if err != nil { diff --git a/client/v2/client_test.go b/client/v2/client_test.go index 48e804d26..abfcff93d 100644 --- a/client/v2/client_test.go +++ b/client/v2/client_test.go @@ -17,7 +17,6 @@ package client import ( "context" "errors" - "fmt" "io" "math/rand" "net/http" @@ -429,7 +428,7 @@ func TestHTTPClusterClientDo(t *testing.T) { rand: rand.New(rand.NewSource(0)), }, ctx: context.WithValue(context.Background(), &oneShotCtxValue, &oneShotCtxValue), - wantErr: fmt.Errorf("client: etcd member returns server error [Bad Gateway]"), + wantErr: errors.New("client: etcd member returns server error [Bad Gateway]"), wantPinned: 1, }, } diff --git a/client/v3/client.go b/client/v3/client.go index 23069468b..50bf342ca 100644 --- a/client/v3/client.go +++ b/client/v3/client.go @@ -410,7 +410,7 @@ func newClient(cfg *Config) (*Client, error) { if len(cfg.Endpoints) < 1 { client.cancel() - return nil, fmt.Errorf("at least one Endpoint is required in client config") + return nil, errors.New("at least one Endpoint is required in client config") } client.SetEndpoints(cfg.Endpoints...) diff --git a/client/v3/client_test.go b/client/v3/client_test.go index 00ab263ea..8534536e3 100644 --- a/client/v3/client_test.go +++ b/client/v3/client_test.go @@ -16,7 +16,7 @@ package clientv3 import ( "context" - "fmt" + "errors" "io" "net" "sync" @@ -152,7 +152,7 @@ func TestDialNoTimeout(t *testing.T) { } func TestIsHaltErr(t *testing.T) { - if !isHaltErr(context.TODO(), fmt.Errorf("etcdserver: some etcdserver error")) { + if !isHaltErr(context.TODO(), errors.New("etcdserver: some etcdserver error")) { t.Errorf(`error prefixed with "etcdserver: " should be Halted by default`) } if isHaltErr(context.TODO(), rpctypes.ErrGRPCStopped) { diff --git a/client/v3/concurrency/key.go b/client/v3/concurrency/key.go index 20825950f..0045521af 100644 --- a/client/v3/concurrency/key.go +++ b/client/v3/concurrency/key.go @@ -16,7 +16,7 @@ package concurrency import ( "context" - "fmt" + "errors" pb "go.etcd.io/etcd/api/v3/etcdserverpb" "go.etcd.io/etcd/api/v3/mvccpb" @@ -42,7 +42,7 @@ func waitDelete(ctx context.Context, client *v3.Client, key string, rev int64) e if err := ctx.Err(); err != nil { return err } - return fmt.Errorf("lost watcher waiting for delete") + return errors.New("lost watcher waiting for delete") } // waitDeletes efficiently waits until all keys matching the prefix and no greater diff --git a/client/v3/logger.go b/client/v3/logger.go index eaa35f2d3..7c688c356 100644 --- a/client/v3/logger.go +++ b/client/v3/logger.go @@ -52,7 +52,7 @@ func etcdClientDebugLevel() zapcore.Level { } var l zapcore.Level if err := l.Set(envLevel); err != nil { - log.Printf("Invalid value for environment variable 'ETCD_CLIENT_DEBUG'. Using default level: 'info'") + log.Print("Invalid value for environment variable 'ETCD_CLIENT_DEBUG'. Using default level: 'info'") return zapcore.InfoLevel } return l diff --git a/client/v3/watch.go b/client/v3/watch.go index 44100d042..bb0b5485e 100644 --- a/client/v3/watch.go +++ b/client/v3/watch.go @@ -408,7 +408,7 @@ func (w *watcher) RequestProgress(ctx context.Context) (err error) { w.mu.Lock() if w.streams == nil { w.mu.Unlock() - return fmt.Errorf("no stream found for context") + return errors.New("no stream found for context") } wgs := w.streams[ctxKey] if wgs == nil {