in cache build ranges metadata as needed (#9698)

This commit is contained in:
Erkki Eilonen 2020-05-25 14:17:03 +07:00 committed by GitHub
parent 1868c7016d
commit 301de169e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -498,10 +498,14 @@ func (c *diskCache) saveMetadata(ctx context.Context, bucket, object string, met
}
// increment hits
if rs != nil {
if m.Ranges == nil {
m.Ranges = make(map[string]string)
// rsFileName gets set by putRange. Check for blank values here
// coming from other code paths that set rs only (eg initial creation or hit increment).
if rsFileName != "" {
if m.Ranges == nil {
m.Ranges = make(map[string]string)
}
m.Ranges[rs.String(actualSize)] = rsFileName
}
m.Ranges[rs.String(actualSize)] = rsFileName
} else {
// this is necessary cleanup of range files if entire object is cached.
for _, f := range m.Ranges {