Open AskAlexSharov opened 1 week ago
does restart help?
is this where? snapshotter?
also fyi this is not a caplin issue as it happens in:
func (c *Compressor) Compress() error {
if err := c.uncompressedFile.Flush(); err != nil {
return err
}
logEvery := time.NewTicker(20 * time.Second)
defer logEvery.Stop()
if len(c.superstring) > 0 {
c.superstrings <- c.superstring
}
close(c.superstrings)
runtime.GC()
c.wg.Wait()
runtime.GC()
if c.lvl < log.LvlTrace {
c.logger.Log(c.lvl, fmt.Sprintf("[%s] BuildDict start", c.logPrefix), "workers", c.Workers)
}
db, err := DictionaryBuilderFromCollectors(c.ctx, c.Cfg, c.logPrefix, c.tmpDir, c.suffixCollectors, c.lvl, c.logger)
if err != nil {
return err
}
if c.trace {
_, fileName := filepath.Split(c.outputFile)
if err := PersistDictionary(filepath.Join(c.tmpDir, fileName)+".dictionary.txt", db); err != nil {
return err
}
}
defer os.Remove(c.tmpOutFilePath)
cf, err := os.Create(c.tmpOutFilePath)
if err != nil {
return err
}
defer cf.Close()
t := time.Now()
if err := compressWithPatternCandidates(c.ctx, c.trace, c.Cfg, c.logPrefix, c.tmpOutFilePath, cf, c.uncompressedFile, db, c.lvl, c.logger); err != nil {
return err
}
if err = c.fsync(cf); err != nil {
return err
}
if err = cf.Close(); err != nil {
return err
}
if err := os.Rename(c.tmpOutFilePath, c.outputFile); err != nil {
return fmt.Errorf("renaming: %w", err)
}
c.Ratio, err = Ratio(c.uncompressedFile.filePath, c.outputFile)
if err != nil {
return fmt.Errorf("ratio: %w", err)
}
_, fName := filepath.Split(c.outputFile)
if c.lvl < log.LvlTrace {
c.logger.Log(c.lvl, fmt.Sprintf("[%s] Compress", c.logPrefix), "took", time.Since(t), "ratio", c.Ratio, "file", fName)
}
return nil
}
ok - checked the snapshotter - this seems like a rare issue that self-heals luckily. we should not ignore it but i will de-prioritize to imp3
also how sure are we that this is not some kind of machine config issue? this sounds super odd - need more details
mainnet:
more logs: