mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-29 10:11:49 -04:00
MINOR: haproxy: abort config parsing on fatal errors for post parsing hooks
When pre-check and post-check postparsing hooks= are evaluated in step_init_2() potential fatal errors are ignored during the iteration and are only taken into account at the end of the loop. This is not ideal because some errors (ie: memory errors) could cause multiple alert messages in a row, which could make troubleshooting harder for the user. Let's stop as soon as a fatal error is encountered for post parsing hooks, as we use to do everywhere else.
This commit is contained in:
parent
49db9739d0
commit
9736221e90
1 changed files with 18 additions and 11 deletions
|
|
@ -2061,12 +2061,12 @@ static void step_init_2(int argc, char** argv)
|
|||
/* destroy unreferenced defaults proxies */
|
||||
proxy_destroy_all_unref_defaults();
|
||||
|
||||
list_for_each_entry(prcf, &pre_check_list, list)
|
||||
list_for_each_entry(prcf, &pre_check_list, list) {
|
||||
err_code |= prcf->fct();
|
||||
|
||||
if (err_code & (ERR_ABORT|ERR_FATAL)) {
|
||||
ha_alert("Fatal errors found in configuration.\n");
|
||||
exit(1);
|
||||
if (err_code & (ERR_ABORT|ERR_FATAL)) {
|
||||
ha_alert("Fatal errors found in configuration.\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* update the ready date that will be used to count the startup time
|
||||
|
|
@ -2119,17 +2119,24 @@ static void step_init_2(int argc, char** argv)
|
|||
continue;
|
||||
|
||||
list_for_each_entry(pscf, &post_server_check_list, list) {
|
||||
for (srv = px->srv; srv; srv = srv->next)
|
||||
for (srv = px->srv; srv; srv = srv->next) {
|
||||
err_code |= pscf->fct(srv);
|
||||
if (err_code & (ERR_ABORT|ERR_FATAL)) {
|
||||
ha_alert("Fatal errors found in configuration.\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
list_for_each_entry(ppcf, &post_proxy_check_list, list)
|
||||
list_for_each_entry(ppcf, &post_proxy_check_list, list) {
|
||||
err_code |= ppcf->fct(px);
|
||||
if (err_code & (ERR_ABORT|ERR_FATAL)) {
|
||||
ha_alert("Fatal errors found in configuration.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
}
|
||||
px->flags |= PR_FL_CHECKED;
|
||||
}
|
||||
if (err_code & (ERR_ABORT|ERR_FATAL)) {
|
||||
ha_alert("Fatal errors found in configuration.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
err_code |= pattern_finalize_config();
|
||||
if (err_code & (ERR_ABORT|ERR_FATAL)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue