diff --git a/processmanager/processinfo.go b/processmanager/processinfo.go index d0e7cf4c6..f47983e6a 100644 --- a/processmanager/processinfo.go +++ b/processmanager/processinfo.go @@ -561,6 +561,17 @@ func (pm *ProcessManager) SynchronizeProcess(pr process.Process) { pid := pr.PID() log.Debugf("= PID: %v", pid) + // Abort early if process is waiting for cleanup in ProcessedUntil + pm.mu.Lock() + _, ok := pm.exitEvents[pid] + pm.mu.Unlock() + + if ok { + log.Debugf("PID %v waiting for cleanup, aborting SynchronizeProcess", pid) + pm.ebpf.RemoveReportedPID(pid) + return + } + pm.mappingStats.numProcAttempts.Add(1) start := time.Now() mappings, err := pr.GetMappings()