Skip to content

Commit 7a65d56

Browse files
authored
Merge pull request moby#3990 from jedevc/tidy-error-message-read-file
gateway: restore original filename in ReadFile error message
2 parents c6a1835 + d4bcef4 commit 7a65d56

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

cache/util/fsutil.go

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,25 @@ func ReadFile(ctx context.Context, mount snapshot.Mountable, req ReadRequest) ([
5757
return errors.WithStack(err)
5858
}
5959

60-
if req.Range == nil {
61-
dt, err = os.ReadFile(fp)
62-
if err != nil {
63-
return errors.WithStack(err)
64-
}
65-
} else {
66-
f, err := os.Open(fp)
67-
if err != nil {
68-
return errors.WithStack(err)
69-
}
70-
dt, err = io.ReadAll(io.NewSectionReader(f, int64(req.Range.Offset), int64(req.Range.Length)))
71-
f.Close()
72-
if err != nil {
73-
return errors.WithStack(err)
60+
f, err := os.Open(fp)
61+
if err != nil {
62+
// The filename here is internal to the mount, so we can restore
63+
// the request base path for error reporting.
64+
// See os.DirFS.Open for details.
65+
if pe, ok := err.(*os.PathError); ok {
66+
pe.Path = req.Filename
7467
}
68+
return errors.WithStack(err)
69+
}
70+
defer f.Close()
71+
72+
var rdr io.Reader = f
73+
if req.Range != nil {
74+
rdr = io.NewSectionReader(f, int64(req.Range.Offset), int64(req.Range.Length))
75+
}
76+
dt, err = io.ReadAll(rdr)
77+
if err != nil {
78+
return errors.WithStack(err)
7579
}
7680
return nil
7781
})

0 commit comments

Comments
 (0)