An unstoppable listener is a listener which won't be stop during a soft
stop. The unstoppable_jobs variable is incremented and the listener
won't prevent the process to leave properly.
It is not a good idea to use this feature (the LI_O_NOSTOP flag) with a
listener that need to be bind again on
's a bit of
> "possibly lost" memory as well. I used:
>
> valgrind --leak-check=full ./haproxy -d -Sa /scratch/haproxy/cli.sock
> -Ws -f ./haproxy.cfg
>
> with an empty configuration file to find the issues my patch fixes.
>
Thanks for the report, I'm aware of those issues, the mworker is still a WiP in
the master.
Cheers,
--
William Lallemand
Can you take a look?
>
> Regards,
> PiBa-NL (Pieter)
>
Oh that's funny, the mworker_pipe_register() was supposed to be called
once per process, that's why I put an abort() there, but that's not the case
anymore with nbthread.
Thanks Pieter.
Patch attached.
--
William Lallemand
>
The former behavior was to exit() the master process with the latest
status code known, which was the one of the last process to exit.
The problem is that the master process was not exiting with the status
code which provoked the exit-on-failure.
---
src/haproxy.c | 6 ++
1 file changed, 6
Displays the PID and the relative PID when we fork a new worker.
---
src/haproxy.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/haproxy.c b/src/haproxy.c
index 88cdc9df3..d092a9bc3 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2995,6 +2995,7 @@ int main(int argc, char **argv)
When the master die, the worker should exit too, this is achieved by
checking if the FD of the socketpair/pipe was closed between the master
and the worker.
In the former architecture of the master-worker, there was only a pipe
between the master and the workers, and it was easy to check an EOF
Does not create the CLI proxy if no -S argument was specified. It
prevents a warning that says that the MASTER proxy does not have any
bind option.
---
src/cli.c | 3 ++-
src/haproxy.c | 25 +++--
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/src/cli.c
Return an error and quit if the CLI proxy is not able to connect to a
target.
---
src/cli.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/src/cli.c b/src/cli.c
index 999e4c09a..32eaf4688 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -1926,6 +1926,11 @@ int pcli_wait_for_response(struct
When a worker is leaving, we display the relative PID and the result of
the strsignal() function if it was killed by a signal.
---
src/haproxy.c | 11 ++-
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/haproxy.c b/src/haproxy.c
index b89be13f1..c7ea65d5f 100644
---
Some improvements for the master-worker.
Displays the number of reload in the life of each worker.
---
src/cli.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/cli.c b/src/cli.c
index 510e1e349..999e4c09a 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -1402,12 +1402,12 @@ static int
et. But it will definitively be a useful
feature.
--
William Lallemand
On Fri, Oct 26, 2018 at 05:58:43PM +0200, Aleksandar Lazic wrote:
> BTW what's nb in "nb(thread|proc)"?
>
> [ ] No block
> [ ] never been
> [ ] real answer, something in french ;-):
[X] number
:-)
--
William Lallemand
ats
socket of a process which is leaving. Sometimes it's really useful to debug and
see the session which are still connected on the old process. And that's the
ultimate goal of this feature (not covered yet, but soon :-) )
It also implements a "show proc" which lists the PIDs of the processes.
Regards,
--
William Lallemand
This patch series implements a CLI on the master process.
It's a work in progress but it is now in a usable state, so people might be
interessed in testing it.
The CLI on the master is organized this way:
* The master process implements a CLI proxy which contains:
- a listener for each
The master process does not need all the keywords of the cli, add 2
flags to chose which keyword to use.
It might be useful to activate some of them in a debug mode later...
---
include/types/cli.h| 1 +
include/types/global.h | 2 ++
src/cli.c | 22 ++
3
Add help for the prefix command of the CLI. These help only displays
from the CLI of the master.
---
src/cli.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/cli.c b/src/cli.c
index 8291b2d7a..d8ae79d7b 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -2319,6 +2319,9 @@ static struct applet
Add the process list in types/global.h so it could be accessed from
anywhere.
---
include/types/global.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/types/global.h b/include/types/global.h
index 201a18a15..66ae6da83 100644
--- a/include/types/global.h
+++ b/include/types/global.h
From: William Lallemand
Subject: CLI proxy for master process
In-Reply-To:
This patch series implements a CLI on the master process.
It's a work in progress but it is now in a usable state, so people might be
interessed in testing it.
The CLI on the master is organized this way
This patch implements analysers for parsing the CLI and extra features
for the master's CLI.
For each command (sent alone, or separated by ; or \n) the request
analyser will determine to which server it should send the request.
The 'mode cli' proxy is able to parse a prefix for each command
The master proxy which handles the CLI should not be used or shown in
the stats of the workers. This proxy is now disabled after the fork.
---
include/proto/cli.h | 3 +++
src/cli.c | 8
src/haproxy.c | 2 ++
3 files changed, 13 insertions(+)
diff --git
pcli_reply_and_close() writes a message to the client and close the
connection. To be used only in the CLI proxy.
---
src/cli.c | 10 +-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/cli.c b/src/cli.c
index 1a4a92c0e..67741a631 100644
--- a/src/cli.c
+++ b/src/cli.c
@@
Move the definition of the mworker_proc structure in types/global.h.
---
include/types/global.h | 11 +++
src/haproxy.c | 10 --
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/include/types/global.h b/include/types/global.h
index 5262867df..201a18a15
This patch adds a field in the mworker_proc structure which contains how
much time the master reloaded during the life of a worker.
---
src/haproxy.c | 9 +++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/haproxy.c b/src/haproxy.c
index 82da86222..539eaeea4 100644
---
The new_server() function will be useful to create a proxy for the
master-worker.
---
include/proto/server.h | 1 +
src/server.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/proto/server.h b/include/proto/server.h
index 1c2d1fdaf..75cba471c 100644
---
This patch implements a listen proxy within the master. It uses the
sockpair of all the workers as servers.
In the current state of the code, the proxy is only doing round robin on
the CLI of the workers. A CLI mode will be needed to know to which CLI
send the requests.
---
include/proto/cli.h |
This patch introduces mworker_cli_proxy_new_listener() which allows the
creation of new listeners for the CLI proxy.
Using this function it is possible to create new listeners from the
program arguments with -Sa . It is allowed to create
multiple listeners with several -Sa.
---
Reorder the channel analyzers so the CLI analyzers are defined before
the XFER_DATA ones.
---
include/types/channel.h | 48 +---
1 file changed, 25 insertions(+), 23 deletions(-)
diff --git a/include/types/channel.h b/include/types/channel.h
index
This patch implements a command which displays the current processes.
It only works in the CLI of the master.
---
src/cli.c | 30 ++
1 file changed, 30 insertions(+)
diff --git a/src/cli.c b/src/cli.c
index a6e0648c2..2d4d1281c 100644
--- a/src/cli.c
+++ b/src/cli.c
Add a struct server pointer in the mworker_proc struct so we can easily
use it as a target for the mworker proxy.
pcli_prefix_to_pid() is used to find the right PID of the worker
when using a prefix in the CLI. (@master, @# , @)
pcli_pid_to_server() is used to find the right target server for
The 'show cli sockets' was not handling the sockpairs, it now displays
the fd of the socket and also show the unknown protocols.
---
src/cli.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/cli.c b/src/cli.c
index f1d22a489..ed5de6c09 100644
--- a/src/cli.c
+++
Set the O_CLOEXEC flag on the accept, useful to avoid an FD leak in the
master process, since it reexecutes itself during a reload
---
src/listener.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/listener.c b/src/listener.c
index fb2306927..a730b1832 100644
---
Enable the keyword on the master CLI.
---
src/cli.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cli.c b/src/cli.c
index ed5de6c09..8291b2d7a 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -2327,7 +2327,7 @@ static struct cli_kw_list cli_kws = {{ },{
{ { "set",
Write a prompt with the PID of the target or master.
It's always activated for now.
Example:
1234>
master>
---
src/cli.c | 16 +++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/cli.c b/src/cli.c
index f5935693f..1a4a92c0e 100644
--- a/src/cli.c
+++
We need to generate the process list before starting the proxies,
because it will be used to create a proxy in the master
---
src/haproxy.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/haproxy.c b/src/haproxy.c
index d5c55e172..e46690432 100644
--- a/src/haproxy.c
+++
The init code of the mworker_proc structs has been moved before the
init of the listeners.
Each socketpair is now connected to a CLI within the workers, which
allows the master to access their CLI.
The inherited flag of the worker side socketpair is removed so the
socket can be closed in the
patches on ssl_sock.c in a patch related to the cache.
Thanks.
--
William Lallemand
On Thu, Oct 11, 2018 at 11:06:38PM +0200, William Lallemand wrote:
> On Thu, Oct 11, 2018 at 09:31:48PM +0200, PiBa-NL wrote:
> > Hi Willy, William,
> >
>
> Hi Peter,
>
> Regarding this part:
>
> > -Connection and request counters to low when ran a
e regarding the inherited FDs (fd@),
which is the case with varnishtest. There is a flag which was forbidding the
master to close the FD in 1.8.
Now there is a polling loop in the master and I think there is a side effect
where the FD is registered in the master polling loop.
It's just a guess, I'll
give a timeline at the moment we
> will be sure to update this list once we're close to release.
>
> Thanks,
> -- Daniel
>
Thanks for the clarification Daniel!
--
William Lallemand
contributions from the company to this ingress controller, for
example to support DNS discovery and commands on the stats socket.
Since we don't have our own, and since this one is already well developed and
visible, the community will probably consider that this the official one for
HAProxy :)
--
William Lallemand
gt;
> I prefer to report the issue as I'm not sure you've seen it ;-)
>
Hi Cyril,
Thanks for the report, removing the initialisation completely shouldn't be a
problem.
Patch attached.
--
William Lallemand
>From b81a9a2a80e4340f9cf3a3357dcbae348268f437 Mon Sep 17 00:00:00 2001
From:
On Thu, Jul 12, 2018 at 04:42:01PM +0200, Vincent Bernat wrote:
> ❦ 12 juillet 2018 16:25 +0200, William Lallemand :
>
> > Maybe we could take your first patch for the unit file and backport it in
> > 1.8,
> > and then make the appropriate changes for 1.9 once the m
r so I don't want to rebase everything on top of your patch :-)
Maybe we could take your first patch for the unit file and backport it in 1.8,
and then make the appropriate changes for 1.9 once the master was redesigned.
What do you think?
--
William Lallemand
lready owned by someone (and it is private, no access), what's that ?
>
In fact I already registered https://gitlab.com/haproxy.org a long time ago, I
don't know if the /haproxy/ repository is registered, we might want to contact
gitlab to know what's going on with this repository.
We could share the same gitlab.
> cheers,
> Ilya Shipitsin
Cheers,
--
William Lallemand
Tarreau (1):
MINOR: stick-tables: make stktable_release() do nothing on NULL
---
--
William Lallemand
the patches in 1.8. I will issue a 1.8.12 at the end of the
day if there is no huge bug.
--
William Lallemand
On Sun, Jun 24, 2018 at 10:05:48AM +, Zero King wrote:
> On Sun, Jun 24, 2018 at 11:45:35AM +0200, William Lallemand wrote:
> >On Sun, Jun 24, 2018 at 09:35:11AM +, Zero King wrote:
> >> On Sun, Jun 24, 2018 at 09:42:54AM +0200, William Lallemand wrote:
> >> >
://www.haproxy.org/download/1.8/src/CHANGELOG
Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/
---
Complete changelog :
Thierry FOURNIER (1):
BUG/MAJOR: Stick-tables crash with segfault when the key is not in the
stick-table
William Lallemand (1):
BUG/BUILD: threads: unbreak build
s Thierry! Backported in 1.8, I will issue a 1.8.11 today or tomorrow.
--
William Lallemand
On Sun, Jun 24, 2018 at 09:35:11AM +, Zero King wrote:
> On Sun, Jun 24, 2018 at 09:42:54AM +0200, William Lallemand wrote:
> >On Sun, Jun 24, 2018 at 02:30:57AM +, Zero King wrote:
> >> Hi,
> >>
> >> I tried to update haproxy to 1.8.10 in MacPorts, bu
On Sun, Jun 24, 2018 at 09:42:54AM +0200, William Lallemand wrote:
> On Sun, Jun 24, 2018 at 02:30:57AM +, Zero King wrote:
> > Hi,
> >
> > I tried to update haproxy to 1.8.10 in MacPorts, but it fails to build
> > from source with the following error (without USE
_bit);
> ^
> include/common/hathreads.h:41:42: note: expanded from macro 'HA_ATOMIC_AND'
> #define HA_ATOMIC_AND(val, flags)({*(val) &= (flags);})
> ^~~
> 1 error generated.
>
Thanks fo
y haproxy is a very portable software which compiles with a
huge number of openssl and boringssl versions, it's complicated to keep
everything clean but any help is welcomed.
> particularly with tls1.3-capable openssl 1.1.1 "ComingSoon(tm)", might be
> worth a review
>
What are you suggesting there ? I'm not sure of following, is there a problem
with tls1.3 in haproxy?
--
William Lallemand
he following lines leverage SystemD's sandboxing options to provide
Hm that's interesting, but isn't it better to consider that the SIGTERM is a
"normal" status code, and let the master leaves with zero, instead of changing
systemd configuration?
We could do the same with 130 (SIGINT). In fact those two exits codes are
already handled differently in the master.
--
William Lallemand
: lua/socket: Buffer error, may segfault
MINOR: lua: Increase debug information
BUG/MAJOR: ssl: Random crash with cipherlist capture
BUG/MAJOR: ssl: OpenSSL context is stored in non-reserved memory slot
William Lallemand (5):
BUG/MEDIUM: cache: don't cache when
On Fri, Jun 22, 2018 at 12:03:22PM +0200, William Dauchy wrote:
> On Thu, Jun 21, 2018 at 5:21 PM William Lallemand
> wrote:
> > Once you are sure this is not a bug and that a client is still connected,
> > you
> > could use the keyword 'hard-stop-after' to force a hard
On Thu, Jun 21, 2018 at 05:10:35PM +0200, William Dauchy wrote:
> On Thu, Jun 21, 2018 at 5:03 PM William Lallemand
> wrote:
> > Maybe one client was still connected on a frontend (including the stats
> > socket).
> > The process first unbind the listeners, and t
bind at this
moment :/
But you could try a netstat or ss to see if the listeners are still binded in
this process.
--
William Lallemand
)
> pl_cpu_relax();
>
That's interesting, we can suppose that this bug is not related anymore to the
signal problem we had previously.
Looks like it's blocking in the thread sync point.
Are you able to do a backtrace with gdb? that could help a lot.
Thanks,
--
William Lallemand
On Tue, Jun 12, 2018 at 04:56:24PM +0200, William Dauchy wrote:
> On Tue, Jun 12, 2018 at 04:33:43PM +0200, William Lallemand wrote:
> > Those processes are still using a lot of CPU...
> > Are they still delivering traffic?
>
> they don't seem to handle any traffic
On Tue, Jun 12, 2018 at 04:00:25PM +0200, William Dauchy wrote:
> Hello William L,
>
> On Fri, Jun 08, 2018 at 04:31:30PM +0200, William Lallemand wrote:
> > That's great news!
> >
> > Here's the new patches. It shouldn't change anything to the fix, it only
> > only increases verbosity in case of problem, do you want it to be
> > backported to 1.8 as well ?
>
>
> It should great !
>
> Thierry
Backported to 1.8.
--
William Lallemand
The bug happens with an existing entry, when you try to overwrite the
value with wrong data, for example, a string when the type is INT.
The code path was not secure and tried to set *err and *merr while
err = merr = NULL when performing an http action.
Must be backported in 1.6, 1.7, 1.8.
---
On Fri, Jun 08, 2018 at 06:20:21PM +0200, Willy Tarreau wrote:
> On Fri, Jun 08, 2018 at 04:31:30PM +0200, William Lallemand wrote:
> > That's great news!
> >
> > Here's the new patches. It shouldn't change anything to the fix, it only
> > changes the sigprocmask to
On Fri, Jun 08, 2018 at 02:10:44PM +0200, William Dauchy wrote:
> On Thu, Jun 07, 2018 at 11:50:45AM +0200, William Lallemand wrote:
> > Sorry for the late reply, I manage to reproduce and fix what seams to be
> > the bug.
> > The signal management was not handled c
On Thu, Jun 07, 2018 at 12:02:46PM +0200, Willy Tarreau wrote:
> On Thu, Jun 07, 2018 at 11:50:45AM +0200, William Lallemand wrote:
> > /* block signal delivery during processing */
> > +#ifdef USE_THREAD
> > + pthread_sigmask(SIG_SETMASK, _sig, _sig);
> >
Hi guys,
Sorry for the late reply, I manage to reproduce and fix what seams to be the
bug.
The signal management was not handled correctly with threads.
Could you try those patches and see if it fixes the problem?
Thanks.
--
William Lallemand
>From d695242fb260538bd8db323715d627c4a9dea
ild with TARGET=linux2628 for the latest default
features.
Cheers,
--
William Lallemand
ode, you just have to kill -USR2 the master which will launch
a new process with -sf -x by itself.
Cheers,
--
William Lallemand
he seamless reload should migrate to HAProxy 1.8, the
stable team won't support this feature in previous branches.
Cheers,
--
William Lallemand
On Wed, May 30, 2018 at 07:57:03PM +0200, Tim Düsterhus wrote:
> William,
>
> Am 30.05.2018 um 19:45 schrieb William Lallemand:
> >> @William Lallemand Possibly the sd_notifyf should be moved below
> >> mworker_unblock_signals in mworker_wait?
> >>
> >
Hi Tim,
On Tue, May 29, 2018 at 09:33:48PM +0200, Tim Düsterhus wrote:
>
> @William Lallemand Possibly the sd_notifyf should be moved below
> mworker_unblock_signals in mworker_wait?
>
This shouldn't happen with or without systemd. I can reproduce it without
using systemd, we sho
temctl status haproxy to
check that.
Unfortunately the only way to know when the service is ready is with systemd,
but I planned to make the status available on the stats socket in the future.
--
William Lallemand
On Thu, May 24, 2018 at 11:00:29PM +0200, William Dauchy wrote:
> On Thu, May 24, 2018 at 12:01:38PM +0200, William Lallemand wrote:
> > I managed to reproduce something similar with the 1.8.8 version. It looks
> > like
> > letting a socat connected to the socket helps
last process
> > but I sometimes get: "Pid: 28271"(!) which is a > 24 hours old
> > process.
> >
> > Is there something we are doing wrongly?
>
> After some more testing, I don't have this issue using haproxy v1.8.8
> (rollbacked for > 12 hours). I hope I don't speak too fast.
>
Hi,
I managed to reproduce something similar with the 1.8.8 version. It looks like
letting a socat connected to the socket helps.
I'm looking into the code to see what's happening.
--
William Lallemand
BUG/MEDIUM: http: don't always abort transfers on CF_SHUTR
BUG/MEDIUM: ssl: properly protect SSL cert generation
--
William Lallemand
In commit abbf607 ("MEDIUM: cli: Add payload support") some cli keywords
without usage message have been added at the beginning of the keywords
array.
cli_gen_usage_usage_msg() use the kw->usage == NULL to stop generating
the usage message for the current keywords array. With those keywords at
eload also work with multiprocess
> > configurations? (nbproc > 1).
>
> Can i assume the answer is no for both questions?
>
>
> Veiko
>
Hello Veiko,
Indeed, the seamless reload is only available since HAProxy 1.8.
It supports multiprocess configuration.
--
William Lallemand
e, that's probably your backend server which is doing the compression.
--
William Lallemand
That one can really make you crazy if you are in this exact case :-)
--
William Lallemand
>From ce9920d284e55600ef324a322a3aed92dd2af02f Mon Sep 17 00:00:00 2001
From: William Lallemand <wlallem...@haproxy.com>
Date: Tue, 9 Jan 2018 23:12:27 +0100
Subject: [PATCH] BUG/MEDIUM: mworke
cket_recv: Connection reset by peer (104)
> Total of 3031 requests completed
>
I'm able to reproduce, looks like it happens with the nbthread parameter only,
I'll try to find the problem in the code.
--
William Lallemand
of errors:
[WARNING] 004/135908 (12013) : Failed to connect to the old process socket
'/tmp/sock4'
[ALERT] 004/135908 (12013) : Failed to get the sockets from the old process!
Are you seeing anything like this?
--
William Lallemand
On Wed, Jan 03, 2018 at 06:41:01PM +0100, William Lallemand wrote:
> I'm able to reproduce the problem thanks to your detailed example, it looks
> like a regression in the code.
>
> I will check the code to see what's going on.
I found the issue, would you mind trying the attached pa
0.2n.
>
> Any insights appreciated.
>
I'm able to reproduce the problem thanks to your detailed example, it looks
like a regression in the code.
I will check the code to see what's going on.
--
William Lallemand
rwise I'm reasonably confident that this should be enough to close
> all pending issues related to the master-worker now.
>
> Willy
>
I agree, it's better to merge them with fclose()
--
William Lallemand
On Thu, Dec 28, 2017 at 12:54:27AM +0100, William Lallemand wrote:
> I think that's better to open /dev/null and dup2 with 0, 1, 2 so we won't
> have any
> surprise with an fprintf(stderr, ".. anywhere in the code.
>
Hi,
I made a patch which does exactly that, however I
tuid and setgid, and we don't have access to /dev/null after
this, maybe we could open /dev/null in the master, do the chroot/setuid/setgid
and then do the dup2 in the worker.
--
William Lallemand
the SIGTTOU
> signal from the master (200 times), so the worker must not have been
> unbinding.
>
Okay, so it looks like that the unbinding with SIGTOUT does not work on your
OS, but the seamless reload seems to work...
According to the code commentary that's a known problem on Solaris, maybe we
should add a note in the documentation about it.
Regards,
--
William Lallemand
s post is not correct for the
seamless reload (-x + expose-fd), but only for a "classic" reload.
During a seamless reload, the new process try to get the FDs of the listeners
using the unix socket.
Did you try the seamless reload using -x without the master-worker?
--
William Lallemand
old processes did not receive the SIGTTOU for an unknown reason,
or did not unbind once it received the signal.
Maybe you could try to compare what's happening on your solaris-like system and
your ubuntu with the -dR option, using strace on linux and truss on solaris.
Regards,
--
William Lallemand
ha_alert("exit-on-failure: killing
> every workers with SIGTERM\n");
I prefer to leave this one, because otherwise the user won't understand why it
killed the workers, and a grep on "exit-on-failure" in the documentation will
find "no-exit-on-failure" so that's not a problem.
--
William Lallemand
setsid();
> + }
> +
> mworker_wait();
> /* should never get there */
> exit(EXIT_FAILURE);
Cheers,
--
William Lallemand
+0100, PiBa-NL wrote:
> Thanks for the review, new patch attached that basically incorporates
> all your comments.
> Regards,
> PiBa-NL / Pieter
>
--
William Lallemand
in the pipe, we also need to rely on
setsid() to do a proper tty detach. This is already done in -D mode without -W,
maybe
this part of the code should me moved elsewhere, but we have to be careful not
to break the daemon mode w/o mworker.
--
William Lallemand
worker_pipe);
if (ret < 0) {
ha_alert("[%s.main()] Cannot create
master pipe.\n", argv[0]);
exit(1);
}
This code will guarantee that the whole master-worker quit if there is a
problem.
--
William Lallemand
On Tue, Nov 28, 2017 at 02:56:55PM +0100, William Lallemand wrote:
> On Tue, Nov 28, 2017 at 12:22:04PM +0100, Emmanuel Hocdet wrote:
> > ok, i should have something strange because it’s easy to reproduce in my
> > environnement.
> >
> > When i look lsof i see on mas
m the master-worker code, however that does not explain why the
old
worker does not quit.
--
William Lallemand
I've not checked yet but I was wondering : is it specific to the cache
> filter or can we find the same issue in other ones (compression for example) ?
>
> Cyril
You're absolutely right, we spot this one before but it seems the patch didn't
make it to the master
Couldn’t use
> this on the command line.
>
That's an error, -W doesn't take a process argument, it's only a flag. The
master-worker only simplify the reload and the supervision of HAProxy.
> ~jm
>
> [1] http://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-nbproc
> [2
501 - 600 of 682 matches
Mail list logo