thanos-io/thanos · error
open temp file
Error message
open temp file
What it means
Wraps os.OpenFile in newPartFile when creating the part file for writing (O_CREATE|O_RDWR). It fires on permission or path problems after the old file was removed; without the part file the index-header part cannot be written or later read back.
Solutions
- Check disk space and inode availability
- Verify write permissions on the temp dir
- Ensure the path is valid and not locked
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at pkg/block/indexheader/parallel_bucket.go:174 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of thanos-io/thanos@35b8b99117 (2026-09-07).
Data as JSON: /api/errors/4f80d442c80f04b1.
Report an issue: GitHub.
Appendix: source
Thrown at pkg/block/indexheader/parallel_bucket.go:174
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
return nil, errors.Wrap(err, "create temp dir")
}
df, err = fileutil.OpenDir(dir)
}
if err != nil {
return nil, errors.Wrap(err, "open temp dir")
}
if err := df.Sync(); err != nil {
return nil, errors.Wrap(err, "sync dir")
}
if err := os.RemoveAll(filename); err != nil {
return nil, errors.Wrap(err, "remove existing file")
}
f, err := os.OpenFile(filepath.Clean(filename), os.O_CREATE|os.O_RDWR, 0600)
if err != nil {
return nil, errors.Wrap(err, "open temp file")
}
return &partFile{
file: f,
fileWriter: bufio.NewWriterSize(f, 32*1024),
fileReader: bufio.NewReaderSize(f, 32*1024),
}, nil
}
func (p *partFile) Close() error {
if err := p.file.Close(); err != nil {
return err
}
return os.Remove(p.file.Name())
}
func (p *partFile) Flush() error {
if err := p.fileWriter.Flush(); err != nil {
return errView on GitHub (pinned to 35b8b99117)