diff --git a/build/bazelutil/nogo_config.json b/build/bazelutil/nogo_config.json index d5bb14502380..1636b4645dd2 100644 --- a/build/bazelutil/nogo_config.json +++ b/build/bazelutil/nogo_config.json @@ -772,11 +772,6 @@ "pkg/.*_generated\\.go$": "generated code", "pkg/roachprod/vm/aws/embedded\\.go$": "generated code", "pkg/security/securitytest/embedded\\.go$": "generated code", - "pkg/security/securityassets/security_assets.go$": "excluded until all uses of io/ioutil are replaced", - "pkg/security/securitytest/securitytest.go$": "excluded until all uses of io/ioutil are replaced", - "pkg/server/dumpstore/dumpstore.go$": "excluded until all uses of io/ioutil are replaced", - "pkg/server/dumpstore/dumpstore_test.go$": "excluded until all uses of io/ioutil are replaced", - "pkg/server/profiler/profilestore_test.go$": "excluded until all uses of io/ioutil are replaced", "pkg/util/bulk/tracing_aggregator.go$":"temporary exclusion until #100438 is resolved", "pkg/util/log/file_api.go$": "excluded until all uses of io/ioutil are replaced", "pkg/build/bazel/bazel\\.go$": "Runfile function deprecated" diff --git a/pkg/security/securityassets/security_assets.go b/pkg/security/securityassets/security_assets.go index ef5e7c15e0b4..4ca20de27e5d 100644 --- a/pkg/security/securityassets/security_assets.go +++ b/pkg/security/securityassets/security_assets.go @@ -6,7 +6,7 @@ package securityassets import ( - "io/ioutil" + "io/fs" "os" "github.com/cockroachdb/errors/oserror" @@ -21,7 +21,7 @@ type Loader struct { // defaultLoader uses real filesystem calls. var defaultLoader = Loader{ - ReadDir: ioutil.ReadDir, + ReadDir: readDir, ReadFile: os.ReadFile, Stat: os.Stat, } @@ -55,3 +55,23 @@ func (al Loader) FileExists(filename string) (bool, error) { } return true, nil } + +// readDir reads the directory named by dirname and returns a list of +// fs.FileInfo for the directory's contents, sorted by filename. If an error +// occurs reading the directory, ReadDir returns no directory entries along with +// the error. +func readDir(dirname string) ([]os.FileInfo, error) { + entries, err := os.ReadDir(dirname) + if err != nil { + return nil, err + } + infos := make([]fs.FileInfo, 0, len(entries)) + for _, entry := range entries { + info, err := entry.Info() + if err != nil { + return nil, err + } + infos = append(infos, info) + } + return infos, nil +} diff --git a/pkg/server/dumpstore/dumpstore.go b/pkg/server/dumpstore/dumpstore.go index 0fa43e0b98ab..db4813b4504a 100644 --- a/pkg/server/dumpstore/dumpstore.go +++ b/pkg/server/dumpstore/dumpstore.go @@ -7,7 +7,7 @@ package dumpstore import ( "context" - "io/ioutil" + "io/fs" "os" "path/filepath" "time" @@ -85,11 +85,20 @@ func (s *DumpStore) GetFullPath(fileName string) string { func (s *DumpStore) GC(ctx context.Context, now time.Time, dumper Dumper) { // NB: ioutil.ReadDir sorts the file names in ascending order. // This brings the oldest files first. - files, err := ioutil.ReadDir(s.dir) + entries, err := os.ReadDir(s.dir) if err != nil { log.Dev.Warningf(ctx, "%v", err) return } + files := make([]fs.FileInfo, 0, len(entries)) + for _, entry := range entries { + info, err := entry.Info() + if err != nil { + log.Dev.Warningf(ctx, "%v", err) + return + } + files = append(files, info) + } maxS := s.maxCombinedFileSizeSetting.Get(&s.st.SV) diff --git a/pkg/server/dumpstore/dumpstore_test.go b/pkg/server/dumpstore/dumpstore_test.go index 928fa991bd1e..53e65c098da3 100644 --- a/pkg/server/dumpstore/dumpstore_test.go +++ b/pkg/server/dumpstore/dumpstore_test.go @@ -8,7 +8,7 @@ package dumpstore import ( "context" "fmt" - "io/ioutil" + "io/fs" "os" "path/filepath" "strings" @@ -187,9 +187,17 @@ func populate(t *testing.T, dirName string, fileNames []string, sizes []int64) [ } // Retrieve the file list for the remainder of the test. - files, err := ioutil.ReadDir(dirName) + entries, err := os.ReadDir(dirName) if err != nil { t.Fatal(err) } + files := make([]fs.FileInfo, 0, len(entries)) + for _, entry := range entries { + info, err := entry.Info() + if err != nil { + t.Fatal(err) + } + files = append(files, info) + } return files } diff --git a/pkg/server/profiler/profilestore_test.go b/pkg/server/profiler/profilestore_test.go index 1ad48726258a..19539fb96f3a 100644 --- a/pkg/server/profiler/profilestore_test.go +++ b/pkg/server/profiler/profilestore_test.go @@ -8,7 +8,7 @@ package profiler import ( "context" "fmt" - "io/ioutil" + "io/fs" "os" "path/filepath" "testing" @@ -221,9 +221,17 @@ func populate(t *testing.T, dirName string, fileNames []string) []os.FileInfo { } // Retrieve the file list for the remainder of the test. - files, err := ioutil.ReadDir(dirName) + entries, err := os.ReadDir(dirName) if err != nil { t.Fatal(err) } + files := make([]fs.FileInfo, 0, len(entries)) + for _, entry := range entries { + info, err := entry.Info() + if err != nil { + t.Fatal(err) + } + files = append(files, info) + } return files }