lib/fs: panic with fatal error when directories cannot be removed

Unremoved directories may lead to inconsistent data directory,
so VictoriaMetrics will fail to start next time.

So panic on the first error when trying to remove directory in order
to simplify recover process.
This commit is contained in:
Aliaksandr Valialkin 2019-06-12 01:17:39 +03:00
parent 2322c9a45a
commit c1276edab5

View file

@ -246,16 +246,14 @@ func dirRemover() {
break
}
if !isTemporaryNFSError(err) {
logger.Errorf("cannot remove %q: %s", path, err)
break
logger.Panicf("FATAL: cannot remove %q: %s", path, err)
}
// NFS prevents from removing directories with open files.
// Sleep for a while and try again in the hope open files will be closed.
// See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/61 .
attempts++
if attempts > 10 {
logger.Errorf("cannot remove %q in %d attempts: %s", path, attempts, err)
break
logger.Panicf("FATAL: cannot remove %q in %d attempts: %s", path, attempts, err)
}
time.Sleep(100 * time.Millisecond)
}