Le 01/12/2018 à 22:48, PiBa-NL a écrit :
Hi Christopher, List

A recent commit
http://git.haproxy.org/?p=haproxy.git;a=commit;h=7805e2bc1faf04169866c801087fd794535ecbb2
seems to have broken config parsing for some configurations as seen with
reg-test: /cache/h00000.vtc

Using: haproxy version: 1.9-dev8-7805e2b

***  h1    0.0 debug|[ALERT] 334/200950 (30141) : Proxy 'test': unable
to find the cache 'my_cache' referenced by http-response cache-store rule.
***  h1    0.0 debug|[ALERT] 334/200950 (30141) : Proxy 'test': unable
to find the cache 'my_cache' referenced by http-request cache-use rule.
***  h1    0.0 debug|[ALERT] 334/200950 (30141) : Proxy 'test': unable
to find the cache 'my_cache' referenced by the filter 'cache'.
***  h1    0.0 debug|[ALERT] 334/200950 (30141) : Fatal errors found in
configuration.

Can you take a look? Thanks in advance :).

Regards,

PiBa-NL (Pieter)



Argh! You're right. I was in hurry to finish all my work on the HTX. Here is a fix.

Thanks,

--
Christopher Faulet
>From 641ebec149de991052a707aa00d31d97ddb367ff Mon Sep 17 00:00:00 2001
From: Christopher Faulet <[email protected]>
Date: Sun, 2 Dec 2018 09:37:38 +0100
Subject: [PATCH] BUG/MINOR: cfgparse: Fix the call to post parser of the last
 sections parsed

Wrong variable was used to know if we need to call the callback
post_section_parser() or not. We must use 'cs' and not 'pcs'.

This patch must be backported in 1.8 with the commit 7805e2b ("BUG/MINOR:
cfgparse: Fix transition between 2 sections with the same name").
---
 src/cfgparse.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/cfgparse.c b/src/cfgparse.c
index a28d24cce..d754dd55e 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1890,8 +1890,8 @@ next_line:
 			err_code |= pcs->post_section_parser();
 			if (err_code & ERR_ABORT)
 				goto err;
-			pcs = NULL;
 		}
+		pcs = NULL;
 
 		if (!cs) {
 			ha_alert("parsing [%s:%d]: unknown keyword '%s' out of section.\n", file, linenum, args[0]);
@@ -1903,7 +1903,7 @@ next_line:
 		}
 	}
 
-	if (cs && pcs->post_section_parser)
+	if (cs && cs->post_section_parser)
 		err_code |= cs->post_section_parser();
 
 err:
-- 
2.19.1

Reply via email to