I found issue that might be a potential memory leak. There are processes in the cache with refcnt == 0 and color == deletePending. Our usual dump command, tetra dump processcache --exclude-execve-map-processes --skip-zero-refcnt --max-recv-size 1000000000, does not show them because of the zero refcount. Even when running it without that flag, it still looks like everything is fine and as if the process is about to be deleted.
Problem
When a process in the GC deleteQueue is no longer removable (e.g. a new child appeared between ticks), the GC drops it from the queue but does not reset its color back to inUse. https://github.com/cilium/tetragon/blob/main/pkg/process/cache.go#L79
If the process later becomes removable again and deletePending() sends it to deleteChan, the handler sees color != inUse and skips re-adding it to the queue. https://github.com/cilium/tetragon/blob/main/pkg/process/cache.go#L98
The process is permanently stuck — never collected, only reclaimable via LRU eviction.