gh-138122: Skip threads on EPERM in blocking mode profiler (GH-143368)
When using blocking mode in the remote debugging profiler, ptrace calls to seize threads can fail with EPERM if the thread has exited between listing and attaching, is in a special kernel state, or is already being traced. Previously this raised a RuntimeError that was caught by the Python sampling loop,and retried indefinitely since EPERM is a persistent condition that will not resolve on its own. Treat EPERM the same as ESRCH by returning 1 (skip this thread) instead of -1 (fatal error). This allows profiling to continue with the threads that can be traced rather than entering an endless retry loop printing the same error message repeatedly.
P
Pablo Galindo Salgado committed
27434c68f8c9d8f5e3e1708948a339999172a4bc
Parent: 2c39b9d
Committed by GitHub <noreply@github.com>
on 1/3/2026, 2:37:16 PM