juicedata/juicefs · error
invalid file size %d, data length %d, checksum length %d
Error message
invalid file size %d, data length %d, checksum length %d
What it means
Returned by openCacheFile when the on-disk file is larger than the data but the extra bytes are fewer than the expected checksum length and not a valid footer layout — the file does not match any known cache format combination of data+checksum+footer.
Source
Thrown at pkg/chunk/disk_cache_file.go:181
}
checksumLength := int64(((length-1)/csBlock + 1) * 4)
extra := fi.Size() - int64(length)
if extra < 0 {
_ = fp.Close()
return nil, fmt.Errorf("invalid file size %d, data length %d", fi.Size(), length)
}
footerOff := int64(0)
switch {
case extra == 0:
level = CsNone // data only, no footer
case extra%4 == 0:
switch {
case extra == checksumLength:
case extra > checksumLength:
footerOff = int64(length) + checksumLength
default:
_ = fp.Close()
return nil, fmt.Errorf("invalid file size %d, data length %d, checksum length %d", fi.Size(), length, checksumLength)
}
default:
level = CsNone
footerOff = int64(length)
}
cf := &cacheFile{File: fp, length: length, csLevel: level, footerOff: footerOff, size: fi.Size()}
return cf, nil
}
func (cf *cacheFile) ReadAt(b []byte, off int64) (n int, err error) {
logger.Tracef("CacheFile length %d level %s, readat off %d buffer size %d", cf.length, cf.csLevel, off, len(b))
defer func() {
logger.Tracef("CacheFile readat returns n %d err %s", n, err)
}()
if cf.csLevel == CsNone || cf.csLevel == CsFull && (off != 0 || len(b) != cf.length) {
return cf.File.ReadAt(b, off)
}
var rb = b // read bufferView on GitHub (pinned to c9a67b23e8)
Solutions
- Discard the malformed cache file; it will be rewritten on next caching
- Rule out mixed client versions using incompatible cache formats on the same dir
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at pkg/chunk/disk_cache_file.go:181 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/a3b3b720488b3a52.
Report an issue: GitHub.