#1118973 monitoring-plugins-contrib: check_running_kernel fails on ProxMox kernels

Package:
monitoring-plugins-contrib
Source:
monitoring-plugins-contrib
Description:
Plugins for nagios compatible monitoring systems
Submitter:
Matija Nalis
Date:
2025-12-09 08:57:02 UTC
Severity:
normal
Tags:
#1118973#5
Date:
2025-10-25 23:02:01 UTC
From:
To:
Dear Maintainer,

When running ProxMox kernel on Debian Bookworm, e.g. proxmox-kernel-6.8.12-15-pve from:
deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription

it fails to detect that the running kernel is the same as the one on disk:

# /usr/lib/nagios/plugins/check_running_kernel
WARNING: Running kernel does not match on-disk kernel image: [Linux version 6.8.12-15-pve (build@proxmox) (gcc (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-15 (2025-09-12T11:02Z) != Linux version 6.8.12-15-pve (build@proxmox) (gcc (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-15 (2025-09-12T11:02Z) ()]

the difference seems to be just empty parenthesis " ()" at the end of the on-disk version, which IHMO should not affect the check.

The problem occurs both in Bookworm (42.20230308+deb12u1+b1), Bookworm Backports (45.20231212~bpo12+1) and a recent Trixie/Forky/Sid version (48.20250420)

The attached simple patch against 48.20250420 version fixes the issue by allowing that case (without disturbing existing ones):

# ./check_running_kernel
OK: Running kernel matches on disk image: [Linux version 6.8.12-15-pve (build@proxmox) (gcc (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-15 (2025-09-12T11:02Z)]

#1118973#10
Date:
2025-10-28 07:59:13 UTC
From:
To:
Hi Matija,

Am 26.10.25 um 01:02 schrieb Matija Nalis:

that's an issue introduced by using (Kernel images provided by) Proxmox.
Technicaly one can argue that this could be fixed in (the
monitoring-plugins-contrib package of ) Debian, I belive this should be
fixed in Proxmox. There are many other situations where 3rd party kernel
images can/are used and potentially this can break the version
detection. As long as we introduce specific (3rd party) fixes, this
makes not much sense. I'm still open for a more general solution.
Technically I think this would be the wrong place to fix it. A fix
should take place in the "on_disk_version" detection.

With best regards, Jan.

#1118973#17
Date:
2025-10-28 23:47:22 UTC
From:
To:
Hi Jan,

OK, I've reported it to proxmox at https://bugzilla.proxmox.com/show_bug.cgi?id=6981

Which is why this patch was written in such a way to avoid such
possible breakages (i.e. it would only trigger if the versions are
completely the same, except on-disk one having empty " ()" section at
the end. That should not make any false positives or break any other
detections).

More general solution might be to remove such empty section
(whitespace plus empty parenthsesis) anywhere in the version string.
That could be done in "on_disk_version" to be in more proper place,
as you suggested.

But let's see what Proxmox people will reply first.

Cheers,
Matija

#1118973#22
Date:
2025-12-09 08:54:55 UTC
From:
To:
Hi!

The discrepancy seems to stem from CONFIG_VERSION_SIGNATURE not being
set in our kernel builds. While we can of course enable this, this alone
would not fix the nagios check. AFAICT (without setting up a full
reproducer, just looking at the script!) the script should use
`/proc/version_signature` to obtain the value for stripping from the
currently booted kernel, to compare whether the on-disk version is
identical to the booted one, instead of assuming the value of
CONFIG_VERSION_SIGNATURE has to match "`lsb-release -i -s` ..."

Regards,
Fabian