Skip to content

v12- fix(forwarder): preserve HTTP/HTTPS integrations on config sync#2308

Merged
Kbayero merged 1 commit into
release/v12.0.0from
backlog/v12-http-integrations-lost-after-restart
Jul 1, 2026
Merged

v12- fix(forwarder): preserve HTTP/HTTPS integrations on config sync#2308
Kbayero merged 1 commit into
release/v12.0.0from
backlog/v12-http-integrations-lost-after-restart

Conversation

@yllada

@yllada yllada commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

What

SyncCollectorConfig was deleting HTTP/HTTPS-only integrations (e.g. github)
on every service restart because they are not present in ProtoPorts.

Why

HTTP integrations like github live only in HTTPPorts and are written to
cfg.Integrations[key].HTTPS by EnableHTTPIntegration. The sync loop checked
only ProtoPorts for known keys, so on the next boot it treated github as
obsolete and removed it — silently losing the enabled integration.

Fix

Added a guard in the cleanup loop to skip deletion when the integration entry
has an active HTTP or HTTPS pointer. Those entries are owned by
enable-integration / disable-integration and must not be touched by sync.

SyncCollectorConfig was deleting HTTP/HTTPS-only integrations (e.g. github)
on every service restart because they are not present in ProtoPorts.

Added a guard to skip deletion when the integration has an active HTTP or
HTTPS entry, since those are managed by enable-integration / disable-integration.
@yllada yllada linked an issue Jul 1, 2026 that may be closed by this pull request
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

🛑 AI review — Blocking issues

One or more high/critical issues can break things and must be fixed before merging. Details below.

⚠️ architecture (gemini-3-flash-lite) — non-blocking warnings

Summary: Logic change in SyncCollectorConfig prevents removal of HTTP/HTTPS integrations; minor formatting changes included.

  • medium collectors/forwarder/collector/config.go:58 — Hardcoding logic to skip deletion of HTTP/HTTPS integrations in SyncCollectorConfig may lead to orphaned configurations. Ensure this logic is consistent with the global collector lifecycle management.

🛑 bugs (gemini-3-flash-lite) — blocking — must fix before merge

Summary: Concurrent map iteration modification bug and potential nil pointer dereference in SyncCollectorConfig

  • critical collectors/forwarder/collector/config.go:56 — Concurrent map modification: deleting from 'cnf.Integrations' while iterating over it using 'for key := range cnf.Integrations' will cause a runtime panic in Go.
  • high collectors/forwarder/collector/config.go:57 — Potential nil pointer dereference: 'cnf.Integrations[key]' is accessed before checking if the key exists in the map, which could lead to a panic if the map state is inconsistent.

security (gemini-3-flash-lite) — clean

Summary: The diff contains only minor logic adjustments to configuration synchronization and whitespace/formatting changes; no security vulnerabilities identified.

No findings.

@utmstackprapprover utmstackprapprover Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes requested — AI review found blocking issues (high/critical, or engineer review required). See above.

@Kbayero Kbayero merged commit 7cf512a into release/v12.0.0 Jul 1, 2026
4 of 6 checks passed
@Kbayero Kbayero deleted the backlog/v12-http-integrations-lost-after-restart branch July 1, 2026 15:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v12 - forwarder HTTP integrations lost after service restart

2 participants