axosyslog icon indicating copy to clipboard operation
axosyslog copied to clipboard

`log-flow-control(yes/no)` global option

Open MrAnno opened this issue 7 months ago • 1 comments

log-flow-control(yes/no) global option

This option allows enabling flow control for all log paths. When set to yes, flow control is globally enabled, but it can still be selectively disabled within individual log paths using the no-flow-control flag.

WARNING: Enabling global flow control can cause the system() source to block. As a result, if messages accumulate at the destination, applications that log through the system may become completely stalled, potentially halting their operation. We don't recommend enabling flow control in log paths that include the system() source.

For example,

options {
  log-flow-control(yes);
};

log {
  source { system(); };
  destination { network("server" port(5555)); };
  flags(no-flow-control);
};

log { ... };

MrAnno avatar May 02 '25 15:05 MrAnno

This Pull Request introduces config grammar changes

axoflow/a200500c108d2213a35f42a63eacfcb26e8da411 -> MrAnno/global-flow-control

--- a/options
+++ b/options

 global-options(
+    log-flow-control(<yesno>)
 )

github-actions[bot] avatar May 02 '25 15:05 github-actions[bot]

@bazsi I believe I fixed it, now it works with all sorts of multiplexers and embedded paths.

MrAnno avatar Jun 17 '25 20:06 MrAnno

I can't fix the CI yet:

urllib3 CVE is fixed in 2.5.0, but the S3 destination on alma8 says: botocore 1.38.39 depends on urllib3<1.27 and >=1.25.4; python_version < "3.10"

But:

By default, requests and botocore users are not affected.

MrAnno avatar Jun 19 '25 08:06 MrAnno

Merging in spite of the CI being red, as it is not caused by this PR.

alltilla avatar Jun 19 '25 09:06 alltilla