@cryptotaxi247 / netdata-1 / commits / 510f134d7

fix(go.d): avoid blocking all jobs when stopping a slow job (#21448)

Ilya Mashchenko committed Dec 11, 2025 at 14:46 UTC 510f134d7ba481ae729ce411eb34c5387e8e7e32
1 file changed +8 -7
src/go/plugin/go.d/agent/jobmgr/manager.go
+8 -7
@@ -259,24 +259,25 @@ func (m *Manager) runNotifyRunningJobs() {
259 }
260
261 func (m *Manager) startRunningJob(job *module.Job) {
262 + m.stopRunningJob(job.FullName())
263 +
264 m.runningJobs.lock()
265 defer m.runningJobs.unlock()
266
265 - if job, ok := m.runningJobs.lookup(job.FullName()); ok {
266 - job.Stop()
267 - }
268 -
267 go job.Start()
268 m.runningJobs.add(job.FullName(), job)
269 }
270
271 func (m *Manager) stopRunningJob(name string) {
272 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()
278
277 - if job, ok := m.runningJobs.lookup(name); ok {
279 + if ok {
280 job.Stop()
279 - m.runningJobs.remove(name)
281 }
282 }
283