mirror of
https://github.com/prometheus/alertmanager
synced 2024-12-14 18:36:52 +00:00
d4788ed195
TestAlertsSubscribePutStarvation tests starvation of `iterator.Close` and `alerts.Put`. Both `Subscribe` and `Put` use the Alerts.mtx lock. `Subscribe` needs it to subscribe and more importantly unsubscribe `Alerts.listeners`. `Put` uses the lock to add additional alerts and iterate the `Alerts.listeners` map. If the channel of a listener is at its limit, `alerts.Lock` is blocked, whereby a listener can not unsubscribe as the lock is hold by `alerts.Lock`. Signed-off-by: Max Leonard Inden <IndenML@gmail.com> |
||
---|---|---|
.. | ||
mem | ||
provider.go |