zero-warning
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
- this option on configurations that are not changed often, as it helps 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".
+ emitted while processing the configuration and applying it. It means that
+ warnings about bad combinations of parameters, warnings about very high
+ limits that couldn't be set, and so on, make the process exit with an error
+ during startup. A few late startup warnings cannot be caught by this option,
+ 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
clock_adjust_now_offset();
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)) {
int ret = 0;
int in_parent = 0;