Skip to content

Commit eaf7bd4

Browse files
committed
fix(go.d): avoid blocking all jobs when stopping a slow job in the Manager
1 parent 73403c0 commit eaf7bd4

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

src/go/plugin/go.d/agent/jobmgr/manager.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -259,24 +259,25 @@ func (m *Manager) runNotifyRunningJobs() {
259259
}
260260

261261
func (m *Manager) startRunningJob(job *module.Job) {
262+
m.stopRunningJob(job.FullName())
263+
262264
m.runningJobs.lock()
263265
defer m.runningJobs.unlock()
264266

265-
if job, ok := m.runningJobs.lookup(job.FullName()); ok {
266-
job.Stop()
267-
}
268-
269267
go job.Start()
270268
m.runningJobs.add(job.FullName(), job)
271269
}
272270

273271
func (m *Manager) stopRunningJob(name string) {
274272
m.runningJobs.lock()
275-
defer m.runningJobs.unlock()
273+
job, ok := m.runningJobs.lookup(name)
274+
if ok {
275+
m.runningJobs.remove(name)
276+
}
277+
m.runningJobs.unlock()
276278

277-
if job, ok := m.runningJobs.lookup(name); ok {
279+
if ok {
278280
job.Stop()
279-
m.runningJobs.remove(name)
280281
}
281282
}
282283

0 commit comments

Comments
 (0)