]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
DOC: unreliable sockpair@ on macOS
authorWilliam Lallemand <wlallemand@haproxy.com>
Thu, 28 Aug 2025 13:23:02 +0000 (15:23 +0200)
committerWilliam Lallemand <wlallemand@haproxy.com>
Thu, 28 Aug 2025 13:35:17 +0000 (15:35 +0200)
We discovered that the sockpair@ protocol is unreliable in macOS, this
is the same problem that we fixed in d7f6819. But it's not possible to
implement a acknowledgment once the socket are in non-blocking mode.

The problem was discovered in issue #3045.

Must be backported in every stable versions.

doc/configuration.txt
doc/management.txt

index da4471cf6d9887f65a9b42b003ba0e822430d38e..85dd3be6e9e7c5fc54d7bd384a8b2cccefa114ef 100644 (file)
@@ -1514,6 +1514,11 @@ socket type and the transport method.
                the FD from the unix socket and uses it as if it were the FD
                of an accept(). Should be used carefully.
 
+               Bugs: This protocol is known to be unreliable on macOS because
+               of an issue in the macOS sendmsg(2) implementation. The
+               connection might not be accepted correctly.
+
+
 'unix@<path>'  following string is considered as a UNIX socket <path>. this
                prefix is useful to declare an UNIX socket path which don't
                start by slash '/'.
index 9cd9216e71bb0589fdb30121f6a73905979a3d79..ff1f43961b1c9606c44dc609305e5ae25dfe76cb 100644 (file)
@@ -4380,6 +4380,11 @@ Example:
   case the full command ends at the end of line or semi-colon like any regular
   command.
 
+  Bugs: the sockpair@ protocol used to implement communication between the
+  master and the worker is known to not be reliable on macOS because of an
+  issue in the macOS sendmsg(2) implementation. A command might end up without
+  response because of that.
+
   Examples:
 
     $ socat /var/run/haproxy-master.sock readline
@@ -4446,6 +4451,11 @@ Example:
   command). In this case, the prompt mode of the master socket (interactive,
   prompt, timed) is propagated into the worker process.
 
+  Bugs: the sockpair@ protocol used to implement communication between the
+  master and the worker is known to not be reliable on macOS because of an
+  issue in the macOS sendmsg(2) implementation. A command might end up without
+  response because of that.
+
   Examples:
     # gracefully close connections and delete a server once idle (wait max 10s)
     $ socat -t 11 /var/run/haproxy-master.sock - <<< \