Skip to content

Add better error if the profiler in profiling.sample fails with permission error #138704

@pablogsal

Description

@pablogsal

Currently we show:

❯ ./python.exe -m profiling.sampling --mode=cpu -m test test_list
Traceback (most recent call last):
  File "/Users/pgalindo3/github/python/main/Lib/runpy.py", line 198, in _run_module_as_main
    return _run_code(code, main_globals, None,
                     "__main__", mod_spec)
  File "/Users/pgalindo3/github/python/main/Lib/runpy.py", line 88, in _run_code
    exec(code, run_globals)
    ~~~~^^^^^^^^^^^^^^^^^^^
  File "/Users/pgalindo3/github/python/main/Lib/profiling/sampling/__main__.py", line 6, in <module>
    main()
    ~~~~^^
  File "/Users/pgalindo3/github/python/main/Lib/profiling/sampling/sample.py", line 869, in main
    wait_for_process_and_sample(process.pid, sort_value, args)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/pgalindo3/github/python/main/Lib/profiling/sampling/sample.py", line 650, in wait_for_process_and_sample
    sample(
    ~~~~~~^
        pid,
        ^^^^
    ...<9 lines>...
        skip_idle=skip_idle,
        ^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/pgalindo3/github/python/main/Lib/profiling/sampling/sample.py", line 588, in sample
    profiler = SampleProfiler(
        pid, sample_interval_usec, all_threads=all_threads
    )
  File "/Users/pgalindo3/github/python/main/Lib/profiling/sampling/sample.py", line 122, in __init__
    self.unwinder = _remote_debugging.RemoteUnwinder(
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.pid, all_threads=self.all_threads
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
PermissionError: Cannot get task port for PID 30630 (kern_return_t: 5). This typically requires running as root or having the 'com.apple.system-task-ports' entitlement.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibStandard Library Python modules in the Lib/ directorytype-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions