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.
This commit is contained in:
Damian Janowski 2013-03-12 14:37:50 -03:00
parent 91d3b487e7
commit 4178a80282
2 changed files with 1 additions and 2 deletions

View File

@ -1069,7 +1069,6 @@ int rdbLoad(char *filename) {
fp = fopen(filename,"r"); fp = fopen(filename,"r");
if (!fp) { if (!fp) {
errno = ENOENT;
return REDIS_ERR; return REDIS_ERR;
} }
rioInitWithFile(&rdb,fp); rioInitWithFile(&rdb,fp);

View File

@ -2736,7 +2736,7 @@ void loadDataFromDisk(void) {
redisLog(REDIS_NOTICE,"DB loaded from disk: %.3f seconds", redisLog(REDIS_NOTICE,"DB loaded from disk: %.3f seconds",
(float)(ustime()-start)/1000000); (float)(ustime()-start)/1000000);
} else if (errno != ENOENT) { } 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); exit(1);
} }
} }