mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 15:47:01 +02:00
BUG/MEDIUM: startup: fix zero-warning mode
Let's check the second time a global counter of "ha_warning" messages, if zero-warning is set. And let's do this just before forking. At this moment we are sure, that we've already done all init operations, where we could emit "ha_warning", and we still have stderr fd opened. Even with the second check, we could lost some late and rare warnings about failing to drop supplementary groups and about re-enabling core dumps. Notes about this are added into 'zero-warning' keyword description.
This commit is contained in:
parent
beaa0e1635
commit
fcd4bf54c8
@ -4176,11 +4176,18 @@ quiet
|
|||||||
|
|
||||||
zero-warning
|
zero-warning
|
||||||
When this option is set, HAProxy will refuse to start if any warning was
|
When this option is set, HAProxy will refuse to start if any warning was
|
||||||
emitted while processing the configuration. It is highly recommended to set
|
emitted while processing the configuration and applying it. It means that
|
||||||
this option on configurations that are not changed often, as it helps detect
|
warnings about bad combinations of parameters, warnings about very high
|
||||||
subtle mistakes and keep the configuration clean and forward-compatible. Note
|
limits that couldn't be set, and so on, make the process exit with an error
|
||||||
that "haproxy -c" will also report errors in such a case. This option is
|
during startup. A few late startup warnings cannot be caught by this option,
|
||||||
equivalent to command line argument "-dW".
|
such as the failure to drop supplementary groups when changing the group ID
|
||||||
|
in "daemon" or "master-worker" modes, or the failure to mark the process
|
||||||
|
dumpable after the fork(). This option does not catch warnings emitted at
|
||||||
|
runtime. It is highly recommended to set this option on configurations that
|
||||||
|
are not changed often, as it helps to detect subtle mistakes and keep the
|
||||||
|
configuration clean and forward-compatible. Note that "haproxy -c" will also
|
||||||
|
report errors in such a case. This option is equivalent to command line
|
||||||
|
argument "-dW".
|
||||||
|
|
||||||
|
|
||||||
3.4. Userlists
|
3.4. Userlists
|
||||||
|
@ -3485,6 +3485,14 @@ int main(int argc, char **argv)
|
|||||||
clock_adjust_now_offset();
|
clock_adjust_now_offset();
|
||||||
ready_date = date;
|
ready_date = date;
|
||||||
|
|
||||||
|
/* catch last warnings, which could be produced while adjusting limits
|
||||||
|
* or preallocating fds
|
||||||
|
*/
|
||||||
|
if (warned & WARN_ANY && global.mode & MODE_ZERO_WARNING) {
|
||||||
|
ha_alert("Some warnings were found and 'zero-warning' is set. Aborting.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (global.mode & (MODE_DAEMON | MODE_MWORKER | MODE_MWORKER_WAIT)) {
|
if (global.mode & (MODE_DAEMON | MODE_MWORKER | MODE_MWORKER_WAIT)) {
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int in_parent = 0;
|
int in_parent = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user