icinga2/lib/icingadb
Julian Brost ad218c9a12 Icinga DB: initialize environment ID during config validation
IcingaDB may receive callbacks from Boost signals before being fully started.
This resulted in situations where m_EnvironmentId was used before it was
initialized properly. This is fixed by initializing it earlier (during the
config validation stage). However, at this stage, it should not yet write to
disk, therefore, persisting the environment ID to disk is delayed until later
in the startup process.

Initializing at this stage has an extra benefit: if there is an error for some
reason (possibly corrupt icingadb.env file), this now shows up as a nice error
during config validation.

Additionally, this replaces the use of std::call_once with std::mutex due to
bug in libstdc++ (see inline comment for reference).
2022-06-10 14:19:58 +02:00
..
CMakeLists.txt
icingadb-objects.cpp Bump Redis schema version to 5 2022-06-07 12:55:12 +02:00
icingadb-stats.cpp Icinga DB: set value in milliseconds for program_start in stats/heartbeat 2021-11-08 14:37:08 +01:00
icingadb-utility.cpp Add missing array locking in IcingaDB::GetArrayDeletedValues() 2022-03-09 14:29:44 +01:00
icingadb.cpp Icinga DB: initialize environment ID during config validation 2022-06-10 14:19:58 +02:00
icingadb.hpp Icinga DB: initialize environment ID during config validation 2022-06-10 14:19:58 +02:00
icingadb.ti IcingaDB: export environment_id via API 2021-11-05 14:14:37 +01:00
redisconnection.cpp RedisConnection#Connect(): wait for all promises to be completed 2022-03-02 16:39:44 +01:00
redisconnection.hpp Fix compiler warnings don't move local variables 2022-02-22 17:51:43 +01:00