From 70f72e0c90691c72cb72306b718f785902270015 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 8 Jul 2014 00:37:50 +0200 Subject: [PATCH] DOC: explicitly mention the limits of abstract namespace sockets Listening to an abstract namespace socket is quite convenient but comes with some drawbacks that must be clearly understood when the socket is being listened to by multiple processes. The trouble is that the socket cannot be rebound if a new process attempts a soft restart and fails, so only one of the initially bound processes will still be bound to it, the other ones will fail to rebind. For most situations it's not an issue but it needs to be indicated. --- doc/configuration.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/configuration.txt b/doc/configuration.txt index aa55eb4d6..1d7bc7adb 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -1800,7 +1800,13 @@ bind / [, ...] [param*] - 'ipv4@' -> address is always IPv4 - 'ipv6@' -> address is always IPv6 - 'unix@' -> address is a path to a local unix socket - - 'abns@' -> address is in abstract namespace (Linux only) + - 'abns@' -> address is in abstract namespace (Linux only). + Note: since abstract sockets are not "rebindable", they + do not cope well with multi-process mode during + soft-restart, so it is better to avoid them if + nbproc is greater than 1. The effect is that if the + new process fails to start, only one of the old ones + will be able to rebind to the socket. - 'fd@' -> use file descriptor inherited from the parent. The fd must be bound and may or may not already be listening.