aeron-io/aeron · error · ConfigurationException
cpuset warnings as errors
Error message
cpuset warnings as errors, %d warnings
What it means
Aeron's CGroupValidator can be configured to treat cpuset validation warnings as fatal. When validate() accumulates one or more warnings from the registered cpuset validators and the warningsAsErrors flag is set, it throws this ConfigurationException with the total warning count. It exists so environments that require strict topology correctness fail fast instead of proceeding with a suspect cpuset.
Solutions
- Fix the underlying cpuset configuration so no warnings are reported (align CPU affinity with cpuset.cpus / cpuset.cpus.effective).
- Disable the warnings-as-errors option in Aeron configuration if warnings are acceptable in your environment.
- Inspect the validator output buffer (out) from the prior validate call to see which specific cpuset warnings were counted.
- Verify cgroup mount and version (v1 vs v2) on the host; in containers ensure the CPU limit matches the reserved CPU set.
Example fix
// before CGroupValidator.validate(cpuset, out, true); // warningsAsErrors=true, host has mismatched cpuset // after // fix the host cpuset or relax validation CGroupValidator.validate(cpuset, out, false);
Defensive patterns
Strategy: validation
Validate before calling
if (cgroupValidationWarnsAsErrors && !cpusetIsClean) { failFast("fix cpuset or disable warnings-as-errors"); } Try / catch
try {
CGroupValidator.validate(cpuset, out, warningsAsErrors);
} catch (ConfigurationException e) {
log.warn("cpuset validation failed: {}", e.getMessage());
} Prevention
- Inspect cpuset.cpus(.effective) alignment during host/container provisioning
- Only enable warnings-as-errors on environments you control end to end
- Log validator output on startup so the first warning is diagnosable
When it happens
Trigger: Calling CGroupValidator.validate() (directly or via validate) after enabling warningsAsErrors (e.g. aeron.dir.warn.if.cpuset.mismatch-as-error style configuration) while at least one cpuset validator reports a warning.
Common situations: Running Aeron on hosts where cgroup cpuset does not match the CPUs Aeron expects (container CPU limits, cgroup v1 vs v2 differences, pinned cores missing from cpuset.cpus.effective) with strict validation enabled.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- unable to find 'cpuset.cpus.effective' in path '
- catalogFileSyncLevel
- invalid fileIoMaxLength=
- Archive.Context.controlChannel must be set
- Archive.Context.controlChannel must be UDP media: uri=
AI-assisted analysis of aeron-io/aeron@6d60124e15 (2026-09-12).
Data as JSON: /api/errors/2f7e9db77e3f3829.
Report an issue: GitHub.
Appendix: source
Thrown at aeron-client/src/main/java/io/aeron/topology/CGroupValidator.java:94
validate(cpusetV2Reader.readCpuSet(), warningsAsErrors, System.err);
}
void validate(final Cpuset cpuset, final boolean warningsAsErrors, final PrintStream out)
{
if (cpuset.cpus().size() < 2)
{
return;
}
int warnings = 0;
for (final TopologyValidator validator : topologyValidators)
{
warnings += validator.validate(cpuset, out);
}
if (warningsAsErrors && 0 < warnings)
{
throw new ConfigurationException("cpuset warnings as errors, %d warnings".formatted(warnings));
}
}
}
View on GitHub (pinned to 6d60124e15)