Currently, the Flow controller can only update one component at a time. This means that an individual component which takes a very long time to update can prevent other components from updating.
We should find a way to eliminate or minimize the risk of components being able to block graph evaluation.
See grafana/agent#2871 for one instance where this happened in the past.
@cyriltovena suggested we could add timeouts through a context. This could help in some scenarios, but it wouldn't help in scenarios where the slow update is coming from a locked mutex, which was the case for grafana/agent#2871.
Currently, the Flow controller can only update one component at a time. This means that an individual component which takes a very long time to update can prevent other components from updating.
We should find a way to eliminate or minimize the risk of components being able to block graph evaluation.
See grafana/agent#2871 for one instance where this happened in the past.
@cyriltovena suggested we could add timeouts through a context. This could help in some scenarios, but it wouldn't help in scenarios where the slow update is coming from a locked mutex, which was the case for grafana/agent#2871.