Error Largest Free VMalloc Chunk: 0 B

Sample error for Memory: CRIT - RAM used: 172.21 MB of 980.41 MB, Swap used: 2.26 MB of 1.92 GB, Total virtual memory used: 174.47 MB of 2.88 GB (5.9%), Largest Free VMalloc Chunk: 0 B (warn/crit below 50 MB/30 MB) CRIT

I am seeing those in Ubuntu distro and I believe since Checkmk 1.6.0p8 and still on Checkmk 1.6.0p9. Not sure if it was present on Checkmk 1.6.0p7, though.

I tried exclude/ignore the error but has not been able to. Any clue how to go around that in WATO?

Thanks,
Rod

2 Likes

Same problem here. I think it’s a bug in either the agent or the check plugin.

1 Like

The only workaround at the moment is to create a rule for the memory check with the following setting.
image

4 Likes

Yes, that’s the workaround. The issue exists with 5.3 kernels as they seem to report the VMalloc Chunk differently (or not at all). The checkmk agent needs to be patched. I already opened a developer ticket for that issue.

7 Likes

Thank you all. A workaround is all I needed for now. That did it! :slight_smile:

I confirm this issue is now in all the servers with Ubuntu 20 (which uses kernel 5.4).

VmallocUsed and VmallocChunk in /proc/meminfo were set to 0 in 4.4 (here),
but now since 5.3 it’s used to “show the actual physical memory consumption of vmalloc()” (here)

1 Like

Can you point me to the ticket?

As far as i can tell from the master on github, the code was changed in april, but still only ignores only if BOTH values are zero
This was a ignore condition apparently introduced for the 4.4 Kernels, when both VMAlloc and VMAllocChunk were always returned as zero.
But since in the 5.x kernels, on reading /proc/meminfo, only VMallocChunk is not computed, but VMalloc again is, so the ignore condition does not apply anymore.

Confirm same issue when i installed in Ubuntu 20

This will be fixed with Werk 11303 in 1.6.0p16. Yes, p16. Coming :soon:

1 Like

Hi, I found a quick workaround with patching the agent (1.60p19)
On line 139, you have (section <<<mem>>>)
grep -E -v '^Swap:|^Mem:|total:' </proc/meminfo
Just change to this :
grep -E -v '^Swap:|^Mem:|total:' </proc/meminfo | sed 's/VmallocChunk: 0 kB/VmallocChunk: 60000 kB/'
It will now report a fake, but correct value
Cheers,
Xavier
PS : the editor of the forum ate the spaces. Go to cat /proc/meminfo to get the exact number of spaces oruse a regex, I’mtoo lazy for it :slight_smile: