[PATCH 2/3] MEDIUM: listeners: support unstoppable listener

2018-11-16 Thread William Lallemand
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

Re: [PATCH] BUG/MINOR: cli: Fix memory leak

2018-11-07 Thread William Lallemand
'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

Re: Some patches about the master worker

2018-11-06 Thread 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 >

[PATCH 5/7] MEDIUM: mworker: exit with the incriminated exit code

2018-11-06 Thread 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

[PATCH 6/7] MINOR: mworker: displays a message when a worker is forked

2018-11-06 Thread William Lallemand
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)

[PATCH 7/7] MEDIUM: mworker: leave when the master die

2018-11-06 Thread William Lallemand
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

[PATCH 3/7] MEDIUM: mworker: does not create the CLI proxy when no listener

2018-11-06 Thread William Lallemand
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

[PATCH 2/7] MINOR: cli: can't connect to the target CLI

2018-11-06 Thread William Lallemand
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

[PATCH 4/7] MINOR: mworker: displays more information when leaving

2018-11-06 Thread William Lallemand
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 patches about the master worker

2018-11-06 Thread William Lallemand
Some improvements for the master-worker.

[PATCH 1/7] MINOR: cli: show the number of reload in 'show proc'

2018-11-06 Thread William Lallemand
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

Re: CLI proxy for master process

2018-11-05 Thread William Lallemand
et. But it will definitively be a useful feature. -- William Lallemand

Re: CLI proxy for master process

2018-10-26 Thread 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

Re: CLI proxy for master process

2018-10-26 Thread 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

CLI proxy for master process

2018-10-26 Thread 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

[PATCH 09/20] MEDIUM: cli: disable some keywords in the master

2018-10-26 Thread William Lallemand
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

[PATCH 15/20] MINOR: cli: put @master @ @! in the help

2018-10-26 Thread William Lallemand
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

[PATCH 06/20] MEDIUM: mworker: add proc_list in global.h

2018-10-26 Thread William Lallemand
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

[no subject]

2018-10-26 Thread William Lallemand
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

[PATCH 12/20] MEDIUM: cli: implement 'mode cli' proxy analyzers

2018-10-26 Thread William Lallemand
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

[PATCH 17/20] MEDIUM: mworker: stop the master proxy in the workers

2018-10-26 Thread William Lallemand
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

[PATCH 20/20] MINOR: cli: helper to write an response message and close

2018-10-26 Thread William Lallemand
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 @@

[PATCH 03/20] REORG: mworker: move struct mworker_proc to global.h

2018-10-26 Thread William Lallemand
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

[PATCH 01/20] MINOR: mworker: number of reload in the life of a worker

2018-10-26 Thread William Lallemand
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 ---

[PATCH 04/20] MINOR: server: export new_server() function

2018-10-26 Thread William Lallemand
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 ---

[PATCH 07/20] MEDIUM: mworker: proxy for the master CLI

2018-10-26 Thread William Lallemand
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 |

[PATCH 08/20] MEDIUM: mworker: create CLI listeners from argv[]

2018-10-26 Thread William Lallemand
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. ---

[PATCH 18/20] MEDIUM: channel: reorder the channel analyzers for the cli

2018-10-26 Thread William Lallemand
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

[PATCH 11/20] MEDIUM: cli: 'show proc' displays processus

2018-10-26 Thread William Lallemand
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

[PATCH 10/20] MEDIUM: mworker: find the server ptr using a CLI prefix

2018-10-26 Thread William Lallemand
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

[PATCH 13/20] MINOR: cli: displays sockpair@ in "show cli sockets"

2018-10-26 Thread William Lallemand
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 +++

[PATCH 16/20] MEDIUM: listeners: set O_CLOEXEC on the accepted FDs

2018-10-26 Thread William Lallemand
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 ---

[PATCH 14/20] MEDIUM: cli: enable "show cli sockets" for the master

2018-10-26 Thread William Lallemand
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",

[PATCH 19/20] MEDIUM: cli: write a prompt for the CLI proxy of the master

2018-10-26 Thread William Lallemand
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 +++

[PATCH 05/20] MEDIUM: mworker: move proc_list gen before proxies startup

2018-10-26 Thread William Lallemand
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 +++

[PATCH 02/20] MEDIUM: mworker: each worker socketpair is a CLI listener

2018-10-26 Thread William Lallemand
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

Re: [PATCHES] Cache for larger HTTP objects

2018-10-25 Thread William Lallemand
patches on ssl_sock.c in a patch related to the cache. Thanks. -- William Lallemand

Re: [PATCH] REGTEST/MINOR: loadtest: add a test for connection counters

2018-10-12 Thread 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

Re: [PATCH] REGTEST/MINOR: loadtest: add a test for connection counters

2018-10-11 Thread William Lallemand
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

Re: HAProxy listed as Ingress controllers

2018-09-25 Thread William Lallemand
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

Re: HAProxy listed as Ingress controllers

2018-09-25 Thread 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

Re: commit #f9cc07c25b: compilation error when threads are disabled

2018-09-12 Thread 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:

Re: [PATCH] MINOR: mworker: exit with 0 on successful exit

2018-07-12 Thread William Lallemand
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

Re: [PATCH] MINOR: mworker: exit with 0 on successful exit

2018-07-12 Thread William Lallemand
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

Re: haproxy ci (again), gitlab.com ?

2018-07-12 Thread 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

[ANNOUNCE] haproxy-1.8.12

2018-06-27 Thread William Lallemand
Tarreau (1): MINOR: stick-tables: make stktable_release() do nothing on NULL --- -- William Lallemand

Re: [PATCH 1/1] BUG/MAJOR: stick_table: Complete incomplete SEGV fix

2018-06-27 Thread 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

Re: Fails to build HAProxy 1.8.10 without USE_THREAD

2018-06-26 Thread 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: > >> >

[ANNOUNCE] haproxy-1.8.11

2018-06-26 Thread William Lallemand
://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

Re: [Patch] Re: Segfault with haproxy 1.8.10

2018-06-26 Thread William Lallemand
s Thierry! Backported in 1.8, I will issue a 1.8.11 today or tomorrow. -- William Lallemand

Re: Fails to build HAProxy 1.8.10 without USE_THREAD

2018-06-24 Thread 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

Re: Fails to build HAProxy 1.8.10 without USE_THREAD

2018-06-24 Thread William Lallemand
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

Re: Fails to build HAProxy 1.8.10 without USE_THREAD

2018-06-24 Thread William Lallemand
_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

Re: HAProxy 1.8 built with rpath'd openssl links ok; but `haproxy -vv` reports "Built with" and "Running on" conflict

2018-06-22 Thread William Lallemand
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

Re: [PATCH] MINOR: systemd: consider exit status 143 as successful

2018-06-22 Thread 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

[ANNOUNCE] haproxy-1.8.10

2018-06-22 Thread 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

Re: remaining process after (seamless) reload

2018-06-22 Thread William Lallemand
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

Re: remaining process after (seamless) reload

2018-06-21 Thread William Lallemand
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

Re: remaining process after (seamless) reload

2018-06-21 Thread William Lallemand
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

Re: remaining process after (seamless) reload

2018-06-19 Thread 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

Re: remaining process after (seamless) reload

2018-06-15 Thread 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

Re: remaining process after (seamless) reload

2018-06-12 Thread William Lallemand
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

Re: [Patch] Lua / Increase error verbosity

2018-06-11 Thread William Lallemand
> > 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

[PATCH] BUG/MAJOR: map: fix a segfault when using http-request set-map

2018-06-11 Thread 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. ---

Re: remaining process after (seamless) reload

2018-06-08 Thread William Lallemand
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

Re: remaining process after (seamless) reload

2018-06-08 Thread William Lallemand
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

Re: remaining process after (seamless) reload

2018-06-08 Thread William Lallemand
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); > >

Re: remaining process after (seamless) reload

2018-06-07 Thread William Lallemand
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

Re: error: 'all_threads_mask' undeclared (first use in this function)

2018-06-04 Thread William Lallemand
ild with TARGET=linux2628 for the latest default features. Cheers, -- William Lallemand

Re: Right way to seamless reload a multi process cfg

2018-06-04 Thread 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

Re: Truly seamless reloads

2018-05-31 Thread 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

Re: remaining process after (seamless) reload

2018-05-30 Thread 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? > >> > >

Re: remaining process after (seamless) reload

2018-05-30 Thread William Lallemand
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

Re: remaining process after (seamless) reload

2018-05-30 Thread William Lallemand
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

Re: remaining process after (seamless) reload

2018-05-28 Thread 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

Re: remaining process after (seamless) reload

2018-05-24 Thread William Lallemand
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

[ANNOUNCE] haproxy-1.8.9

2018-05-18 Thread William Lallemand
BUG/MEDIUM: http: don't always abort transfers on CF_SHUTR BUG/MEDIUM: ssl: properly protect SSL cert generation -- William Lallemand

[PATCH] BUG/MINOR: cli: don't stop cli_gen_usage_msg() when kw->usage == NULL

2018-05-15 Thread 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

Re: Truly seamless reloads

2018-04-30 Thread William Lallemand
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

Re: 1.7.10 and 1.6.14 always compress response

2018-04-10 Thread William Lallemand
e, that's probably your backend server which is doing the compression. -- William Lallemand

mworker: execvp failure depending on argv[0]

2018-01-09 Thread 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

Re: mworker: seamless reloads broken since 1.8.1

2018-01-05 Thread William Lallemand
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

Re: mworker: seamless reloads broken since 1.8.1

2018-01-05 Thread 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

Re: HAProxy 1.8.3 SSL caching regression

2018-01-03 Thread 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

Re: HAProxy 1.8.3 SSL caching regression

2018-01-03 Thread William Lallemand
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

Re: bug: mworker unable to reload on USR2 since baf6ea4b

2017-12-29 Thread 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

Re: bug: mworker unable to reload on USR2 since baf6ea4b

2017-12-28 Thread 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

Re: bug: mworker unable to reload on USR2 since baf6ea4b

2017-12-27 Thread William Lallemand
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

Re: Testing master-worker reloads on HAProxy 1.8

2017-12-11 Thread 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

Re: Testing master-worker reloads on HAProxy 1.8

2017-12-08 Thread 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

Re: Testing master-worker reloads on HAProxy 1.8

2017-12-08 Thread 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

Re: [PATCH 1/2] DOC: mworker: Update messages referencing exit-on-failure

2017-12-04 Thread 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

Re: [PATCH] BUG/MINOR: when master-worker is in daemon mode, detach from tty

2017-12-02 Thread William Lallemand
setsid(); > + } > + > mworker_wait(); > /* should never get there */ > exit(EXIT_FAILURE); Cheers, -- William Lallemand

Re: [PATCH] BUG/MINOR: Check if master-worker pipe getenv succeeded, also allow pipe fd 0 as valid.

2017-12-02 Thread 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

Re: [PATCH] BUG/MINOR: when master-worker is in daemon mode, detach from tty

2017-11-28 Thread 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

Re: [PATCH] BUG/MINOR: Check if master-worker pipe getenv succeeded, also allow pipe fd 0 as valid.

2017-11-28 Thread 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

Re: [BUG] haproxy 1.8-last/master-worker/peers

2017-11-28 Thread 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

Re: [BUG] haproxy 1.8-last/master-worker/peers

2017-11-28 Thread William Lallemand
m the master-worker code, however that does not explain why the old worker does not quit. -- William Lallemand

Re: cache issue : some data skipped in the middle of the content

2017-11-28 Thread 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

Re: [docs] about master-worker mode

2017-11-27 Thread William Lallemand
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

<    1   2   3   4   5   6   7   >