Hi, I have a question about the delay between each connection. In the trace logs I see that kumod::ready_queue: spawning client are triggered according to my connection_limit, but it doesn’t seem to reconnect when I hit the max_deliveries_per_connection. They are created every minute after kumod::ready_queue: maintain
Here’s my shaping.toml
ah, I think we might need to trigger the maintain method to run after we close out a connection due to max_deliveries_per_connection limits.
What’s happening right now is that, because there are no new messages being delivered to that same destination, we have to wait for the next scheduled maintainer run to occur, and that happens once per minute
thanks, there’s another small thing that I don’t really understand, the limit it hit 3 times as in I do have 3 logs with kumod::ready_queue: Sent 100 and limit is 100, close and make a new connection but in my delivery logs and the prometheus metrics report 150
the deliveries per connection limit is a slightly misleading name: it’s really attempts-per-connection. It will count attempts that transiently failed as well
So you should also consider the total_messages_transfail and total_messages_fail counters together with the total_messages_delivered to get a sense of whether the per-connection limit adds up
the logic that handles the delivered_this_connection counter is very simple, so I have high trust that isn’t being bumped up in the wrong cases. So it is strange that the number of logs doesn’t seem to match up to it; I don’t have a good explanation for that