diff --git a/src/rdb.c b/src/rdb.c index b98948b7864204534b63f33aeaeb7ed6246e4971..3dd69f2893aceb27efccde870d38d458ba344c31 100644 --- a/src/rdb.c +++ b/src/rdb.c @@ -1087,8 +1087,9 @@ void startLoading(FILE *fp) { /* Load the DB */ server.loading = 1; server.loading_start_time = time(NULL); + server.loading_loaded_bytes = 0; if (fstat(fileno(fp), &sb) == -1) { - server.loading_total_bytes = 1; /* just to avoid division by zero */ + server.loading_total_bytes = 0; } else { server.loading_total_bytes = sb.st_size; } diff --git a/src/redis.c b/src/redis.c index ea7475afdf8157a3165842a3f7da2763a85ed1c6..074583285ce64b22e966edb0bef58124fc3c41ed 100644 --- a/src/redis.c +++ b/src/redis.c @@ -2790,14 +2790,14 @@ sds genRedisInfoString(char *section) { server.loading_loaded_bytes; perc = ((double)server.loading_loaded_bytes / - server.loading_total_bytes) * 100; + (server.loading_total_bytes+1)) * 100; - elapsed = server.unixtime-server.loading_start_time; + elapsed = time(NULL)-server.loading_start_time; if (elapsed == 0) { eta = 1; /* A fake 1 second figure if we don't have enough info */ } else { - eta = (elapsed*remaining_bytes)/server.loading_loaded_bytes; + eta = (elapsed*remaining_bytes)/(server.loading_loaded_bytes+1); } info = sdscatprintf(info,