Hello,
Since upgrading our Icinga servers from 2.15 to 2.16.0-1, we are seeing a strong increase of config warnings during validation, while the exact same configuration was working fine before on 2.15.
The warnings look like this:
warning/config: Object name of type 'Service' is too long (length: 315, max: 255).
warning/config: Object name of type 'Service' contains ctrl or newline characters, which may cause problems in some contexts.
They are triggered from an apply Service for (...) rule:
apply Service for (port in host.vars.access_ports) to Host {
Example hosts impacted:
Important points:
-
Hostnames themselves are normal length and do not contain special characters.
-
This happens on many/all hosts using this rule.
-
On Icinga 2.15, same config produced no such warnings.
-
The issue only appeared after upgrading the Icinga servers.
Our suspicion is that one of the generated values inside host.vars.access_ports may now be interpreted differently in 2.16, or that validation became stricter.
This is causing operational issues for us because we use an internal tool that generates and deploys Icinga config automatically. It runs the validation command remotely through Paramiko, and because of the huge amount of warnings, command execution becomes very long and eventually times out while waiting for the full output.
So our questions are:
-
Did something change in Icinga 2.16 regarding object name generation for
apply forrules? -
Were checks on control/newline characters tightened recently?
-
Is there a recommended way to sanitize generated service names coming from arrays/dictionaries in
apply forloops? -
Could this be considered a regression if the exact same config was accepted cleanly in 2.15?
Any guidance would be appreciated.
Thanks.
Nathan