mirror of https://github.com/Icinga/icinga2.git
Given that the internal `config::Update` cluster events are using this as well to create received runtime objects, we don't want to persist first the conf file and the load and validate it with `CompileFile`. Otherwise, we are forced to remove the newly created file whenever we can't validate, commit or activate it. This also would also have the downside that two cluster events for the same object arriving at the same moment from two different endpoints would result in two different threads simultaneously creating and loading the same config file - whereby only one of the surpasses the validation, while the other is facing an object `re-definition` error and tries to remove that config file it mistakenly thinks it has created. As a consequence, an object successfully created by the former is implicitly deleted by the latter thread, causing the objects to mysteriously disappear. |
||
---|---|---|
.. | ||
base | ||
checker | ||
cli | ||
compat | ||
config | ||
db_ido | ||
db_ido_mysql | ||
db_ido_pgsql | ||
icinga | ||
icingadb | ||
livestatus | ||
methods | ||
mysql_shim | ||
notification | ||
perfdata | ||
pgsql_shim | ||
remote | ||
CMakeLists.txt |