mirror of https://github.com/Icinga/icinga2.git
IcingaDB: Don't sync partially initialised objects
This commit is contained in:
parent
8beb0b74ab
commit
26f43b0b48
|
@ -286,6 +286,15 @@ void IcingaDB::UpdateAllConfigObjects()
|
||||||
if (lcType != GetLowerCaseTypeNameDB(object))
|
if (lcType != GetLowerCaseTypeNameDB(object))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// If we encounter not yet activated objects, i.e. they are currently being loaded and are about to
|
||||||
|
// be activated, but are still partially initialised, we want to exclude them from the config dump
|
||||||
|
// before we end up in a nullptr deference and crash the Icinga 2 process. Should these excluded
|
||||||
|
// objects later reach the activation process, they will be captured via the `OnActiveChanged` event
|
||||||
|
// and processed in IcingaDB::VersionChangedHandler() as runtime updates.
|
||||||
|
if (!object->IsActive()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<Dictionary::Ptr> runtimeUpdates;
|
std::vector<Dictionary::Ptr> runtimeUpdates;
|
||||||
CreateConfigUpdate(object, lcType, hMSets, runtimeUpdates, false);
|
CreateConfigUpdate(object, lcType, hMSets, runtimeUpdates, false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue