On Sun, Jan 10, 2010 at 05:01:47PM +0100, Cyril Bonté wrote:
> Hi again Willy,
>
> Le Dimanche 10 Janvier 2010 00:47:14, Willy Tarreau a écrit :
> > Good catch ! Aleks and I have spent some time in the past to track
> > memory leaks in this area. This is a sensible area because it's one
> > where we're dynamically allocating memory. Obviously those two have
> > escaped us. I'm applying your patch.
>
> Maybe appsession should be forbidden in the 'defaults' section as it will not
> work in the backends.
OK, I agree since that's not allowed in the doc.
> Moreover, haproxy sergfaults when compiled with DEBUG_HASH.
I'm not sure when that feature last worked. There are several DEBUG_*
build directives that are regularly broken because they're not built
by default. Most often they're fixed when we need them :-)
> --- haproxy-1.4-dev6/src/cfgparse.c 2010-01-08 07:49:44.000000000 +0100
> +++ haproxy-1.4-dev6-appsession/src/cfgparse.c 2010-01-10 16:51:52.000000000
> +0100
> @@ -1578,6 +1578,12 @@
> else if (!strcmp(args[0], "appsession")) { /* cookie name */
> int cur_arg;
>
> + if (curproxy == &defproxy) {
> + Alert("parsing [%s:%d] : '%s' not allowed in
> 'defaults' section.\n", file, linenum, args[0]);
> + err_code |= ERR_ALERT | ERR_FATAL;
> + goto out;
> + }
> +
> if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[0],
> NULL))
> err_code |= ERR_WARN;
OK I will apply this patch. However, please check your mailer, it replaces
tabs with spaces so the patch does not apply and I have to redo it by hand
(it was the same with the last one).
> Still about appsession, I've seen in the "timeout http-keep-alive" commit
> that "timeout appsession" is supported (tested, it modifies the timeout
> defined in the previous appsession line, depending on the declaration order),
> but this appears nowhere in the documentation.
I've digged through the history and found that it was introduced after 1.3.13
with all the timeouts, then removed from the doc exactly 2 years ago after
1.3.14 (844e3ac5) but was not removed from the code. I believe I added it
when reviewing all timeouts without thinking that this one made no sense.
I'm removing that now since it's undocumented and buggy by design.
Thanks,
Willy