in pkg/files/store/file.go [77:100]
func (f *file) Fstat() (int64, error) {
var hit bool
f.size, hit = f.store.cache.Size(f.Name)
if !hit {
f.reader.Log().Debug().Str("name", f.Name).Int64("size", f.size).Msg("fstat getlen cache miss_1")
f.statLock.Lock()
f.size, hit = f.store.cache.Size(f.Name)
if !hit {
f.reader.Log().Debug().Str("name", f.Name).Int64("size", f.size).Msg("fstat getlen cache miss_2")
var err error
f.size, err = f.reader.FstatRemote()
if err != nil {
f.reader.Log().Error().Err(err).Msg("fstat error")
return 0, err
}
f.store.cache.PutSize(f.Name, f.size)
f.reader.Log().Debug().Str("name", f.Name).Int64("size", f.size).Msg("fstat putlen")
}
f.statLock.Unlock()
}
return f.size, nil
}