Ratz wrote:
>
> While testing I encoutered those high (712350 minutes) masq timeout
> entries again in 0.9.2. The problem is, that I'm not able to reproduce
> the error exactly, but it seems to occur if you got a complex setup and
> do some dumb tests like unplugging network cables whilst trying to
> connect and replugging them. It's somehow unprofessional and not likely
> to happen in a real environment, but also such a test should work.
> Because I don't really understand yet how those high timeouts occur (I
> haven't red the source code) it's very difficult to enclose the problem.
> Any suggestions are welcome. I will continue testing ...
>
Well, the masq timeout displayed is caculated by
masq timeout = (unsigned) (masq->expire - system jiffies)
The LVS code is designed to hold a large amount of masq entries, such
as millions of entries, and a slow timer is developed to garbage
collect those stale entries every second(by default). So, the masq
expire may be less than system jiffies,
- 1HZ < masq->expire - system jiffies < 0
When this negative is converted to an unsigned value, it should be that
huge timeout. When the slow timer handler is activated, it will collect
entries whoes timeout values are negative, so don't worry too much about
those huge timeout. However, your timeout value 712350 minutes is really
out of my imagination, because the huge timeout should be located in
[(2^32-99)/100/60, (2^32-1)/100/60] (= [715827.87, 715827.88]),
where HZ=100.
Anyway, when you find a huge timeout, write down its source address
port and destination address port, then check the masq table again
in a few seconds. If you find the same entry of huge timeout is
still here, report it to me, then I will check the code deeply if
I remove some entries from the slow timer list and don't add them
back to slow timer list, or if there is some problem about the slow
timer code.
Thanks,
Wensong
----------------------------------------------------------------------
LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
To unsubscribe, e-mail: lvs-users-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx
For additional commands, e-mail: lvs-users-help@xxxxxxxxxxxxxxxxxxxxxx
|