juicedata/juicefs · error
invalid file size %d, data length %d
Error message
invalid file size %d, data length %d
What it means
Returned by openCacheFile when the cache file on disk is smaller than the data length it claims to hold (negative extra bytes). The file is truncated or corrupt and cannot serve as a valid cache entry.
Source
Thrown at pkg/chunk/disk_cache_file.go:168
}
return buf.Bytes()
}
func openCacheFile(name string, length int, level string) (*cacheFile, error) {
fp, err := os.Open(name)
if err != nil {
return nil, err
}
fi, err := fp.Stat()
if err != nil {
_ = fp.Close()
return nil, err
}
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)
}View on GitHub (pinned to c9a67b23e8)
Solutions
- Delete the truncated cache file so the block is re-cached
- Check cache disk health and free space
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at pkg/chunk/disk_cache_file.go:168 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/faf1847088d105d6.
Report an issue: GitHub.