Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: race condition UI remotecfg #2160

Merged
merged 3 commits into from
Nov 26, 2024

Conversation

dehaansa
Copy link
Contributor

PR Description

There was a race condition where the http service -> ui service required the remotecfg service to have at least run the first line of its Run() function, but they are all started in parallel in goroutines so there was no guarantee of consistent ordering. See #2157 for a follow up on that concern, but this PR fixes it by only looking to resolve the remotecfg's Data object during HTTP resolution time, where the service should definitely be available.

Which issue(s) this PR fixes

Fixes #2144

Notes to the Reviewer

PR Checklist

  • CHANGELOG.md updated

@dehaansa dehaansa requested a review from a team as a code owner November 26, 2024 14:56
@dehaansa dehaansa changed the title Fix/race condition UI remotecfg fix: race condition UI remotecfg Nov 26, 2024
Copy link
Contributor

@wildum wildum left a comment

Choose a reason for hiding this comment

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

lgtm, thanks!

@wildum wildum merged commit e19c783 into grafana:main Nov 26, 2024
14 of 15 checks passed
@dehaansa dehaansa deleted the fix/race-condition-ui-remotecfg branch November 26, 2024 15:44
ptodev pushed a commit that referenced this pull request Dec 3, 2024
* Refactor ui remtoecfg components to avoid race condition

* Fix accidental cast to pointer that should have been struct

* Update changelog
ptodev added a commit that referenced this pull request Dec 3, 2024
* Fixed an issue in the `otlp.exporter.prometheus` component (#2102)

* Fixed an issue in the `otlp.exporter.prometheus` component

* Fixed an issue in the `otlp.exporter.prometheus` component

* Fix potential deadlock in import statements (#2129)

* Fix potential deadlock in import statements

* change

* typo

* fix: race condition UI remotecfg (#2160)

* Refactor ui remtoecfg components to avoid race condition

* Fix accidental cast to pointer that should have been struct

* Update changelog

* fix: fully prevent panic in remotecfg ui (#2164)

* Fully prevent panic in remotecfg ui

* Address PR feedback

* Fix deadlock due to infinite retry (#2174)

* Fix deadlock due to infinite retry

* changelog

* Update ckit to fix memberlist logging issues (#2186)

* Upgrade ckit and changelog

* go mod tidy

* `loki.source.podlogs`: Fix issue which disables clustering unintentionally. (#2187)

* Fix issue which disables clustering unintentionally.

* prometheus.operator.*: allow setting informer_sync_timeout (#2161)

* prometheus.operator.*: allow setting informer_sync_timeout

* default to 1m

* docs

* fix(pyroscope): allow slashes in tag name (#2172)

* loki.source.podlogs: For clustering only take into account some labels (#2190)

* Only take into account some labels

* Reword docs

* fix: crash when updating import.http config (#2204)

* fix: crash when updating import.http config

* fix key/pattern logic for the attribute processor (#2124)

* fix: Update postgres exporter (#2019)

* Update postgres exporter

* Update changelog

* Use postgres exporter branch that implements exporter package

* Add TODO for future maintainers

* Update VERSION file

* Add missing changelog entry

* Fix pyroscope.write issues with pyroscope.receive_http (#2201)

* Fix pyroscope.write issues with pyroscope.receive_http

The nodejs Pyroscope SDK sends profiles with a `Connection: close` header.
This header was copied to the upstream request, causing connection churn
towards Pyroscope, which can be quite bad on the CPU when using TLS. Do not
copy the `Connection` header from the incoming request to fix this issue.

Additionally, `pyroscope.write` had a single `http.Client` used for
forwarding data from `pyroscope.receive_http`, which may not work if
multiple endpoints are configured with different options. To fix this,
store a `http.Client` for each endpoint.

---------

Co-authored-by: YusifAghalar <[email protected]>
Co-authored-by: Piotr <[email protected]>
Co-authored-by: Sam DeHaan <[email protected]>
Co-authored-by: Craig Peterson <[email protected]>
Co-authored-by: Marc Sanmiquel <[email protected]>
Co-authored-by: Sergei Nikolaev <[email protected]>
Co-authored-by: William Dumont <[email protected]>
Co-authored-by: Sam DeHaan <[email protected]>
Co-authored-by: Gergely Madarász <[email protected]>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Panic when accessing remote configuration tab on alloy http interface
2 participants