diff --git a/cmd/ipfs/util/ulimit.go b/cmd/ipfs/util/ulimit.go index a00e810761d..188444d6774 100644 --- a/cmd/ipfs/util/ulimit.go +++ b/cmd/ipfs/util/ulimit.go @@ -82,7 +82,7 @@ func ManageFdLimit() (changed bool, newLimit uint64, err error) { // set the soft value err = setLimit(targetLimit, hard) if err != nil { - err = fmt.Errorf("error setting ulimit without hard limit: %s", err) + err = fmt.Errorf("error setting ulimit without hard limit: %w", err) break } newLimit = targetLimit @@ -107,7 +107,7 @@ func ManageFdLimit() (changed bool, newLimit uint64, err error) { break } default: - err = fmt.Errorf("error setting: ulimit: %s", err) + err = fmt.Errorf("error setting: ulimit: %w", err) } return newLimit > 0, newLimit, err diff --git a/config/bootstrap_peers.go b/config/bootstrap_peers.go index 6222cd6232a..6b9434ae5cb 100644 --- a/config/bootstrap_peers.go +++ b/config/bootstrap_peers.go @@ -36,7 +36,7 @@ func (c *Config) BootstrapPeers() ([]peer.AddrInfo, error) { func DefaultBootstrapPeers() ([]peer.AddrInfo, error) { ps, err := ParseBootstrapPeers(DefaultBootstrapAddresses) if err != nil { - return nil, fmt.Errorf(`failed to parse hardcoded bootstrap peers: %s + return nil, fmt.Errorf(`failed to parse hardcoded bootstrap peers: %w This is a problem with the ipfs codebase. Please report it to the dev team`, err) } return ps, nil diff --git a/config/config.go b/config/config.go index 035fbe2966c..1951784dd1d 100644 --- a/config/config.go +++ b/config/config.go @@ -117,7 +117,7 @@ func FromMap(v map[string]interface{}) (*Config, error) { } var conf Config if err := json.NewDecoder(buf).Decode(&conf); err != nil { - return nil, fmt.Errorf("failure to decode config: %s", err) + return nil, fmt.Errorf("failure to decode config: %w", err) } return &conf, nil } @@ -129,7 +129,7 @@ func ToMap(conf *Config) (map[string]interface{}, error) { } var m map[string]interface{} if err := json.NewDecoder(buf).Decode(&m); err != nil { - return nil, fmt.Errorf("failure to decode config: %s", err) + return nil, fmt.Errorf("failure to decode config: %w", err) } return m, nil } @@ -140,11 +140,11 @@ func (c *Config) Clone() (*Config, error) { var buf bytes.Buffer if err := json.NewEncoder(&buf).Encode(c); err != nil { - return nil, fmt.Errorf("failure to encode config: %s", err) + return nil, fmt.Errorf("failure to encode config: %w", err) } if err := json.NewDecoder(&buf).Decode(&newConfig); err != nil { - return nil, fmt.Errorf("failure to decode config: %s", err) + return nil, fmt.Errorf("failure to decode config: %w", err) } return &newConfig, nil diff --git a/config/serialize/serialize.go b/config/serialize/serialize.go index 616e529cbd0..7cb479f6bad 100644 --- a/config/serialize/serialize.go +++ b/config/serialize/serialize.go @@ -28,7 +28,7 @@ func ReadConfigFile(filename string, cfg interface{}) error { } defer f.Close() if err := json.NewDecoder(f).Decode(cfg); err != nil { - return fmt.Errorf("failure to decode config: %s", err) + return fmt.Errorf("failure to decode config: %w", err) } return nil } diff --git a/repo/fsrepo/fsrepo.go b/repo/fsrepo/fsrepo.go index c2f7ca72aef..13e7e415063 100644 --- a/repo/fsrepo/fsrepo.go +++ b/repo/fsrepo/fsrepo.go @@ -449,7 +449,7 @@ func (r *FSRepo) openConfig() error { func (r *FSRepo) openUserResourceOverrides() error { // This filepath is documented in docs/libp2p-resource-management.md and be kept in sync. err := serialize.ReadConfigFile(filepath.Join(r.path, "libp2p-resource-limit-overrides.json"), &r.userResourceOverrides) - if err == serialize.ErrNotInitialized { + if errors.Is(err, serialize.ErrNotInitialized) { err = nil } return err diff --git a/repo/fsrepo/migrations/httpfetcher.go b/repo/fsrepo/migrations/httpfetcher.go index 588a01eadfd..1f3d575a949 100644 --- a/repo/fsrepo/migrations/httpfetcher.go +++ b/repo/fsrepo/migrations/httpfetcher.go @@ -66,7 +66,7 @@ func (f *HttpFetcher) Fetch(ctx context.Context, filePath string) ([]byte, error req, err := http.NewRequestWithContext(ctx, http.MethodGet, gwURL, nil) if err != nil { - return nil, fmt.Errorf("http.NewRequest error: %s", err) + return nil, fmt.Errorf("http.NewRequest error: %w", err) } if f.userAgent != "" { @@ -75,14 +75,14 @@ func (f *HttpFetcher) Fetch(ctx context.Context, filePath string) ([]byte, error resp, err := http.DefaultClient.Do(req) if err != nil { - return nil, fmt.Errorf("http.DefaultClient.Do error: %s", err) + return nil, fmt.Errorf("http.DefaultClient.Do error: %w", err) } if resp.StatusCode >= 400 { defer resp.Body.Close() mes, err := io.ReadAll(resp.Body) if err != nil { - return nil, fmt.Errorf("error reading error body: %s", err) + return nil, fmt.Errorf("error reading error body: %w", err) } return nil, fmt.Errorf("GET %s error: %s: %s", gwURL, resp.Status, string(mes)) } diff --git a/repo/fsrepo/migrations/migrations.go b/repo/fsrepo/migrations/migrations.go index 14cc6c2de89..6894d73a777 100644 --- a/repo/fsrepo/migrations/migrations.go +++ b/repo/fsrepo/migrations/migrations.go @@ -32,7 +32,7 @@ func RunMigration(ctx context.Context, fetcher Fetcher, targetVer int, ipfsDir s } fromVer, err := RepoVersion(ipfsDir) if err != nil { - return fmt.Errorf("could not get repo version: %s", err) + return fmt.Errorf("could not get repo version: %w", err) } if fromVer == targetVer { // repo already at target version number @@ -87,7 +87,7 @@ func RunMigration(ctx context.Context, fetcher Fetcher, targetVer int, ipfsDir s logger.Println("Running migration", migration, "...") err = runMigration(ctx, binPaths[migration], ipfsDir, revert, logger) if err != nil { - return fmt.Errorf("migration %s failed: %s", migration, err) + return fmt.Errorf("migration %s failed: %w", migration, err) } } logger.Printf("Success: fs-repo migrated to version %d.\n", targetVer) @@ -98,7 +98,7 @@ func RunMigration(ctx context.Context, fetcher Fetcher, targetVer int, ipfsDir s func NeedMigration(target int) (bool, error) { vnum, err := RepoVersion("") if err != nil { - return false, fmt.Errorf("could not get repo version: %s", err) + return false, fmt.Errorf("could not get repo version: %w", err) } return vnum != target, nil @@ -171,7 +171,7 @@ func GetMigrationFetcher(downloadSources []string, distPath string, newIpfsFetch default: u, err := url.Parse(src) if err != nil { - return nil, fmt.Errorf("bad gateway address: %s", err) + return nil, fmt.Errorf("bad gateway address: %w", err) } switch u.Scheme { case "": @@ -293,7 +293,7 @@ func fetchMigrations(ctx context.Context, fetcher Fetcher, needed []string, dest if len(fails) != 0 { err = fmt.Errorf("failed to download migrations: %s", strings.Join(fails, " ")) if ctx.Err() != nil { - err = fmt.Errorf("%s, %s", ctx.Err(), err) + err = fmt.Errorf("%s, %w", ctx.Err(), err) } return nil, err } diff --git a/repo/fsrepo/migrations/versions.go b/repo/fsrepo/migrations/versions.go index af5bbbbd969..056671c0704 100644 --- a/repo/fsrepo/migrations/versions.go +++ b/repo/fsrepo/migrations/versions.go @@ -57,7 +57,7 @@ func DistVersions(ctx context.Context, fetcher Fetcher, dist string, sortDesc bo vers = append(vers, ver) } if scan.Err() != nil { - return nil, fmt.Errorf("could not read versions: %s", scan.Err()) + return nil, fmt.Errorf("could not read versions: %w", scan.Err()) } if sortDesc { diff --git a/routing/composer.go b/routing/composer.go index 92c351fc53c..3541fc7dd24 100644 --- a/routing/composer.go +++ b/routing/composer.go @@ -2,6 +2,7 @@ package routing import ( "context" + "errors" "github.com/hashicorp/go-multierror" "github.com/ipfs/go-cid" @@ -103,7 +104,7 @@ func (c *Composer) SearchValue(ctx context.Context, key string, opts ...routing. ch, err := c.GetValueRouter.SearchValue(ctx, key, opts...) // avoid nil channels on implementations not supporting SearchValue method. - if err == routing.ErrNotFound && ch == nil { + if errors.Is(err, routing.ErrNotFound) && ch == nil { out := make(chan []byte) close(out) return out, err diff --git a/tar/format.go b/tar/format.go index 626e0982b51..bde92398057 100644 --- a/tar/format.go +++ b/tar/format.go @@ -175,7 +175,7 @@ func (tr *tarReader) Read(b []byte) (int, error) { tr.hdrBuf = bytes.NewReader(hndpb.Data()) dataNd, err := hndpb.GetLinkedProtoNode(tr.ctx, tr.ds, "data") - if err != nil && err != dag.ErrLinkNotFound { + if err != nil && !errors.Is(err, dag.ErrLinkNotFound) { return 0, err }