Skip to content

limithandler: Fix maximum queueing time applying to subsequent RPCs

The concurrency limiter allows the administrator to configure a maximum queueing time: if an RPC call is stuck in the queue for longer than the configured amount of time it will be evicted. The way this is set up is by constructing either a manual ticker function in case no limit is configured, or override the default function with a timer ticker that uses the configured duration.

There is a bug in this setup though: once the manual ticker has been overridden, it leaks outside of the loop and thus applies to any RPC that does not have a maximum queueing time configured.

Fix this bug by setting up the ticker inside of the loop exclusively.

Changelog: fixed

Merge request reports