diff options
-rw-r--r-- | src/or/conscache.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/or/conscache.c b/src/or/conscache.c index 4919dba3d2..33a5495974 100644 --- a/src/or/conscache.c +++ b/src/or/conscache.c @@ -539,6 +539,10 @@ consensus_cache_rescan(consensus_cache_t *cache) map = storage_dir_map_labeled(cache->dir, fname, &labels, &body, &bodylen); if (! map) { + /* The ERANGE error might come from tor_mmap_file() -- it means the file + * was empty. EINVAL might come from ..map_labeled() -- it means the + * file was misformatted. In both cases, we should just delete it. + */ if (errno == ERANGE || errno == EINVAL) { log_warn(LD_FS, "Found %s file %s in consensus cache; removing it.", errno == ERANGE ? "empty" : "misformatted", |