]> git.kaiwu.me - haproxy.git/commit
MINOR: cli: implement basic mechanism for uninterruptible jobs
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 29 Oct 2026 14:38:59 +0000 (15:38 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 9 Nov 2026 16:15:29 +0000 (17:15 +0100)
commit105d93dbda38a4a6a3fb7331dd69acb1783d39af
tree79986d87eae88a6cfcb96f63b9232ef36bfb1362
parent2367f7a0033d097e50d1a19dabe830f623b7cdb0
MINOR: cli: implement basic mechanism for uninterruptible jobs

Interactive CLI commands will be interrupted when the CLI input
is disconnected. This is a safety measure to ensure a long running
command won't consume unnecessarily a CLI connection slot without any
means of shutting it down.

A disconnection is detected by the closure of the remote write side as
this is the only way to detect it when there is nothing to send.
However, this causes issues with utilities such as socat running with a
timeout which perform a half-close on their write channel when the
command has been sent. For example, it is currently impossible to
execute "wait" with socat, unless the special option "ignoreeof" is set.

Introduce a new concept of CLI uninterruptible jobs. This mode of
execution will only be available to long-running commands with a
dedicated argument. Under this mode of execution, the execution will
continue despite the remote write channel being already closed.

A limit of concurrent uninterruptible jobs is set to 3 to ensure they
won't exhaust the default CLI maxconn of 10.
doc/management.txt
include/haproxy/applet-t.h
include/haproxy/cli-t.h
include/haproxy/cli.h
src/cli.c