Skip to content

Commit

Permalink
handle end of space on device in a better way
Browse files Browse the repository at this point in the history
  • Loading branch information
antirez committed Jan 4, 2011
1 parent 418d5ea commit 1190c6c
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/diskstore.c
Expand Up @@ -191,7 +191,16 @@ int dsSet(redisDb *db, robj *key, robj *val) {
len = dsKeyToPath(db,buf,key);
memcpy(buf2,buf,len);
snprintf(buf2+len,sizeof(buf2)-len,"_%ld_%ld",(long)time(NULL),(long)val);
fp = fopen(buf2,"w");
while ((fp = fopen(buf2,"w")) == NULL) {
if (errno == ENOSPC) {
redisLog(REDIS_WARNING,"Diskstore: No space left on device. Please make room and wait 30 seconds for Redis to continue.");
sleep(30);
} else {
redisLog(REDIS_WARNING,"diskstore error opening %s: %s",
buf2, strerror(errno));
redisPanic("Unrecoverable diskstore error. Exiting.");
}
}
if ((retval = rdbSaveKeyValuePair(fp,db,key,val,time(NULL))) == -1)
return REDIS_ERR;
fclose(fp);
Expand Down

0 comments on commit 1190c6c

Please sign in to comment.