Yonas Habteab
915ea6427e
Use GetParents()
in FireSppressedNotifications()
...
It's way efficient than accessing them through the dependency objects,
plus we won't have any duplicates.
2025-03-19 16:28:00 +01:00
Yonas Habteab
8640a3f84e
Checkable: Extract parents directly from dependency groups
2025-03-19 16:28:00 +01:00
Yonas Habteab
806fff950c
Checkable: Emit boost signals when changing dependency groups at runtime
2025-03-19 16:28:00 +01:00
Yonas Habteab
b462028b4f
Add basic unittests for bulk group registration
2025-03-19 16:28:00 +01:00
Yonas Habteab
6a0ec70131
Fix & adjust dependencies unittests
2025-03-19 16:28:00 +01:00
Yonas Habteab
67a4889945
Checkable: Delay dependency group global registration on startup
2025-03-19 16:28:00 +01:00
Julian Brost
26f46fe021
Simplify dependency group registration
...
Co-Authored-By: Yonas Habteab <yonas.habteab@icinga.com>
2025-03-19 16:28:00 +01:00
Yonas Habteab
aed1bb6294
IcingaDB: Introduce ExecuteRedisTransaction()
helper method
2025-03-19 16:28:00 +01:00
Yonas Habteab
db3f8dec27
IcingaDB: Sync dependencies initial states on config dump
2025-03-19 16:28:00 +01:00
Yonas Habteab
f502993eb4
IcingaDB: Sync dependencies states to Redis
2025-03-19 16:28:00 +01:00
Yonas Habteab
c6466ee0ea
IcingaDB: Dump checkables dependencies config to redis correctly
2025-03-19 15:28:31 +01:00
Richard Mortimer
63926c6e0d
Process: Clean up process table entry even when kill(2)
fails with ESRCH
( #10375 )
...
* Icinga daemon leaves zombie processes on very busy system
On a very heavily loaded system the process group kill can
be delayed until after the regular TERM signal has caused
the process to exit. In this situation the waitpid call
is valid and reaps the zombie process that would otherwise
be left behind.
* Update AUTHORS file
2025-03-18 11:29:00 +01:00
Alexander A. Klimov
a9e9e14fce
Remove unused Registry#Clear()
2025-03-18 11:22:56 +01:00
Alexander A. Klimov
4d7361527c
Remove unused Registry#RegisterIfNew()
2025-03-18 11:22:56 +01:00
Alexander A. Klimov
07b274ec45
Remove unused Registry#Unregister()
2025-03-18 11:22:56 +01:00
Alexander A. Klimov
402a6bbf40
Remove unused EventQueue::Unregister()
2025-03-18 11:22:56 +01:00
Alexander A. Klimov
d19c0637ee
Remove unused EventQueue::UnregisterIfUnused()
2025-03-18 11:22:56 +01:00
Alexander A. Klimov
41f61ccba4
Remove unused ApiFunction::Unregister()
2025-03-18 11:22:56 +01:00
Alexander A. Klimov
cce03c5903
Remove unused ApiAction::Unregister()
2025-03-18 11:22:56 +01:00
Alvar Penning
b521a9742e
GHA: Fix Alpine LibreSSL
...
First, the icinga_legacytimeperiod/dst test was excluded, as it fails on
Alpine most likely due to some differences between musl and glibc. After
some debugging, I disabled the test as the Alpine packages does.
More build dependencies were added from the Alpine package, allowing to
only disable MySQL and PostgreSQL support as these libraries have fixed
dependencies on OpenSSL, conflicting with LibreSSL.
In addition, I have added comments where I was first puzzled.
2025-03-18 11:21:53 +01:00
Alexander A. Klimov
d387f0cd18
GHA: also build on Alpine to test LibreSSL which is used on OpenBSD
2025-03-18 11:21:53 +01:00
Yonas Habteab
5e902fe4a7
Merge pull request #10380 from Icinga/sync-notified-problem-users-correctly
...
ClusterEvents: Sync & process notification `notified_problem_users`
2025-03-18 10:27:28 +01:00
Yonas Habteab
3083a32bc6
Merge pull request #10301 from Icinga/ssl-shutdown-new-client-handler
...
ApiListener: Simplify deferred SSL shutdown in `NewClientHandlerInter…
2025-03-17 13:12:03 +01:00
Alexander Aleksandrovič Klimov
291ee17ca8
GHA: AUTHORS: ignore dependabot[bot]
2025-03-17 12:34:00 +01:00
Yonas Habteab
a904f4bf4b
Merge pull request #10381 from Icinga/enable-dependabot
...
Enable dependabot for GitHub Actions
2025-03-17 12:16:30 +01:00
Yonas Habteab
55885e0cd9
Enable dependabot for GitHub Actions
2025-03-17 10:09:37 +01:00
Yonas Habteab
66cc6a4d8a
ClusterEvents: Sync & process notification notified_problem_users
2025-03-14 14:13:55 +01:00
Yonas Habteab
3d761c0296
ApiActions: Remove child downtimes recursively
...
Services downtimes scheduled via the `all_services` flag get already
removed automatically when removing their parent downtimes (introduced
with #8913 ). Now, this commit makes it possible to perform the same actions
for all child downtimes, i.e. not only for those of service objects, but
for all child objects represented in the dependency tree.
2025-03-13 12:13:45 +01:00
Yonas Habteab
fa63fda75b
ApiListener: Simplify deferred SSL shutdown in NewClientHandlerInternal()
2025-03-13 12:12:28 +01:00
Yonas Habteab
4bfaefadfa
IcingaDB: Bump expected redis version to 6
2025-03-12 16:32:01 +01:00
Yonas Habteab
2616c99891
tests: Add unittests for the redundancy groups registry
2025-03-12 16:32:01 +01:00
Yonas Habteab
d094581b4b
Checkable: Use redundancy groups state in IsReachable
2025-03-12 16:32:01 +01:00
Yonas Habteab
27f11a0955
Checkable: Introduce HasAnyDependencies()
method
2025-03-12 16:32:01 +01:00
Yonas Habteab
ff0dabe287
Checkable: Store dependencies grouped by their redundancy group
2025-03-12 16:31:59 +01:00
Yonas Habteab
1820955993
Add DependencyGroup::GetState()
helper method
2025-03-12 16:31:14 +01:00
Yonas Habteab
d7c9e6687e
Introduce DependencyGroup
helper class
2025-03-12 16:31:12 +01:00
Yonas Habteab
93d9fad565
Checkable: Drop unused failedDependency
argument from IsReachable()
2025-03-12 16:19:22 +01:00
Julian Brost
67664ad7b7
Checkable::GetAllChildrenInternal: remove redundant emplace call
...
`checkable` is already added to the set by the insert call above, so calling
emplace for the same checkable doesn't do anything useful and can be removed.
2025-03-12 16:19:22 +01:00
Yonas Habteab
c465f45200
Rewrite Checkable::GetAllChildrenInternal()
method
...
The previous wasn't per-se wrong, but it was way too inefficient. With
this commit each and every Checkable is going to be visited only once,
and we won't traverse the same Checkable's children multiple times
somewhere in the dependency chain.
2025-03-12 16:19:22 +01:00
Yonas Habteab
e0ce0ccff6
Activate Dependency
objects before their parent objects
2025-03-12 16:19:22 +01:00
Yonas Habteab
c02b9d74a9
IcingaDB: Send reachablity state updates for all children
2025-03-12 16:19:22 +01:00
Yonas Habteab
772420a438
Checkable: Don't always trigger reachablity changed signal
...
But only when the current check result being processed affects the child
Checkables in any way.
2025-03-12 16:19:22 +01:00
Yonas Habteab
c64ae1af0f
Dependency: Don't allow to change redundancy_group
at runtime
...
Otherwise, it would require too much code changes to properly handle
redundancy group runtime modification in Icinga DB for no real benefit.
2025-03-12 16:19:22 +01:00
Yonas Habteab
6321606671
IcingaDB: Sync affects_children
as part of runtime state updates
2025-03-12 16:19:22 +01:00
Yonas Habteab
297b62d841
IcingaDB: Add affected_children
to Host/Service
Redis updates
2025-03-12 16:19:22 +01:00
Yonas Habteab
d6b289e1cd
Checkable: Introduce GetAllChildrenCount()
method
...
The previous limit (32) doesn't seem to make sense, and appears to be some random number.
So, this limit is set to 256 to match the limit in IsReachable().
2025-03-12 16:19:22 +01:00
Alvar Penning
ef93f945a2
IcingaDB: Start keeping track of Host/Service to Dependency relationship
...
This does not work in this state!
Trying to refresh Dependency if a Host or Service being member
of this Dependency has a state change.
2025-03-12 16:19:22 +01:00
Yonas Habteab
8714f72d65
Merge pull request #10368 from Icinga/GHAdeb32
...
GitHub actions: also test the still packaged 32-bit Debian
2025-03-12 16:03:39 +01:00
Julian Brost
e6ad2199fc
Merge pull request #10360 from Icinga/dependency-cycle-detection
...
Rework dependency cycle detection
2025-03-12 15:58:44 +01:00
Alexander A. Klimov
f418d29379
GHA: Linux: use the C(++) flags recommended by each respective distro
2025-03-12 14:22:04 +01:00