Commit graph

14775 commits

Author SHA1 Message Date
Johannes Schmidt
1b568ac50e 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 storag.
2026-04-29 13:29:36 +02:00
Johannes Schmidt
16376c8d8a Avoid too many 'connection refused' errors in log by listening early 2026-04-29 12:47:17 +02:00
Johannes Schmidt
0839cf8431 Read until end of file in response reading test-cases 2026-04-29 12:47:17 +02:00
Johannes Schmidt
24034e49b2 Fix ineffective cancel() when stuck in perfdata writer handshake
On slow systems like our ARM64 Container Image build async_handshake()
can not be cancelled in one go but needs two cancels with a chance
to run the completion handler in between. The exact reason is unknown,
and this has been found through trial and error. The alternative would
have been a socket close() in case the connection is not fully established.
2026-04-29 12:47:17 +02:00
Johannes Schmidt
100206ff06 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-04-29 12:47:17 +02:00
Johannes Schmidt
1732bec39a Double time-values for timer tests 2026-04-29 12:47:17 +02:00
Johannes Schmidt
79921ef09a 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-04-29 12:46:29 +02:00
Johannes Schmidt
8052c9ab9b Enable parallel testing in Linux CI and container image build 2026-04-29 12:46:29 +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
Yonas Habteab
8296ebce5f
Merge pull request #10786 from Icinga/OpenSSL-3.5.6
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
Bump OpenSSL shipped for Windows to v3.5.6
2026-04-13 10:42:21 +02:00
Yonas Habteab
67f72f9054
Merge pull request #10788 from Icinga/dependabot/github_actions/actions/create-github-app-token-3.1.1
Bump actions/create-github-app-token from 3.0.0 to 3.1.1
2026-04-13 09:25:59 +02:00
dependabot[bot]
c8920ac6b8
Bump actions/create-github-app-token from 3.0.0 to 3.1.1
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 3.0.0 to 3.1.1.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/v3.0.0...v3.1.1)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 3.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 04:22:59 +00:00
Alexander A. Klimov
ee99d71a3e Bump OpenSSL shipped for Windows to v3.5.6
Update the OpenSSL version referenced in the Windows dev setup script
and the build configuration script from v3.5.5 to v3.5.6.
2026-04-09 15:19:18 +02:00
Julian Brost
3a39ceb603
Merge pull request #10779 from Icinga/changelog-forward-port
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
Forward port Changelog entries from previous releases
2026-04-07 10:31:59 +02:00
Julian Brost
a810d6409b
Merge pull request #10767 from Icinga/certificate_fixture_two_electric_boogaloo
Generate certificates in unit-test fixtures to fix parallel test execution
2026-04-07 09:35:47 +02:00
Henrik Triem
0b7034b7da Reword Changelog for SELinux Issue
(cherry picked from commit 61dac6fbb2)
2026-04-02 17:19:50 +02:00
Julian Brost
20e671ec98 Add security fixes to v2.14.7 changelog
(cherry picked from commit 67072d3c5b)
2026-04-02 17:18:40 +02:00