icinga2/lib
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
..
base Merge pull request #9719 from Icinga/execvp 2026-04-23 14:04:31 +02:00
checker Revert "CheckerComponent#CheckThreadProc(): also propagate next check update to Icinga DB" 2026-04-02 16:37:57 +02:00
cli Merge pull request #10028 from RincewindsHat/node_setup_no_globals 2026-02-12 14:44:50 +01:00
compat Add warnings to deprecated features indicating removal in v2.18 2026-03-27 14:20:55 +01:00
config Merge pull request #10734 from Icinga/deprecate-everything-we-dont-like 2026-03-31 10:25:44 +02:00
db_ido Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
db_ido_mysql Add warnings to deprecated features indicating removal in v2.18 2026-03-27 14:20:55 +01:00
db_ido_pgsql Add warnings to deprecated features indicating removal in v2.18 2026-03-27 14:20:55 +01:00
icinga Silence -Wunnecessary-virtual-specifier warning on clang 2026-04-20 12:46:50 +02:00
icingadb Merge pull request #10619 from Icinga/efficient-config-and-state-update-queue 2026-04-17 11:19:50 +02:00
livestatus Add warnings to deprecated features indicating removal in v2.18 2026-03-27 14:20:55 +01:00
methods Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
mysql_shim Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
notification Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
otel OTel: downgrade broken_pipe errors to debug log 2026-04-15 17:25:14 +02:00
perfdata Fix PerfdataWriterConnection segfaults on non-X86 architectures 2026-04-29 13:29:36 +02:00
pgsql_shim Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
remote Fix misleading TLS handshake error logging 2026-04-16 17:49:48 +02:00
CMakeLists.txt Add common OTel type/lib 2026-04-01 12:18:21 +02:00