Commit graph

14783 commits

Author SHA1 Message Date
Johannes Schmidt
caf2b0dd79 Avoid too many 'connection refused' errors in log by listening early 2026-05-27 09:42:15 +02:00
Johannes Schmidt
69d5d6d121 Double time-values for timer tests 2026-05-27 09:42:15 +02:00
Johannes Schmidt
c703c1c2e4 Relax all timeouts for PerfdataWriterConnection test-cases
This isn't strictly necessary, but since tests are now running
in parallel, it doesn't hurt to give slower machines more time
to complete these tests and this gives a little more headroom
for potential changes that subtly affect the behavor of the
components involved (like boost new versions).
2026-05-27 09:42:15 +02:00
Johannes Schmidt
1ae216ae84 Enable parallel testing in Linux CI and container image build 2026-05-27 09:42:15 +02:00
Johannes Schmidt
792c70393a Fix PerfdataWriterConnection segfaults on non-X86 architectures
The issue is that std::promise internally also used thread local
storage, in a call to `std::call_once` in `std::promise::set_value()`.
The theory is that since all paths in `Send()` run this `std::call_once`
routine and from then on, then Coroutine function looks like a normal
function, the compiler inlined `set_value()` and moved the common parts
of it to a common location for all paths before the suspension point in
WriteMessage(yc).

When finally the coroutine is resumes, it is likely that that happens
under a different thread, which still has `__once_callable` in
`std::call_once` set as `nullptr`, leading to the segmentation fault.

The fix is to not use std::promise across coroutine suspension points
and instead reimplement the functionality we required from it in a small
helper class `SyncResult` that does not require any thread local storage.
2026-05-26 12:18:54 +02:00
Johannes Schmidt
3cc5ee2122 Ignore errors for close() and TCP-shutdown()
This makes the TCP-path also ignore all errors/exceptions, same as the
TLS-path's `GracefulDisconnect()`.
2026-05-26 12:12:17 +02:00
Johannes Schmidt
db7a056cee Fix ineffective cancel() when stuck in perfdata writer handshake 2026-05-19 09:33:23 +02:00
Johannes Schmidt
55eb326a56 Fix a race-condition when perfdata writer is stuck in handshake
The issue occurs when ::Connect in `EnsureConnected()` returns after
`Disconnect()` has already set `m_Stopped` to true. By adding a check
and throwing an exception before entering `async_handshake()` the
behavior should now always be consistent.
2026-05-19 09:33:23 +02:00
Johannes Schmidt
339434c8b4 Read until end of file in response reading test-cases 2026-05-19 09:33:23 +02:00
Johannes Schmidt
2717084148 Fix potential nullptr-dereference in perfdata writer stats functions 2026-05-19 09:31:39 +02:00
Alvar
f50f6ec88f
Merge pull request #10829 from 00Manas-Singh00/OLTPMetricsWriter
Some checks are pending
Container Image / Container Image (push) Waiting to run
Linux / alpine:bash (push) Waiting to run
Linux / amazonlinux:2 (push) Waiting to run
Linux / amazonlinux:2023 (push) Waiting to run
Linux / debian:11 (linux/386) (push) Waiting to run
Linux / debian:11 (push) Waiting to run
Linux / debian:12 (linux/386) (push) Waiting to run
Linux / debian:12 (push) Waiting to run
Linux / debian:13 (push) Waiting to run
Linux / fedora:41 (push) Waiting to run
Linux / fedora:42 (push) Waiting to run
Linux / fedora:43 (push) Waiting to run
Linux / fedora:44 (push) Waiting to run
Linux / opensuse/leap:15.6 (push) Waiting to run
Linux / opensuse/leap:16.0 (push) Waiting to run
Linux / registry.suse.com/bci/bci-base:16.0 (push) Waiting to run
Linux / registry.suse.com/suse/sle15:15.6 (push) Waiting to run
Linux / registry.suse.com/suse/sle15:15.7 (push) Waiting to run
Linux / rockylinux/rockylinux:10 (push) Waiting to run
Linux / rockylinux:8 (push) Waiting to run
Linux / rockylinux:9 (push) Waiting to run
Linux / ubuntu:22.04 (push) Waiting to run
Linux / ubuntu:24.04 (push) Waiting to run
Linux / ubuntu:25.04 (push) Waiting to run
Linux / ubuntu:25.10 (push) Waiting to run
Linux / ubuntu:26.04 (push) Waiting to run
Windows / Windows (push) Waiting to run
docs: clarify OTLPMetricsWriter unavailability on Debian 11 and Ubunt…
2026-05-05 11:28:58 +00:00
Manas Singh
8d9b8ae0fd
docs: note OTLP metrics package limitation on Debian 11 and Ubuntu 22.04 and Amazon Linux 2 2026-05-05 10:13:16 +02:00
Alexander Aleksandrovič Klimov
73665c25c0
Merge pull request #10832 from Icinga/fix-openSUSE15.6-GHA
Fix openSUSE 15.6 GitHub actions
2026-05-05 08:00:14 +00:00
Alexander A. Klimov
4a868146dd Fix openSUSE 15.6 GitHub actions
The runner image ships libncurses6-6.1-150000.5.33.1, but the only
ncurses-devel available in the configured repos is 6.1-150000.5.30.1,
which requires an exact-version match on libncurses6.
2026-04-30 11:13:10 +02:00
Alexander Aleksandrovič Klimov
75361cb260
Merge pull request #10824 from Icinga/Boost1.91
Some checks failed
Container Image / Container Image (push) Has been cancelled
Linux / alpine:bash (push) Has been cancelled
Linux / amazonlinux:2 (push) Has been cancelled
Linux / amazonlinux:2023 (push) Has been cancelled
Linux / debian:11 (linux/386) (push) Has been cancelled
Linux / debian:11 (push) Has been cancelled
Linux / debian:12 (linux/386) (push) Has been cancelled
Linux / debian:12 (push) Has been cancelled
Linux / debian:13 (push) Has been cancelled
Linux / fedora:41 (push) Has been cancelled
Linux / fedora:42 (push) Has been cancelled
Linux / fedora:43 (push) Has been cancelled
Linux / fedora:44 (push) Has been cancelled
Linux / opensuse/leap:15.6 (push) Has been cancelled
Linux / opensuse/leap:16.0 (push) Has been cancelled
Linux / registry.suse.com/bci/bci-base:16.0 (push) Has been cancelled
Linux / registry.suse.com/suse/sle15:15.6 (push) Has been cancelled
Linux / registry.suse.com/suse/sle15:15.7 (push) Has been cancelled
Linux / rockylinux/rockylinux:10 (push) Has been cancelled
Linux / rockylinux:8 (push) Has been cancelled
Linux / rockylinux:9 (push) Has been cancelled
Linux / ubuntu:22.04 (push) Has been cancelled
Linux / ubuntu:24.04 (push) Has been cancelled
Linux / ubuntu:25.04 (push) Has been cancelled
Linux / ubuntu:25.10 (push) Has been cancelled
Linux / ubuntu:26.04 (push) Has been cancelled
Windows / Windows (push) Has been cancelled
Bump Boost shipped for Windows to v1.91
2026-04-30 08:11:33 +00:00
Alexander A. Klimov
e9138b71f5 Bump Boost shipped for Windows to v1.91
Update the default Boost version from 1.90.0 to 1.91.0
across all Windows build configuration scripts.
2026-04-24 11:11:11 +02:00
Alexander Aleksandrovič Klimov
cf699b2cd4
Add Fedora 44 to CI workflow (#10803)
Some checks failed
Container Image / Container Image (push) Has been cancelled
Linux / alpine:bash (push) Has been cancelled
Linux / amazonlinux:2 (push) Has been cancelled
Linux / amazonlinux:2023 (push) Has been cancelled
Linux / debian:11 (linux/386) (push) Has been cancelled
Linux / debian:11 (push) Has been cancelled
Linux / debian:12 (linux/386) (push) Has been cancelled
Linux / debian:12 (push) Has been cancelled
Linux / debian:13 (push) Has been cancelled
Linux / fedora:41 (push) Has been cancelled
Linux / fedora:42 (push) Has been cancelled
Linux / fedora:43 (push) Has been cancelled
Linux / fedora:44 (push) Has been cancelled
Linux / opensuse/leap:15.6 (push) Has been cancelled
Linux / opensuse/leap:16.0 (push) Has been cancelled
Linux / registry.suse.com/bci/bci-base:16.0 (push) Has been cancelled
Linux / registry.suse.com/suse/sle15:15.6 (push) Has been cancelled
Linux / registry.suse.com/suse/sle15:15.7 (push) Has been cancelled
Linux / rockylinux/rockylinux:10 (push) Has been cancelled
Linux / rockylinux:8 (push) Has been cancelled
Linux / rockylinux:9 (push) Has been cancelled
Linux / ubuntu:22.04 (push) Has been cancelled
Linux / ubuntu:24.04 (push) Has been cancelled
Linux / ubuntu:25.04 (push) Has been cancelled
Linux / ubuntu:25.10 (push) Has been cancelled
Linux / ubuntu:26.04 (push) Has been cancelled
Windows / Windows (push) Has been cancelled
2026-04-23 12:25:35 +00:00
Alexander Aleksandrovič Klimov
1b4d0bb931
Merge pull request #10802 from Icinga/Al2Klimov-patch-3
Add Ubuntu 26.04 to CI workflow
2026-04-23 12:25:24 +00:00
Julian Brost
327eac3d9e
Merge pull request #10812 from Icinga/forward-port-2.15.3-changelog
Forward-port v2.15.3 changelog to master branch
2026-04-23 14:11:33 +02:00
Julian Brost
4bd2222412
Merge pull request #9719 from Icinga/execvp
ProcessSpawnImpl(): use POSIX execvp(3), not own copy of GNU/OpenBSD-only execvpe(3)
2026-04-23 14:04:31 +02:00
Johannes Schmidt
6840c2abab Update changelog for v2.15.3 2026-04-23 11:10:27 +02:00
Julian Brost
5855790474
Merge pull request #10760 from Icinga/changelog-216
Some checks failed
Container Image / Container Image (push) Has been cancelled
Linux / alpine:bash (push) Has been cancelled
Linux / amazonlinux:2 (push) Has been cancelled
Linux / amazonlinux:2023 (push) Has been cancelled
Linux / debian:11 (linux/386) (push) Has been cancelled
Linux / debian:11 (push) Has been cancelled
Linux / debian:12 (linux/386) (push) Has been cancelled
Linux / debian:12 (push) Has been cancelled
Linux / debian:13 (push) Has been cancelled
Linux / fedora:41 (push) Has been cancelled
Linux / fedora:42 (push) Has been cancelled
Linux / fedora:43 (push) Has been cancelled
Linux / opensuse/leap:15.6 (push) Has been cancelled
Linux / opensuse/leap:16.0 (push) Has been cancelled
Linux / registry.suse.com/bci/bci-base:16.0 (push) Has been cancelled
Linux / registry.suse.com/suse/sle15:15.6 (push) Has been cancelled
Linux / registry.suse.com/suse/sle15:15.7 (push) Has been cancelled
Linux / rockylinux/rockylinux:10 (push) Has been cancelled
Linux / rockylinux:8 (push) Has been cancelled
Linux / rockylinux:9 (push) Has been cancelled
Linux / ubuntu:22.04 (push) Has been cancelled
Linux / ubuntu:24.04 (push) Has been cancelled
Linux / ubuntu:25.04 (push) Has been cancelled
Linux / ubuntu:25.10 (push) Has been cancelled
Windows / Windows (push) Has been cancelled
Release v2.16.0
2026-04-22 11:29:50 +02:00
Johannes Schmidt
03d3558621
Merge pull request #10799 from Icinga/fix-pdwc-tls-host-check
Fix host name verification for `PerfdataWriterConnection`
2026-04-22 11:22:27 +02:00
Yonas Habteab
81d39f1f78
Merge pull request #10808 from Icinga/dependabot/github_actions/korthout/backport-action-4.4.0
Bump korthout/backport-action from 4.3.0 to 4.4.0
2026-04-22 09:21:51 +02:00
Johannes Schmidt
7ee3386622 Fix PerfdataWriterConnection test-cases on parallel build 2026-04-22 08:36:28 +02:00
dependabot[bot]
61c9da0ea6
Bump korthout/backport-action from 4.3.0 to 4.4.0
Bumps [korthout/backport-action](https://github.com/korthout/backport-action) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](3c06f323a5...ad30f01dbe)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-22 04:20:00 +00:00
Johannes Schmidt
9b1d41db83 Release v2.16.0 2026-04-21 17:20:46 +02:00
Johannes Schmidt
10c32bf325 Update changelog for v2.16 2026-04-21 17:20:46 +02:00
Johannes Schmidt
c52bac64e8 Update Upgrading docs for v2.16 2026-04-21 17:20:43 +02:00
Johannes Schmidt
aab0b64f3a Generate all unit-test certificates with CN=localhost 2026-04-21 16:11:57 +02:00
Yonas Habteab
efb6070415
Merge pull request #10804 from Icinga/publiccode-yml-gpl3
Some checks are pending
Container Image / Container Image (push) Waiting to run
Linux / alpine:bash (push) Waiting to run
Linux / amazonlinux:2 (push) Waiting to run
Linux / amazonlinux:2023 (push) Waiting to run
Linux / debian:11 (linux/386) (push) Waiting to run
Linux / debian:11 (push) Waiting to run
Linux / debian:12 (linux/386) (push) Waiting to run
Linux / debian:12 (push) Waiting to run
Linux / debian:13 (push) Waiting to run
Linux / fedora:41 (push) Waiting to run
Linux / fedora:42 (push) Waiting to run
Linux / fedora:43 (push) Waiting to run
Linux / opensuse/leap:15.6 (push) Waiting to run
Linux / opensuse/leap:16.0 (push) Waiting to run
Linux / registry.suse.com/bci/bci-base:16.0 (push) Waiting to run
Linux / registry.suse.com/suse/sle15:15.6 (push) Waiting to run
Linux / registry.suse.com/suse/sle15:15.7 (push) Waiting to run
Linux / rockylinux/rockylinux:10 (push) Waiting to run
Linux / rockylinux:8 (push) Waiting to run
Linux / rockylinux:9 (push) Waiting to run
Linux / ubuntu:22.04 (push) Waiting to run
Linux / ubuntu:24.04 (push) Waiting to run
Linux / ubuntu:25.04 (push) Waiting to run
Linux / ubuntu:25.10 (push) Waiting to run
Windows / Windows (push) Waiting to run
publiccode.yml: update to GPL 3 (or later)
2026-04-21 15:38:21 +02:00
Alexander Aleksandrovič Klimov
00e03c975d
Add Fedora 44 to CI workflow 2026-04-20 16:40:02 +02:00
Alexander Aleksandrovič Klimov
de258f09d5
Add Ubuntu 26.04 to CI workflow 2026-04-20 16:37:58 +02:00
Julian Brost
4beafcdbfe publiccode.yml: update to GPL 3 (or later)
The overall license changes to GPL 3 (or later) with the 2.16.0 release. This
file on the default branch was intentionally kept on the older license
information to reflect the license information of released versions. Now it's
time to update it here as well for the upcoming 2.16.0 release.
2026-04-20 16:31:43 +02:00
Yonas Habteab
edff43d962
Merge pull request #10801 from Icinga/clang-warnings
Some checks are pending
Container Image / Container Image (push) Waiting to run
Linux / alpine:bash (push) Waiting to run
Linux / amazonlinux:2 (push) Waiting to run
Linux / amazonlinux:2023 (push) Waiting to run
Linux / debian:11 (linux/386) (push) Waiting to run
Linux / debian:11 (push) Waiting to run
Linux / debian:12 (linux/386) (push) Waiting to run
Linux / debian:12 (push) Waiting to run
Linux / debian:13 (push) Waiting to run
Linux / fedora:41 (push) Waiting to run
Linux / fedora:42 (push) Waiting to run
Linux / fedora:43 (push) Waiting to run
Linux / opensuse/leap:15.6 (push) Waiting to run
Linux / opensuse/leap:16.0 (push) Waiting to run
Linux / registry.suse.com/bci/bci-base:16.0 (push) Waiting to run
Linux / registry.suse.com/suse/sle15:15.6 (push) Waiting to run
Linux / registry.suse.com/suse/sle15:15.7 (push) Waiting to run
Linux / rockylinux/rockylinux:10 (push) Waiting to run
Linux / rockylinux:8 (push) Waiting to run
Linux / rockylinux:9 (push) Waiting to run
Linux / ubuntu:22.04 (push) Waiting to run
Linux / ubuntu:24.04 (push) Waiting to run
Linux / ubuntu:25.04 (push) Waiting to run
Linux / ubuntu:25.10 (push) Waiting to run
Windows / Windows (push) Waiting to run
Silence `unnecessary-virtual-specifier` clang warning
2026-04-20 16:15:41 +02:00
Johannes Schmidt
b170c3dc75 Silence -Wunnecessary-virtual-specifier warning on clang 2026-04-20 12:46:50 +02:00
Yonas Habteab
928235c838
Merge pull request #10800 from Icinga/fix-otel-stats
OTLPMetricsWriter: don't add queue stats as counter
2026-04-20 12:25:55 +02:00
Yonas Habteab
d7ed56baa8
Merge pull request #10798 from Icinga/fix-misleading-tls-timeout-logging
Fix misleading TLS handshake error logging
2026-04-20 09:54:02 +02:00
Yonas Habteab
bc5f01d0fc OTLPMetricsWriter: don't add queue stats as counter 2026-04-20 09:15:53 +02:00
Julian Brost
61c6c7f110
Merge pull request #10619 from Icinga/efficient-config-and-state-update-queue
IcingaDB: better config and state update queueing
2026-04-17 11:19:50 +02:00
Johannes Schmidt
f5be692d33 Correctly create AsioTlsStream with host argument
This was omitted by accident from the original PR, despite
being done in the original perfdata writer connection code.

Without setting this parameter, host name verification will be
disabled, which poses a security risk.
2026-04-17 10:08:20 +02:00
Julian Brost
ccf090ea82
Merge pull request #10795 from Icinga/something-weird-is-going-on
Fix compiler crash on SLES 15.7 arm64 runner
2026-04-17 09:54:17 +02:00
Julian Brost
1b33451665 Fix misleading TLS handshake error logging
The log message on TLS handshake errors always stated that a client handshake
failed, even if if the connection was acting as the server. The commit changes
it so that the actual role is taken into account.
2026-04-16 17:49:48 +02:00
Yonas Habteab
a01870a6aa Fix compiler crash on SLES 15.7 arm64 runner 2026-04-16 14:01:49 +02:00
Julian Brost
647b2b2101
Merge pull request #10789 from Icinga/otel-fixes
Timeout: lift `VERIFY` -> `ASSERT` to prevent crashes in release builds
2026-04-16 12:48:36 +02:00
Yonas Habteab
bfb0e7db12 Inline SendNextUpdate & remove superfluous m_RconWorker checks 2026-04-16 08:53:58 +02:00
Yonas Habteab
e4436cbcf0 IoEngine: introduce & use IsStrandRunningOnThisThread function 2026-04-15 17:51:17 +02:00
Yonas Habteab
99328ec417 Log pending items stats regularly & include them as perfdata in IcingaDB check 2026-04-15 17:33:43 +02:00
Yonas Habteab
25a18a5a7e OTel: downgrade broken_pipe errors to debug log 2026-04-15 17:25:14 +02:00
Yonas Habteab
ecf5632ef8 Timeout: lift VERIFY -> ASSERT to prevent crashes in release builds
`strand.running_in_this_thread()` relies on thread-local storage
internally, and may return false positives if the coroutine is resumed
in a different thread than it was suspended in. In debug builds, this is
not problem, since there's no TLS optimization done by the compiler, but
in release builds, the compiler might cache the address of the
thread-local variable read before the coroutine suspension, and thus
potentially reuse the same address in a different thread after
resumption, which would cause `running_in_this_thread()` to return false
or even crash (but we didn't see any crashes related to this). So,
perform the assertion only in debug builds to prevent potential wrong
usages of the `Timeout` class. For more details, see [^1][^2][^3].

[^1]: https://github.com/chriskohlhoff/asio/issues/1366
[^2]: https://bugs.llvm.org/show_bug.cgi?id=19177
[^3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26461
2026-04-15 17:25:14 +02:00