[libvirt] Parsing of memory.stat in libvirt
Peter.Chubb at data61.csiro.au
Peter.Chubb at data61.csiro.au
Thu Nov 8 01:06:26 UTC 2018
>>>>> "John" == John Ferlan <jferlan at redhat.com> writes:
On 11/6/18 3:25 AM, Peter.Chubb at data61.csiro.au wrote:
>>
>> Hi Folks, libvirt currently spams the logs with
>>
>> error : virCgroupGetMemoryStat:2490 : internal error: Cannot parse
>> 'memory.stat' cgroup file
>>
>> whenever someone does ps in a container.
>>
>> This is because the parser for memory/stat is incorrect: the `line'
>> variable is never updated, so each time through the loop, the same
>> start-of-line is compared for the token; and as all spaces are
>> eventually replaced with NUL the error exit is taken instead of
>> ending the loop properly.
>>
>> Here is a strawman patch to fix the problem. Please note, I'm not
>> subscribed to this list; I reported the bug as
>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913023 and was
>> asked to send the patch upstream.
>>
>> src/util/vircgroup.c | 7 ++++++- 1 file changed, 6 insertions(+), 1
>> deletion(-)
>>
John> Hmmmm... well I see quite true... nice catch!
John> An any case, the patch below is against an older version of
John> libvirt, we typically work from top of the git tree, but since
John> you're not a regular contributor I will put something together
John> and CC you using top of tree. Since we adhere to usage of
John> Signed-Off-By, I'd need to have you agree to have me add an
John> S-O-B with your name. For now I'll put my name with you as the
John> author.
Sure, I'll add it to the individual patches.
>> --- libvirt.orig/src/util/vircgroup.c +++
>> libvirt/src/util/vircgroup.c @@ -2477,7 +2477,7 @@
>> virCgroupGetMemoryStat(virCgroupPtr grou
>>
>> line = stat;
>>
>> - while (line) { + while (*line) {
John> probably should be line && *line Since if line was for who knows
John> what reason NULL, then life wouldn't be happy.
line can't be NULL at this point. virCgroupGetValueStr() returns
non-zero if it hasn't set stat to something sensible.
An extra check doesn't hurt though.
Peter C
--
Dr Peter Chubb Tel: +61 2 9490 5852 http://ts.data61.csiro.au/
Trustworthy Systems Group Data61, CSIRO (formerly NICTA)
More information about the libvir-list
mailing list