rc: avoid +Inf value for speed in core/stats (#5134)

Fixes #5132
This commit is contained in:
albertony 2021-03-18 10:02:30 +01:00 committed by GitHub
parent e59acd16c6
commit 97fc3b9046
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -214,7 +214,10 @@ func (acc *Account) averageLoop() {
acc.values.mu.Lock() acc.values.mu.Lock()
// Add average of last second. // Add average of last second.
elapsed := now.Sub(acc.values.lpTime).Seconds() elapsed := now.Sub(acc.values.lpTime).Seconds()
avg := float64(acc.values.lpBytes) / elapsed avg := 0.0
if elapsed > 0 {
avg = float64(acc.values.lpBytes) / elapsed
}
// Soft start the moving average // Soft start the moving average
if period < averagePeriod { if period < averagePeriod {
period++ period++
@ -442,7 +445,11 @@ func (acc *Account) speed() (bps, current float64) {
} }
// Calculate speed from first read. // Calculate speed from first read.
total := float64(time.Now().Sub(acc.values.start)) / float64(time.Second) total := float64(time.Now().Sub(acc.values.start)) / float64(time.Second)
if total > 0 {
bps = float64(acc.values.bytes) / total bps = float64(acc.values.bytes) / total
} else {
bps = 0.0
}
current = acc.values.avg current = acc.values.avg
return return
} }