Julian Brost
178aaaeca9
Merge pull request #9332 from Icinga/bugfix/compare-cluster-tickets-in-constant-time
...
Compare cluster tickets in constant time
2022-04-11 15:32:32 +02:00
Julian Brost
b24a2fa2a5
Merge pull request #9179 from Icinga/Al2Klimov-patch-3
...
Let new cluster certificates expire after 397 days, not 15 years
2022-04-11 15:29:05 +02:00
Julian Brost
0e880048ee
Merge pull request #7961 from Icinga/bugfix/startup-log
...
Place startup.log and status in /var/lib/icinga2/api, not /var/lib/icinga2/api/zones-stage
2022-04-11 14:41:07 +02:00
Alexander A. Klimov
b15763bd86
Compare cluster tickets in constant time
...
Just to be sure.
2022-04-11 11:17:05 +02:00
Alexander A. Klimov
08a23f4035
Write also /var/lib/icinga2/api/zones-stage-startup-last-failed.log
...
in addition to /var/lib/icinga2/api/zones-stage-startup.log
to prevent the next success to overwrite the last failure.
2022-04-11 11:14:42 +02:00
Alexander A. Klimov
c9e4c016e0
Protect ApiListener#m_SSLContext with a mutex
2022-04-11 11:02:45 +02:00
Alexander A. Klimov
e490883577
Renew certificates also periodically
2022-04-11 11:02:39 +02:00
Alexander Aleksandrovič Klimov
39d642af75
Merge pull request #9321 from Icinga/perfdata-resume-signal
...
Perfdata writers: disconnect handlers from signals in Pause()
2022-04-07 15:51:02 +02:00
Alexander A. Klimov
ce6d1b8961
Place startup.log and status in /var/lib/icinga2/api, not /var/lib/icinga2/api/zones-stage
...
not to loose them.
2022-04-07 11:24:24 +02:00
Alexander Aleksandrovič Klimov
b29b95e882
Merge pull request #9267 from Icinga/bugfix/parallel-api-package-calls-do-not-finish-while-reload
...
Worker process doesn't let parallel API package stage updates to complete when terminated
2022-04-06 13:27:44 +02:00
Alexander A. Klimov
56933b8877
Perfdata writers: disconnect handlers from signals in Pause()
...
as they would be re-connected in Resume() (HA).
Before they were still connected during pause and connected X+1 times
after X split-brains (the same data was written X+1 times).
2022-04-06 13:09:26 +02:00
Alexander A. Klimov
3753f86c80
ApiListener#Start(): auto-renew own cert if CA owner
...
otherwise that particular cert would expire.
2022-04-04 12:13:31 +02:00
Alexander A. Klimov
6d470a3ca5
Introduce ApiListener#RenewCert()
2022-04-04 12:12:31 +02:00
Alexander Aleksandrovič Klimov
f749c7556e
Merge pull request #9314 from Icinga/latin1
...
IDO MySQL: reason latin1 charset for actually UTF-8 bytes
2022-04-04 11:05:12 +02:00
Alexander A. Klimov
11b8d0f058
IDO MySQL: reason latin1 charset for actually UTF-8 bytes
2022-03-31 18:10:21 +02:00
Alexander Aleksandrovič Klimov
2fa26961ac
Merge pull request #9311 from Icinga/9308
...
IDO MySQL: explicitly use latin1
2022-03-31 16:44:11 +02:00
Alexander A. Klimov
245fbad1e5
IDO MySQL: explicitly use latin1
...
for the case the MySQL client lib is compiled with another default
not to turn Unicode chars into ??.
2022-03-31 15:04:45 +02:00
Yonas Habteab
6193a911bf
ConfigStagesHandler: Don't allow concurrent package updates anymore
...
To prevent Icinga2 from being restarted while
one or more requests are still in progress and end up
as corrupted stages without status file and startup logs.
2022-03-30 09:42:22 +02:00
Yonas Habteab
362adcab1a
ConfigPackageUtility: Don't reset ongoing package updates on config validation success and process is going to be reloaded
2022-03-30 09:42:22 +02:00
Yonas Habteab
575af4c980
Defer: Allow to cancel the callback before going out of scope
2022-03-30 09:42:22 +02:00
Alexander A. Klimov
9be2eb8e5e
Introduce IsCertUptodate()
2022-03-29 16:47:23 +02:00
Alexander A. Klimov
5f2e021390
Request certificate renewal also master2->master1
...
not only sat->master to prevent master2's certificate from expiring.
2022-03-29 16:47:23 +02:00
Alexander A. Klimov
e06b631f3a
Let new cluster certificates expire after 397 days, not 15 years
...
https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.7.3.pdf , section 6.3.2:
"Subscriber Certificates issued on or after 1 September 2020 SHOULD NOT have a Validity Period greater than 397 days and MUST NOT have a Validity Period greater than 398 days."
2022-03-29 16:47:23 +02:00
Alexander Aleksandrovič Klimov
d171301b9d
Merge pull request #9298 from Icinga/bugfix/icingadb-remove-comment-history
...
Icinga DB: discard comment removals with missing information
2022-03-29 11:25:01 +02:00
Alexander Aleksandrovič Klimov
bbc2b59b0d
Merge pull request #9287 from Icinga/9275
...
Icinga DB: correct ack comments' is_sticky
2022-03-28 22:42:52 +02:00
Julian Brost
d139bc31c8
Icinga DB: discard comment removals with missing information
...
If comments get removed in unintended ways (i.e. not by expiring or by using
the remove-comment API action), the comment object misses information to create
a proper history event for Icinga DB. Therefor, discard these events.
2022-03-28 16:58:05 +02:00
Alexander A. Klimov
1220ad8a2f
Icinga DB: correct ack comments' is_sticky
...
On ack Icinga first adds a comment, then acks the checkable
so the ack event has the comment ID.
But due to the yet missing ack the comment was missing is_sticky.
That's corrected now.
2022-03-24 16:42:18 +01:00
Alexander A. Klimov
4399e82d9d
Introduce Comment#sticky
...
Carries whether ack was sticky for ack comments.
2022-03-24 16:42:18 +01:00
Julian Brost
ba154d2a38
Merge pull request #7929 from Icinga/bugfix/override-default-template-apply-rules-7914
...
Apply rules: import default templates first
2022-03-23 11:30:51 +01:00
Julian Brost
cfa6f1c6a9
Merge pull request #9288 from Icinga/9272
...
IcingaDB#SendRemovedComment(): ignore ack comments like #SendAddedComment()
2022-03-22 15:06:06 +01:00
Alexander A. Klimov
27966c3c08
IcingaDB#SendRemovedComment(): ignore ack comments like #SendAddedComment()
...
Icinga DB doesn't expect comment history for ack comments.
Before:
1. Acked checkable recovers
2. Icinga clears ack comments w/o setting removal time
3. Icinga DB gets neither removal time, nor expire time
4. Icinga DB falls back to NULL and violates NOT NULL constraint
2022-03-21 17:06:35 +01:00
Julian Brost
9630e86997
Add missing array locking in IcingaDB::GetArrayDeletedValues()
...
icinga::Array requires locking by the caller when iterating using Begin() and
End(). This is only checked in debug builds but there it makes this function
fail.
2022-03-09 14:29:44 +01:00
Julian Brost
bf5b905707
Merge pull request #9250 from Icinga/feature/fix-compiler-warning-do-not-move-local-variables
...
Fix compiler warnings don't move local variables
2022-03-08 11:37:09 +01:00
Julian Brost
90848f602b
Checkable: Add test for state notifications after a suppression ends
2022-03-03 14:25:23 +01:00
Julian Brost
cbc0b21b86
Checkable: sync state_before_suppression in cluster
...
This ensures that in case of a failover in an HA zone, the other can take over
properly and has the required state to send the proper notifications.
2022-03-03 14:25:23 +01:00
Julian Brost
39cee3538a
Checkable: improve state notifications after suppression ends
...
This commit changes the Checkable notification suppression logic (notifications
are currently suppressed on the Checkable if it is unreachable, in a downtime,
or acknowledged) to that after the suppression reason ends, a state
notification is sent if and only if the first hard state after is different
from the last hard state from before. If the checkable is in a soft state after
the suppression ends, the notification is further suppressed until a hard state
is reached.
To achieve this behavior, a new attribute state_before_suppression is added to
Checkable. This attribute is set to the last hard state the first time either a
PROBLEM or a RECOVERY notification is suppressed. Compared to from before,
neither of these two flags in the suppressed_notification will ever be cleared
while the supression is still ongoing but only after the suppression ended and
the current state is compared with the old state stored in
state_before_suppression.
2022-03-03 14:25:23 +01:00
Alexander A. Klimov
6b5106ffdd
IcingaDB#Stop(): don't block shutdown, timeout instead
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
3a8efcb4ea
IcingaDB#Send*(): don't enqueue any history once stopped
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
cac22fe38b
RedisConnection#Connect(): wait for all promises to be completed
...
by the read loop from the previous connection.
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
9585a63fa0
Introduce IoEngine::YieldCurrentCoroutine()
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
732d5c472d
RedisConnection#ReadLoop(): don't crash (silently) if a promise to be set is already set
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
50fee6aeb9
Icinga DB: include amount of history kept in memory in /v1/status
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
ad0fe764f7
Icinga DB: log amount of history kept in memory every 10s
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
8ea62f7fc7
Icinga DB: keep history in memory until written to Redis
...
by putting the messages into a Bulker and retrying each chunk.
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
9a8d388734
Introduce Bulker
2022-03-02 16:39:37 +01:00
Alexander Aleksandrovič Klimov
3fee562e7a
Merge pull request #9256 from Icinga/bugfix/add-some-missing-locks
...
Add some missing locks to prevent data races
2022-03-01 16:12:50 +01:00
Julian Brost
9d3eba8383
Merge pull request #9259 from Icinga/bugfix/event-handler-spamming-8704
...
Checkable#ExecuteEventHandler(): don't outsource event command run twice
2022-02-25 16:51:31 +01:00
Yonas Habteab
f00a3c9693
ConfigObject: Initialize local static var at declaration to ensure thread safety
2022-02-25 15:23:49 +01:00
Yonas Habteab
fb21345bfd
ConfigItem: Use atomic variables for notified and commited items count
2022-02-25 15:17:33 +01:00
Alexander A. Klimov
74935dad7b
Checkable#ExecuteEventHandler(): don't outsource event command run twice
...
refs #8704
2022-02-24 14:03:57 +01:00