upstream: fix logic to restrict number of connections #7680
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the previous version a new option called net.max_worker_connections was introduced to provide control around the maximum number of allowed TCP connections per worker inside an output plugin, the logic was wrong.
In the upstream logic, connections are linked to one of these lists:
Fluent Bit don't create connections ahead of time, just on demand. When a connection is created is placed into the busy_queue, when is not longer needed one of these things happen:
Based on the logic described above, to limit the number of total connections in the worker, we only need to count the number of connections linked into the 'busy_queue' list because if there are connections available 'av_queue' it won't create a one.
This patch fixes the logic by only using the busy_queue to count the limit.
Fluent Bit is licensed under Apache 2.0, by submitting this pull request I understand that this code will be released under the terms of that license.