From b9f8c2a5b0e4a0217ff9c181e61595c89d1ba1f7 Mon Sep 17 00:00:00 2001 From: Damian Janowski Date: Tue, 12 Mar 2013 14:37:50 -0300 Subject: [PATCH] Abort when opening the RDB file results in an error other than ENOENT. This fixes cases where the RDB file does exist but can't be accessed for any reason. For instance, when the Redis process doesn't have enough permissions on the file. --- src/rdb.c | 1 - src/redis.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/rdb.c b/src/rdb.c index a5e4c47a..019c54bc 100644 --- a/src/rdb.c +++ b/src/rdb.c @@ -1069,7 +1069,6 @@ int rdbLoad(char *filename) { fp = fopen(filename,"r"); if (!fp) { - errno = ENOENT; return REDIS_ERR; } rioInitWithFile(&rdb,fp); diff --git a/src/redis.c b/src/redis.c index fbe2c3b6..338aa251 100644 --- a/src/redis.c +++ b/src/redis.c @@ -2603,7 +2603,7 @@ void loadDataFromDisk(void) { redisLog(REDIS_NOTICE,"DB loaded from disk: %.3f seconds", (float)(ustime()-start)/1000000); } else if (errno != ENOENT) { - redisLog(REDIS_WARNING,"Fatal error loading the DB. Exiting."); + redisLog(REDIS_WARNING,"Fatal error loading the DB: %s. Exiting.",strerror(errno)); exit(1); } }