Details
-
Bug
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
Fully Compatible
Description
There's code in updateAverageRTT that computes a trailing RTT average. However, that code is gated on averageRTTSet, and that's never set to true.
func (s *Server) updateAverageRTT(delay time.Duration) time.Duration {
|
if !s.averageRTTSet { |
s.averageRTT = delay
|
} else { |
alpha := 0.2 |
s.averageRTT = time.Duration(alpha*float64(delay) + (1-alpha)*float64(s.averageRTT)) |
}
|
return s.averageRTT |
}
|
That should probably be:
func (s *Server) updateAverageRTT(delay time.Duration) time.Duration {
|
if !s.averageRTTSet { |
s.averageRTT = delay
|
s.averageRTTSet = true |
} else { |
alpha := 0.2 |
s.averageRTT = time.Duration(alpha*float64(delay) + (1-alpha)*float64(s.averageRTT)) |
}
|
return s.averageRTT |
}
|