icinga2/lib
Johannes Schmidt 067cd060be 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.

(cherry picked from commit 9a4dd4689c)
2026-07-02 14:32:07 +02:00
..
base Restore single-argument Json.decode() in the DSL 2026-06-30 12:46:07 +00:00
checker Revert "CheckerComponent#CheckThreadProc(): also propagate next check update to Icinga DB" 2026-04-02 16:37:57 +02:00
cli JsonDecode: add depth limit 2026-06-24 11:15:11 +02: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 Freeze perfdata arrays and remove locks in code using them 2026-07-02 14:29:56 +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-07-02 14:32:07 +02:00
pgsql_shim Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
remote Merge branch 'filter-expression-permission-v2.16' into 'support/2.16' 2026-06-24 12:45:25 +00:00
CMakeLists.txt Add common OTel type/lib 2026-04-01 12:18:21 +02:00