Skip to content

Release: 5.3.2 - #185

Merged
CodeDrivenMitch merged 1 commit into
mainfrom
release/5.3.2
Sep 24, 2026
Merged

CodeDrivenMitch merged 1 commit into
mainfrom
release/5.3.2

Conversation

@CodeDrivenMitch

Copy link
Copy Markdown
Collaborator

Releases the Axon Framework 5 line.

Contains #182 (CGroups CPU usage, ported from #180) and #183 (quieter authentication logging, ported from #181).

What is in it

CPU usage is measured against elapsed time. getProcessCpuLoad/getCpuLoad are container-aware since JDK 14: under a cgroup quota the JDK divides CPU used by quota * nr_periods, and nr_periods counts only the scheduling periods in which the cgroup had a runnable task. An idle application was measured against the slice it was allowed while awake, so its reading rose as it got quieter and saturated at the 1.0 the JDK clamps to. Both readings now come from monotonic counters over wall time: process CPU time, and /proc/stat.

Cgroups resolves the process's own cgroup through /proc/self/cgroup and takes the tightest limit up the chain, so a systemd unit with CPUQuota= or a container started with --cgroupns=host is not mistaken for unlimited.

A refused connection is reported once it has persisted, at info rather than error, and only immediately on the first connection an application ever makes. The classifier matches exactly the two phrases the platform produces — Access Denied and invalid authentication — so a TLS or proxy failure mentioning "authentication" is not reported as a credential problem.

classifyConnectionError now delegates to the same classifier, which matters beyond tidiness: it feeds notifyUnreachable, and PlatformLicenseSource marks a licence unavailable the moment it sees INVALID_AUTHENTICATION. That notification is held back on the same terms as the log line, so a two-second refusal no longer marks a licence unavailable. Other reasons pass through immediately, as they already de-duplicate downstream.

The setup payload carries an optional runtime block — JVM, OS, garbage collectors, heap ceiling, and the cgroup's CPU quota, shares and memory limit. The server does not read it yet.

Note on the test suite

AxoniqConsoleRSocketClientToxiproxyIntegrationTest has four failing tests on main, unrelated to these changes and present before them — verified by running that class on a clean checkout. Worth a separate look.

Follow-up

The development version bump to 5.3.3-SNAPSHOT is in a separate PR and should be merged after this one.

@sonarqubecloud

Copy link
Copy Markdown

@CodeDrivenMitch
CodeDrivenMitch merged commit d5324df into main Sep 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants