Commit Graph

13722 Commits

Author SHA1 Message Date
Yonas Habteab 008fcd1744 Preserve runtime objects in a tmp file for the entire validation process
Given that the internal `config::Update` cluster events are using this
as well to create received runtime objects, we don't want to persist
first the conf file and the load and validate it with `CompileFile`.
Otherwise, we are forced to remove the newly created file whenever we
can't validate, commit or activate it. This also would also have the
downside that two cluster events for the same object arriving at the
same moment from two different endpoints would result in two different
threads simultaneously creating and loading the same config file -
whereby only one of the surpasses the validation, while the other is
facing an object `re-definition` error and tries to remove that config
file it mistakenly thinks it has created. As a consequence, an object
successfully created by the former is implicitly deleted by the latter
thread, causing the objects to mysteriously disappear.
2024-02-12 15:18:32 +01:00
Julian Brost e936c43e89
Merge pull request #9993 from Icinga/coroutine-exception-log-diagnostics
IoEngine: Always log coroutine exception diagnostics
2024-02-12 10:39:37 +01:00
Yonas Habteab 6e66cd9aff ApiListener: Reset `m_LogMessageCount` when rotating
Closing and re-opening that very same log file shouldn't reset the
counter, otherwise some log files may exceed the max limit per file as
their offset indicator is reset each time they are re-opened.
2024-02-09 18:04:20 +01:00
Yonas Habteab eb813cfb99 HttpServerConnection: Drop superfluous `CpuBoundWork` usage 2024-02-09 15:17:26 +01:00
Alexander A. Klimov 62e1d7650d ApiListener#ListenerCoroutineProc(): get remote endpoint ASAP for logging
On incoming connection timeout we log the remote endpoint which isn't
available if it was already disconnected - an exception is thrown.  Get it
as long as we're still connected not to lose it, nor to get an exception.
2024-02-09 12:27:25 +01:00
Yonas Habteab 32531fe909 EventsHandler: Drop superfluous `CpuBoundWork` usage 2024-02-09 12:00:50 +01:00
Eric Lippmann c7293de91d IoEngine: Always log coroutine exception diagnostics
While analyzing a possible memory leak, we encountered several coroutine
exception messages, which unfortunately do not provide any information
about what exactly went wrong, as exception diagnostics were previously
only logged at the notice level.
2024-02-08 12:09:06 +01:00
Yonas Habteab 72266434df Drop redundant `CpuBoundWork` usages in `lib/remote` 2024-02-08 11:30:23 +01:00
Yonas Habteab e2793f1d88 Drop redundant `CpuBoundWork` usage in `JsonRpcConnection::Disconnect()`
Although there is locking involved here, it shoudln't take too long for
the thread to actually acquire it, since there aren't that many threads
dealing with endpoint clients concurrently. It's just wasting pointless
time trying to obtain a CPU slot.
2024-02-08 11:24:55 +01:00
Julian Brost 01a6c4c1ce
Merge pull request #9976 from Al2Klimov/Al2Klimov-patch-42
GHA AUTHORS check: handle PRs from forks
2024-01-22 16:30:18 +01:00
Alexander A. Klimov 82e9c71001 GHA AUTHORS check: handle PRs from forks
where the ref names differ compared to own PRs. Instead refer to the base branch and the head branch via generic HEAD^<parent number> where HEAD is a merge commit.
2024-01-18 17:22:35 +01:00
Alexander Aleksandrovič Klimov d6a9628f4a
Merge pull request #9972 from Icinga/probot/sync-changelog/master/e9fcbf400fc4df904efbb9ce1fdf40889f07d2ae
CHANGELOG.md: add v2.14.2
2024-01-18 12:41:58 +01:00
Alexander A. Klimov 255e3ddda1 CHANGELOG.md: add v2.14.2 2024-01-18 09:47:06 +00:00
Alexander Aleksandrovič Klimov e9fcbf400f
Merge pull request #9966 from Icinga/Al2Klimov-patch-3
HttpServerConnection: remove duplicate ")" from a log message
2024-01-18 10:46:51 +01:00
Alexander A. Klimov d48b369554 Reset all signal handlers of child processes
... not to disturb check plugins.

refs #6912
2024-01-17 12:25:59 +01:00
Alexander Aleksandrovič Klimov 966b46e808
Merge pull request #9965 from Icinga/http-request-time
HttpServerConnection: log request processing time as well
2024-01-17 11:30:33 +01:00
Nicolas Berens 4de722a4ae remove bracket 2024-01-17 09:46:21 +01:00
Julian Brost b1fe15f694
Merge pull request #9962 from Icinga/influx-disk-9948
Influx DB: truncate timestamps to whole seconds to save disk space
2024-01-17 08:50:16 +01:00
Alexander A. Klimov b6874cc8d4 HttpServerConnection: log request processing time as well 2024-01-16 17:52:07 +01:00
Julian Brost f0924a0f4b
Merge pull request #9964 from Icinga/Boost1.84
Bump Boost shipped for Windows to v1.84
2024-01-16 17:48:42 +01:00
Alexander Aleksandrovič Klimov 6a4cb5c12c
HttpServerConnection: remove duplicate ")" from a log message
The commit 5c32a5a7dc, which introduced it, clearly shows that the other ")" already existed legitimately.
2024-01-16 16:31:00 +01:00
Alexander A. Klimov 77313d751c Bump Boost shipped for Windows to v1.84
Note: For doc/21-development.md use:

perl -pi -e 's/(boost[-\w]*?1[-_]?)83/${1}84/g' doc/21-development.md
2024-01-16 12:35:19 +01:00
Alexander A. Klimov cc9db3756f Revert "Influx DB: don't unneccessarily truncate timestamps to whole seconds"
This reverts commit eaa3cd83ad.
2024-01-16 12:19:48 +01:00
Alexander A. Klimov fc5b1178c6 Revert "Remove no-op InfluxDB URL param"
This reverts commit 21f548d3c0.
2024-01-16 12:19:47 +01:00
Alexander Aleksandrovič Klimov 2c9117b4f7
Merge pull request #9952 from Icinga/probot/sync-changelog/master/9e0dcf2b47e73fa58c9bd72883d380dc4c096aa6
CHANGELOG.md: add v2.14.1
2023-12-22 16:39:05 +01:00
Alexander A. Klimov cc99fda7f8 CHANGELOG.md: add v2.14.1 2023-12-22 13:44:42 +00:00
Alexander Aleksandrovič Klimov 9e0dcf2b47
Merge pull request #9951 from Icinga/probot/sync-changelog/master/28b2db844654961e756959d0f07588a4fa967aec
CHANGELOG.md: add v2.13.9
2023-12-22 14:44:28 +01:00
Alexander A. Klimov c2be90a1c9 CHANGELOG.md: add v2.13.9 2023-12-22 11:45:04 +00:00
Alexander Aleksandrovič Klimov 28b2db8446
Merge pull request #9851 from Icinga/Al2Klimov-patch-3
Make ObjectImpl<Logger>#GetSeverity() non-virtual
2023-12-22 12:44:51 +01:00
Alexander Aleksandrovič Klimov 6c03598678
Merge pull request #9896 from Icinga/provide-cancel_time-where-has_been_cancelled-may-be-1
Disallow triggering a cancelled downtime, but provide cancel_time in Icinga DB downtime history where has_been_cancelled may be 1
2023-12-20 10:03:09 +01:00
Alexander Aleksandrovič Klimov 949d983a76
Merge pull request #9895 from Icinga/targeted-api-filter
FilterUtility::GetFilterTargets(): don't run filter for specific object(s) for all objects
2023-12-19 15:18:41 +01:00
Alexander Aleksandrovič Klimov fa07cd4207
Merge pull request #9931 from Icinga/OpenSSL3012
Bump OpenSSL shipped for Windows to v3.0.12
2023-12-19 15:16:25 +01:00
Alexander Aleksandrovič Klimov 7f1ba96615
Merge pull request #9930 from Icinga/boost183
Bump Boost shipped for Windows to v1.83
2023-12-19 15:15:42 +01:00
Alexander Aleksandrovič Klimov 8b2e28a869
Merge pull request #9891 from Icinga/renew-the-ca-9890
ApiListener#Start(): auto-renew CA on its owner
2023-12-19 14:57:47 +01:00
Alexander Aleksandrovič Klimov 96cfc4abe8
Merge pull request #9887 from Icinga/argument-list-too-long-9340
PluginNotificationTask::ScriptFunc(): on Linux truncate output and comment
2023-12-19 14:36:57 +01:00
Alexander Aleksandrovič Klimov 672a911fc7
release.md: Merge docker-icinga2 dependency updates
so that they're included in the Docker image our release GHA will build.
2023-12-19 12:54:07 +01:00
Alexander A. Klimov 175153ce6a PluginNotificationTask::ScriptFunc(): on Linux truncate output and comment
not to run into an exec(3) error E2BIG due to a too long argument.
This sends a notification with truncated output instead of not sending.
2023-12-19 12:21:03 +01:00
Alexander A. Klimov 4424d57e7a Tests: config_apply/gettargetservices_*: use BOOST_CHECK_EQUAL_COLLECTIONS()
to show the value diff in case of mismatch.

Co-authored-by: Yonas Habteab <yonas.habteab@icinga.com>
2023-12-18 16:01:31 +01:00
Alexander A. Klimov 966216f4ba RequestCertificateHandler(): also renew if CA needs a renewal
and a newer one is available.
2023-12-18 15:28:11 +01:00
Alexander A. Klimov 551c3afa60 CertificateToString(): allow raw pointer input 2023-12-18 15:28:11 +01:00
Alexander A. Klimov bc778116e9 ApiListener#Start(): auto-renew CA on its owner
otherwise it would expire.
2023-12-18 15:28:11 +01:00
Alexander A. Klimov 36a08b0497 ApiListener#RenewCert(): enable optional CA creation 2023-12-18 15:28:11 +01:00
Alexander A. Klimov 7b55df6f11 CreateCertIcingaCA(EVP_PKEY*, X509_NAME*): enable optional CA creation 2023-12-18 15:28:11 +01:00
Alexander A. Klimov dc338a406a Test IsCertUptodate() and IsCaUptodate() 2023-12-18 15:28:11 +01:00
Alexander A. Klimov 191bf93f2e Test ApplyRule::GetTarget*s() 2023-12-18 13:07:31 +01:00
Alexander Aleksandrovič Klimov 953eeba061
Merge pull request #9893 from Icinga/do-not-re-notify-if-filtered-states-don-t-change-4503
Discard likely duplicate problem notifications via Notification#last_notified_state_per_user
2023-12-13 16:13:28 +01:00
Alexander A. Klimov ecfc9033b0 FilterUtility::GetFilterTargets(): don't run filter for specific object(s) for all objects 2023-12-13 16:02:50 +01:00
Alexander A. Klimov 15191bcd74 ApplyRule::GetTarget*s(): support constant strings from variables
in addition to literal strings. This is for sandboxed filters with some
variables pre-set by the caller. They're "constant" in that scope, too.
2023-12-13 16:02:50 +01:00
Alexander A. Klimov a04cef1890 Introduce DictExpression#GetExpressions() 2023-12-13 16:02:50 +01:00
Alexander A. Klimov 8bcae97ecc Introduce Dictionary#GetRef() 2023-12-13 16:02:50 +01:00