mirror of
https://github.com/fluencelabs/redis
synced 2025-05-28 09:41:19 +00:00
INFO loading stats: three fixes.
1. Server unxtime may remain not updated while loading AOF, so ETA is not updated correctly. 2. Number of processed byte was not initialized. 3. Possible division by zero condition (likely cause of issue #1932).
This commit is contained in:
parent
aad0c512cc
commit
1e8f1577c5
@ -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;
|
||||
}
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user