icinga2/lib
Julian Brost 63e9ef58ba Prevent worst-case exponential complexity in dependency evaluation
So far, calling Checkable::IsReachable() traversed all possible paths to it's
parents. In case a parent is reachable via multiple paths, all it's parents
were evaluated multiple times, result in a worst-case exponential complexity.

With this commit, the implementation keeps track of which checkables were
already visited and uses the already-computed reachability instead of repeating
the computation, ensuring a worst-case linear runtime within the graph size.
2025-08-04 10:42:20 +02:00
..
base Allow intrusive_ptr<const T> for objects 2025-07-30 16:42:27 +02:00
checker Merge pull request #10397 from Icinga/activation-priority-10179 2025-05-28 12:30:40 +02:00
cli Fix compiler warnings by not unnecessarily (copy-)constructing loop variables 2025-05-21 11:36:32 +02:00
compat Merge {host,service}::StateTypeToString() & drop unused StateTypeFromString() 2025-06-06 13:31:44 +02:00
config No longer allow overriding the frozen attribute of containers 2025-07-08 14:16:20 +02:00
db_ido Merge {host,service}::StateTypeToString() & drop unused StateTypeFromString() 2025-06-06 13:31:44 +02:00
db_ido_mysql Merge pull request #9732 from Icinga/silence-compiler-warnings-in-code-we-don-t-maintain 2025-01-15 16:33:24 +01:00
db_ido_pgsql Merge pull request #9732 from Icinga/silence-compiler-warnings-in-code-we-don-t-maintain 2025-01-15 16:33:24 +01:00
icinga Prevent worst-case exponential complexity in dependency evaluation 2025-08-04 10:42:20 +02:00
icingadb Merge pull request #10467 from Icinga/icingadb-calceventid-no-double-timestamptomilliseconds 2025-06-10 17:09:16 +02:00
livestatus Merge pull request #10397 from Icinga/activation-priority-10179 2025-05-28 12:30:40 +02:00
methods Require to pass WaitGroup::Ptr to several methods 2025-05-23 14:53:58 +02:00
mysql_shim Silence compiler warnings in code we don't maintain 2025-01-14 11:48:33 +01:00
notification Explicitly stop started timers and wait for them 2023-04-14 14:52:04 +02:00
perfdata Merge pull request #10420 from Icinga/bundled-perfdata-writers-fix 2025-06-17 10:17:27 +02:00
pgsql_shim Silence compiler warnings in code we don't maintain 2025-01-14 11:48:33 +01:00
remote Disallow stage deletions during reload 2025-07-24 16:02:30 +02:00
CMakeLists.txt Rename ICINGA2_WITH_REDIS to ICINGA2_WITH_ICINGADB 2019-11-02 14:00:24 +01:00