Package: linux-image-2.6.18-4-vserver-amd64
Version: 2.6.18.dfsg.1-9
Severity: serious
Hello,
I think I've found a serious bug in the vserver image for amd64.
We're running a daemon, which is logging the traffic of all
hostmachines. Now I've found a very big mistake in the
/proc/virtual/<id>/cacct interface.
The daemon gets the informations of this cacct interface and will calc
the caused traffic, here's the debug of my daemon:
|Fri Feb 23 15:42:01 2007 - cacct: 1472700147 o.cacct 1472517504 logged: 1495189052 now: 1495371695 method: 1
Fri Feb 23 16:00:01 2007 - cacct: 18446744072641133818 o.cacct 3222831651
logged: 3178567909 now: 18446744072596870076 method: 1
|The cacct variable is the value of all incoming / outcoming IPv4 and
IPv6 traffic in bytes.
This debug would mean, that one customer has caused traffic more as 100
TB in 20 minutes ( and that only with one ventrilo server! ).
First I thought, it's a bug in my daemon software, but that wasn't the
problem, how this information will show:
|<hostname>:~/control# cat /proc/virtual/2/cacct
UNSPEC: 0/0 0/0 0/0
UNIX: 305586/28642976 267311/28642976 1/30
INET: 9058790/1149688302 9889025/18446744071736090069 47323/18446744072430740975
INET6: 0/0 0/0 0/0
OTHER: 0/0 0/0 0/0
forks: 0|
|
|It seems as the kernel misscalced or overflowed after a cacct value
over |"1472700147".
It's the first and only example of this bug, because this is the first
customer, with such "a lot" traffic.
Regards,
Patrick Matthäi
|