Verifies the integrety of the projects, as builds are executed immediately after a code change was detected. This plan provides no artifiacts (use a nightly build instead).

Build: #2945 was successful Changes by daryl herzmann

Stages & jobs

  1. Default Stage

  2. Continuous Integration

Build result summary

Details

Completed
Queue duration
< 1 second
Duration
8 minutes
Labels
None
Agent
mesonet-ah.agron.iastate.edu (4)
Revision
920ef5651b473433937fc4aeb41fcba34e3ffd7e
Total tests
1935
Successful since
#2937 ()

Tests

Code commits

Author Commit Message Commit date
daryl herzmann daryl herzmann 920ef5651b473433937fc4aeb41fcba34e3ffd7e Merge pull request #3127 from guusdk/OF-3170_Rate-Limit-New-Connections
OF-3170: Implement basic rate limiting for new connections (C2S and S2S)
Guus der Kinderen Guus der Kinderen d09f1004c494288c6a274e5ddf720acff0c26900 m OF-3172: Add admin UI for connection rate limiting settings
Expose new-connection rate limiting settings on the C2S and S2S connection settings pages.
Guus der Kinderen Guus der Kinderen 8352e089517efdea42fd6c8f2b74dd3752cd02ce m OF-3171: Implement basic rate limiting for new connections (C2S and S2S)
- Introduce NewConnectionLimiterRegistry to track new connections per type.
- Add per-group rate limiting: client-to-server (C2S) and server-to-server (S2S).
- By default, rate limiting is disabled for both C2S and S2S.
- Support dynamic updates via system properties for permits per second, max burst, and enabled flag.
- Add optional logging for rejected connections with configurable suppression interval.
- Ensure unsupported connection types receive unlimited limiters while still collecting metrics.

This lays the foundation for controlling the rate of new connections, without yet exposing admin console configuration or statistics.
Guus der Kinderen Guus der Kinderen 0af0873a8ed3af68d398dee4f76f22f02b00ba7d m OF-3173: Expose rate-limiting statistics via Statistics API
Integrate rate-limiting counters into Openfire's Statistics API so they are automatically available via JMX and the Monitoring plugin.

This adds real-time, thread-safe statistics for rate limiters used for all connection types (eg: socket_c2s, socket_s2s), tracking accepted and rejected connection attempts. Metrics are incremented on every connection attempt, but reset after rate limit configuration changes.

Acceptance ratio is intentionally not exposed. Ratios would be derived from cumulative totals since the last rate-limiter reset, causing them to converge over time and potentially mislead users expecting a time-windowed value. Consumers can derive meaningful ratios themselves from the provided accepted and rejected counters.
Guus der Kinderen Guus der Kinderen 47593f39e5c80f4a370630085c8c8042a874e70a m OF-3171: Fix thread safety, overflow, and unlimited correctness in TokenBucketRateLimiter
Replace AtomicLong/LongAdder with plain longs guarded by synchronized methods, fixing a race condition between refill and consume.

Fix overflow in refillIfNeeded for large elapsed times and capacity values.

Fix unlimited() instances eventually exhausting by introducing a dedicated code path that bypasses token accounting.

Expand test coverage accordingly.

Jira issues

IssueDescriptionStatus
Unknown Issue TypeOF-3170Could not obtain issue details from Jira
Unknown Issue TypeOF-3171Could not obtain issue details from Jira
Unknown Issue TypeOF-3172Could not obtain issue details from Jira
Unknown Issue TypeOF-3173Could not obtain issue details from Jira

Shared artifacts

Artifact File size
Unpacked project files 267 MB