Browse Source

fix race when starting a service while the agent `serviceManager` is … (#12302)

* fix race when starting a service while the agent `serviceManager` is stopping

* add changelog
pull/12311/head
Dhia Ayachi 3 years ago committed by GitHub
parent
commit
4f0a71d7b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      .changelog/12302.txt
  2. 4
      agent/agent.go

3
.changelog/12302.txt

@ -0,0 +1,3 @@
```release-note:bug
Fix a data race when a service is added while the agent is shutting down..
```

4
agent/agent.go

@ -1368,14 +1368,14 @@ func (a *Agent) ShutdownAgent() error {
// this should help them to be stopped more quickly // this should help them to be stopped more quickly
a.baseDeps.AutoConfig.Stop() a.baseDeps.AutoConfig.Stop()
a.stateLock.Lock()
defer a.stateLock.Unlock()
// Stop the service manager (must happen before we take the stateLock to avoid deadlock) // Stop the service manager (must happen before we take the stateLock to avoid deadlock)
if a.serviceManager != nil { if a.serviceManager != nil {
a.serviceManager.Stop() a.serviceManager.Stop()
} }
// Stop all the checks // Stop all the checks
a.stateLock.Lock()
defer a.stateLock.Unlock()
for _, chk := range a.checkMonitors { for _, chk := range a.checkMonitors {
chk.Stop() chk.Stop()
} }

Loading…
Cancel
Save