tree dc43549fb10027094ae46ceeabca20e14122b745
parent b3dd5d523946ac0d6291ce31e0a782abe881db67
author Christopher Faulet <cfaulet@haproxy.com> 1708450216 +0100
committer Amaury Denoyelle <adenoyelle@haproxy.com> 1718010443 +0200

BUG/MEDIUM: cli: Warn if pipelined commands are delimited by a \n

This was broken since commit 0011c25144 ("BUG/MINOR: cli: avoid O(bufsize)
parsing cost on pipelined commands"). It is not really a bug fix but it is
labelled as is to make it more visible.

Before, a full line was first retrieved from the request buffer before
extracting the first command to eval it. Now, only one command is retrieved.
But we rely on the request buffer state to interrupt processing in
non-interactive mode. After a command processing, if output of the request
buffer is empty, we leave. Before the above commit, this was not a problem.
But since then, it is obviously a bad statement. First because some input
data may still be there. It is not true today, but it might change. Then,
there is no warranty to receive all commands in same time. For small list of
commands, it will be most of time the case, but it is a dangerous
assumption. For long list of commands, it is almost always false.

To be an issue, commands must be chunked exactly between two commands. But
in this case, remaining commands are skipped. A good way to reproduce the
issue is to wait a bit between two commands, for instance:

    (printf "show info;"; sleep 2; printf "show stat\n") | socat ...

In fact, to properly fix the issue, we should exit on the first command
finished by a newline. Indeed, as stated in the documentation, in
non-interactive mode, a single line is processed. To pipeline commands,
commands must be separated by a semi-colon. Unfortunately, the above commit
introduced another change. It is possible to pipeline commands delimited by
a newline. It was pushed 2 years ago and backported to all stable versions.
Several scripts may rely on this behavior.

So, on stable version, the bug will not be fixed. However a warning will be
emitted to notify users their scripts don't respect the documentation and
they must adapt it. Mainly because the cli behavior on this point will be
changed in 3.0 to stick to the doc. This warning will only be emitted once
over the whole worker process life. Idea is to not flood the logs with the
same warning for every offending commands.

This commit should probably be backported to all stable versions. But with
some cautions because the CLI was often modified.

(cherry picked from commit 598c7f164c11d39eae0138b64967b6646a2d7fa9)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 7b686dc1fc9d09967e497e25cf278fae14d672e7)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 6852b332e6cebd0448327f4d64d837fd65465ea8)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 2cc1bfbb1bd6377c6e024f8deb19fb6eadf4decc)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 85c31e067f334ab0faa10f04a3c565a186084a9f)
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
