Has anybody else encountered issues with `pants.ba...
# general
s
Has anybody else encountered issues with
pants.backend.python.providers.experimental.python_build_standalone
on MacOS? Specifically, any goal that requires a version that's not already in the cache fails with an opaque error message:
Copy code
10:22:58.70 [INFO] Completed: Scheduling: Extract cpython-3.10.19%2B20251217-aarch64-apple-darwin-install_only_stripped.tar.gz
10:22:58.80 [INFO] Completed: Scheduling: Install Python 3.10.19
10:22:58.80 [ERROR] 1 Exception encountered:

Engine traceback:
  in `generate-lockfiles` goal

ProcessExecutionFailure: Process 'Install Python 3.10.19' failed with exit code -9.
stdout:

stderr:



Use `--keep-sandboxes=on_failure` to preserve the process chroot for inspection.
same setup works fine on linux. if i delete the cached 3.10.19, it successfuly redownlads it and reinstalls it. only on MacOS does this fail
running with
-ldebug
and `--keep-sandboxes=on_failure`:
Copy code
位 pants --keep-sandboxes=on_failure export -ldebug --resolve=python-default --py-resolve-format=symlinked_immutable_virtualenv
[2026-08-19T14:12:51Z DEBUG pantsd] Looking for pantsd metadata in /Users/trembl94/Projects/tools/.pants.d/pids as specified by [GLOBAL] pants_subprocessdir = .pants.d/pids via Default.
[2026-08-19T14:12:51Z DEBUG pantsd] Parsed port 65437 from /Users/trembl94/Projects/tools/.pants.d/pids/b8dcec3ab6ff/pantsd/socket.
10:12:51.64 [DEBUG] acquiring lock: <pants.pantsd.lock.OwnerPrintingInterProcessFileLock object at 0x116358d70>
10:12:51.64 [DEBUG] terminating pantsd
10:12:51.64 [DEBUG] sending signal 15 to pid 61286
10:12:51.75 [DEBUG] successfully terminated pid 61286
10:12:51.75 [DEBUG] purging metadata directory: /Users/trembl94/Projects/tools/.pants.d/pids/b8dcec3ab6ff/pantsd
10:12:51.75 [DEBUG] Launching pantsd
10:12:51.75 [DEBUG] purging metadata directory: /Users/trembl94/Projects/tools/.pants.d/pids/b8dcec3ab6ff/pantsd
10:12:51.75 [WARN] /Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/pantsd/process_manager.py:468: DeprecationWarning: This process (pid=62199) is multi-threaded, use of fork() may lead to deadlocks in the child.
  pid = os.fork()

10:12:51.75 [DEBUG] pantsd command is: PANTS_DAEMON_ENTRYPOINT=pants.pantsd.pants_daemon:launch_new_pantsd_instance PYTHONPATH=/Users/trembl94/Library/Caches/nce/8b7865e511b17093e090449bf71eb52933c17d45ad5257ddeacaffbb2c7239df/cpython-3.14.4+20260414-aarch64-apple-darwin-install_only.tar.gz/python/lib/python314.zip:/Users/trembl94/Library/Caches/nce/8b7865e511b17093e090449bf71eb52933c17d45ad5257ddeacaffbb2c7239df/cpython-3.14.4+20260414-aarch64-apple-darwin-install_only.tar.gz/python/lib/python3.14:/Users/trembl94/Library/Caches/nce/8b7865e511b17093e090449bf71eb52933c17d45ad5257ddeacaffbb2c7239df/cpython-3.14.4+20260414-aarch64-apple-darwin-install_only.tar.gz/python/lib/python3.14/lib-dynload:/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages /Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/bin/python3.14 /Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/bin/pants --keep-sandboxes=on_failure export -ldebug --resolve=python-default --py-resolve-format=symlinked_immutable_virtualenv
10:12:52.56 [DEBUG] pantsd is running at pid 62220, pailgun port is 65444
10:12:52.56 [DEBUG] releasing lock: <pants.pantsd.lock.OwnerPrintingInterProcessFileLock object at 0x116358d70>
10:12:52.56 [DEBUG] Connecting to pantsd on port 65444
10:12:52.56 [DEBUG] Connecting to pantsd on port 65444 attempt 1/3
10:12:52.56 [DEBUG] Connected to pantsd
10:12:52.56 [DEBUG] work dir: /Users/trembl94/Projects/tools
10:12:52.56 [DEBUG] Found BuildRoot("/Users/trembl94/Projects/tools") starting search from /Users/trembl94/Projects/tools.
10:12:52.57 [DEBUG] Found BuildRoot("/Users/trembl94/Projects/tools") starting search from /Users/trembl94/Projects/tools.
10:12:52.58 [DEBUG] computed 1 nodes in 0.005749 seconds. there are 11 total nodes.
[SNIPPED FOR BREVITY]
10:12:52.83 [DEBUG] Starting: pants.backend.python.util_rules.pex.build_pex
10:12:52.83 [DEBUG] Starting: Scheduling: Resolving plugins: setuptools_scm
10:12:52.83 [DEBUG] Completed: Scheduling: Resolving plugins: setuptools_scm
10:12:52.83 [DEBUG] Completed: pants.backend.python.util_rules.pex.build_pex
10:12:52.83 [DEBUG] computed 1 nodes in 0.001525 seconds. there are 128 total nodes.
10:12:52.86 [DEBUG] specs are: Specs(includes=RawSpecs(description_of_origin='CLI arguments', address_literals=(), file_literals=(), file_globs=(), dir_literals=(), dir_globs=(), recursive_globs=(), ancestor_globs=(), unmatched_glob_behavior=<GlobMatchErrorBehavior.error: 'error'>, filter_by_global_options=True, from_change_detection=False), ignores=RawSpecs(description_of_origin='CLI arguments', address_literals=(), file_literals=(), file_globs=(), dir_literals=(), dir_globs=(), recursive_globs=(), ancestor_globs=(), unmatched_glob_behavior=<GlobMatchErrorBehavior.error: 'error'>, filter_by_global_options=False, from_change_detection=False))
10:12:52.86 [DEBUG] changed_options are: ChangedOptions(since=None, diffspec=None, dependents=<DependentsOption.NONE: 'none'>)
10:12:52.86 [DEBUG] computed 1 nodes in 0.000545 seconds. there are 36 total nodes.
10:12:52.86 [DEBUG] computed 1 nodes in 0.000178 seconds. there are 41 total nodes.
10:12:52.86 [DEBUG] computed 1 nodes in 0.000098 seconds. there are 41 total nodes.
10:12:52.86 [DEBUG] requesting <class 'pants.core.goals.export.Export'> to satisfy execution of `export` goal
10:12:52.86 [DEBUG] Completed: Find targets from input specs
10:12:52.86 [DEBUG] Completed: Finding the `sh` binary
10:12:52.86 [DEBUG] Completed: Finding the `mkdir` binary
10:12:52.86 [DEBUG] Completed: Finding the `test` binary
10:12:52.86 [DEBUG] Completed: Finding the `rm` binary
10:12:52.86 [DEBUG] Completed: Finding the `mv` binary
10:12:52.86 [DEBUG] Completed: Finding the `cp` binary
10:12:52.87 [DEBUG] Acquiring semaphore for process Test binary /usr/bin/tar. with min_concurrency: 1, max_concurrency: 1
10:12:52.87 [DEBUG] Completed: acquire_command_runner_slot
10:12:52.87 [DEBUG] Running Test binary /usr/bin/tar. under semaphore with concurrency id: 1, and concurrency: 1
10:12:52.87 [DEBUG] Materializing directly to "/private/var/folders/89/cs62px5x6250cjvtthkqv7vc0000gp/T/pants-sandbox-YvdEno": DirectoryDigest {
    digest: Digest {
        hash: Fingerprint<e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>,
        size_bytes: 0,
    },
    tree: "Some(..)",
}
10:12:52.87 [DEBUG] /Users/trembl94/.cache/pants/lmdb_store/immutable/files -> /private/var/folders/89/cs62px5x6250cjvtthkqv7vc0000gp/T hardlinkable: true
10:12:52.87 [DEBUG] Completed: setup_sandbox
10:12:52.87 [DEBUG] spawned local process as Some(62275) for Process { argv: ["/usr/bin/tar", "--version"], env: {}, working_directory: None, input_digests: InputDigests { complete: DirectoryDigest { digest: Digest { hash: Fingerprint<e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>, size_bytes: 0 }, tree: "Some(..)" }, nailgun: DirectoryDigest { digest: Digest { hash: Fingerprint<e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>, size_bytes: 0 }, tree: "Some(..)" }, inputs: DirectoryDigest { digest: Digest { hash: Fingerprint<e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>, size_bytes: 0 }, tree: "Some(..)" }, immutable_inputs: {}, use_nailgun: {} }, output_files: {}, output_directories: {}, timeout: None, execution_slot_variable: None, concurrency_available: 0, concurrency: None, description: "Test binary /usr/bin/tar.", level: Debug, append_only_caches: {}, jdk_home: None, cache_scope: PerRestartAlways, execution_environment: ProcessExecutionEnvironment { name: None, platform: Macos_arm64, strategy: Local, local_keep_sandboxes: OnFailure }, remote_cache_speculation_delay: 0ns, attempt: 0 }
10:12:52.88 [DEBUG] Completed: Test binary /usr/bin/tar.
10:12:52.88 [DEBUG] Completed: Scheduling: Test binary /usr/bin/tar.
10:12:52.88 [DEBUG] Completed: Finding the `tar` binary
10:12:52.90 [DEBUG] Completed: Scheduling: Extract cpython-3.10.19%2B20260127-aarch64-apple-darwin-install_only_stripped.tar.gz
10:12:52.90 [DEBUG] Completed: Extracting an archive file
10:12:52.91 [DEBUG] Completed: pants.core.util_rules.external_tool.download_external_tool
10:12:52.91 [DEBUG] Acquiring semaphore for process Install Python 3.10.19 with min_concurrency: 1, max_concurrency: 1
10:12:52.91 [DEBUG] Completed: acquire_command_runner_slot
10:12:52.91 [DEBUG] Running Install Python 3.10.19 under semaphore with concurrency id: 2, and concurrency: 1
10:12:52.91 [DEBUG] Materializing directly to "/private/var/folders/89/cs62px5x6250cjvtthkqv7vc0000gp/T/pants-sandbox-Og845T": DirectoryDigest {
    digest: Digest {
        hash: Fingerprint<8d9df7c53b662b69e41dc36e224403e4caa025825dcf1e0ce9f5bd92439f2096>,
        size_bytes: 176,
    },
    tree: "Some(..)",
}
10:12:53.03 [DEBUG] Completed: setup_sandbox
10:12:53.03 [DEBUG] spawned local process as Some(62291) for Process { argv: ["/bin/sh", "-euc", "\n                    # Step 1: check and skip\n                    if /bin/test -d .python_build_standalone/3.10.19; then\n                        echo \".python_build_standalone/3.10.19 already exists, fully created by earlier execution\" >&2\n                        exit 0\n                    fi\n\n                    # Step 2: copy from the digest into the named cache\n                    /bin/mkdir -p \".python_build_standalone/tmp/pbs-copier-f3afab7c-6d42-47ed-a195-102315380e0d\"\n                    /bin/cp -R python \".python_build_standalone/tmp/pbs-copier-f3afab7c-6d42-47ed-a195-102315380e0d/3.10.19\"\n\n                    # Step 3: attempt to move, squashing the error\n                    /bin/mv \".python_build_standalone/tmp/pbs-copier-f3afab7c-6d42-47ed-a195-102315380e0d/3.10.19\" \".python_build_standalone\" || echo \"mv failed: $?\" >&2\n\n                    # Step 4: confirm and clean-up\n                    if ! /bin/test -d \".python_build_standalone/3.10.19\"; then\n                        echo \"Failed to create .python_build_standalone/3.10.19\" >&2\n                        exit 1\n                    fi\n\n                    # Step 5: remove the temporary directory\n                    /bin/rm -rf \".python_build_standalone/tmp/pbs-copier-f3afab7c-6d42-47ed-a195-102315380e0d\"\n                    "], env: {}, working_directory: None, input_digests: InputDigests { complete: DirectoryDigest { digest: Digest { hash: Fingerprint<1d805bdc3fb213644bda304c8974949ca944cb1d57bee0e98eb3a0cc1d4c9a00>, size_bytes: 81 }, tree: "Some(..)" }, nailgun: DirectoryDigest { digest: Digest { hash: Fingerprint<e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>, size_bytes: 0 }, tree: "Some(..)" }, inputs: DirectoryDigest { digest: Digest { hash: Fingerprint<1d805bdc3fb213644bda304c8974949ca944cb1d57bee0e98eb3a0cc1d4c9a00>, size_bytes: 81 }, tree: "Some(..)" }, immutable_inputs: {}, use_nailgun: {} }, output_files: {}, output_directories: {}, timeout: None, execution_slot_variable: None, concurrency_available: 0, concurrency: None, description: "Install Python 3.10.19", level: Debug, append_only_caches: {CacheName("python_build_standalone"): RelativePath(".python_build_standalone")}, jdk_home: None, cache_scope: PerSession, execution_environment: ProcessExecutionEnvironment { name: None, platform: Macos_arm64, strategy: Local, local_keep_sandboxes: OnFailure }, remote_cache_speculation_delay: 0ns, attempt: 0 }
10:12:53.04 [INFO] Preserving local process execution dir /private/var/folders/89/cs62px5x6250cjvtthkqv7vc0000gp/T/pants-sandbox-Og845T for Install Python 3.10.19
10:12:53.04 [DEBUG] Completed: Install Python 3.10.19
10:12:53.04 [DEBUG] Completed: Scheduling: Install Python 3.10.19
10:12:53.04 [DEBUG] Completed: Find Python interpreter for constraints
10:12:53.04 [DEBUG] Completed: `export` goal
10:12:53.04 [DEBUG] computed 1 nodes in 0.183614 seconds. there are 204 total nodes.
10:12:53.04 [ERROR] 1 Exception encountered:

Engine traceback:
  in `export` goal

ProcessExecutionFailure: Process 'Install Python 3.10.19' failed with exit code -9.
stdout:

stderr:
Contents of sandbox:
Copy code
位 ll /private/var/folders/89/cs62px5x6250cjvtthkqv7vc0000gp/T/pants-sandbox-Og845T
total 8
0 lrwxr-xr-x    1 trembl94  staff    65B Aug 19 10:12 .python_build_standalone -> /Users/trembl94/.cache/pants/named_caches/python_build_standalone
0 drwxr-xr-x    6 trembl94  staff   192B Aug 19 10:12 python
0 drwxr-xr-x    5 trembl94  staff   160B Aug 19 10:12 .
8 -rwxr-xr-x    1 trembl94  staff   1.5K Aug 19 10:12 __run.sh
0 drwx------@ 232 trembl94  staff   7.3K Aug 19 10:28 ..
tested on pants 2.30, 2.31, 2.32, same issue
issue goes away if i comment out
pants.backend.python.providers.experimental.python_build_standalone
from my
pants.toml
c
Could you include --print-stacktrace` too?
s
sure!:
Copy code
位 pants --print-stacktrace export --resolve=python-default --py-resolve-format=symlinked_immutable_virtualenv
11:20:12.37 [WARN] /Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/pantsd/process_manager.py:468: DeprecationWarning: This process (pid=18175) is multi-threaded, use of fork() may lead to deadlocks in the child.
  pid = os.fork()

11:20:13.43 [INFO] Initializing scheduler...
11:20:13.52 [INFO] Scheduler initialized.
11:20:13.84 [ERROR] 1 Exception encountered:

Engine traceback:
  in root
    ..
  in pants.core.goals.export.export_goal
    `export` goal

Traceback (most recent call last):
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/core/goals/export.py", line 208, in export_goal
    all_results = await concurrently(
                  ^^^^^^^^^^^^^^^^^^^
        export(**implicitly({request: ExportRequest})) for request in requests
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 238, in Concurrently
    return await _Concurrently(tuple(__arg0))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 49, in __await__
    result = yield self.calls
             ^^^^^^^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/rules.py", line 66, in wrapper
    return await call
           ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 37, in __await__
    result = yield self
             ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/backend/python/goals/export.py", line 581, in export_virtualenvs
    maybe_venvs = await concurrently(
                  ^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
    )
    ^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 238, in Concurrently
    return await _Concurrently(tuple(__arg0))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 49, in __await__
    result = yield self.calls
             ^^^^^^^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/rules.py", line 66, in wrapper
    return await call
           ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 37, in __await__
    result = yield self
             ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/backend/python/goals/export.py", line 529, in export_virtualenv_for_resolve
    python = await find_interpreter(interpreter_constraints, **implicitly())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/rules.py", line 66, in wrapper
    return await call
           ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 37, in __await__
    result = yield self
             ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/backend/python/util_rules/pex.py", line 393, in find_interpreter
    python = await get_python_executable(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        **implicitly({python_provider(interpreter_constraints): PythonProvider})
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/rules.py", line 66, in wrapper
    return await call
           ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 37, in __await__
    result = yield self
             ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/backend/python/providers/python_build_standalone/rules.py", line 563, in get_python
    await fallible_to_exec_result_or_raise(
    ...<70 lines>...
    )
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/rules.py", line 66, in wrapper
    return await call
           ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/internals/selectors.py", line 37, in __await__
    result = yield self
             ^^^^^^^^^^
  File "/Users/trembl94/Library/Caches/nce/c2e3aae2e56da887ffec28f4cc9df8c0c95c5d6b9d65c334bd4c4be4a3dd702d/bindings/venvs/2.32.0/lib/python3.14/site-packages/pants/engine/process.py", line 390, in fallible_to_exec_result_or_raise
    raise ProcessExecutionFailure(
    ...<5 lines>...
    )
pants.engine.process.ProcessExecutionFailure: Process 'Install Python 3.10.19' failed with exit code -9.
stdout:

stderr:



Use `--keep-sandboxes=on_failure` to preserve the process chroot for inspection.
c
oh hmm, isn't python reporting
-9
a
SIGKILL
?
s
you're right.... this may be an issue with my machine.... ok, will investigate
hmmmm...... figured out why it's getting sigkilled, but not not how to fix it: crash diag report shows
34.36 GB of file backed memory dirtied over 19950 seconds (1722.32 KB per second average), exceeding limit of 397.68 KB per second over 86400 seconds
full crash diag report
c
I don't have experience with Macs, but 34.36 GB seems odd for a tarball of Python
b
Almost certainly lmdb
s
so quick update: that crash diag report doesn't seem to actually be related to my issue at all... There were 4 diag reports for python3.14 and i had attempted this command at least 4 times, so i assumed they were correlated. I was wrong these 4 reports, including the one i attached earlier, appear to have been from the OS killing pantsd, not killing my specific subproc I unfortunately can't find anything in the logs or the console to correlate to this issue.... my only theory right now is that one of the deeply-integrated security systems my organization installed on my mac (SentinelOne or Crowdstrike Falcon) may be intercepting processes on my machine and killing this one every time I invoke it. I'm working with my security team now to try and troubleshoot, hopefully we'll either find the problem or rule out these systems.
I'll let you know when I know more. Thanks for helping me look into this
b
Killing pantsd == lmdb out of control from macOS perspective fwiw.
It (lmdb) is a bunch of large memory mapped files that could churn at a high rate.
Aha, this is in your report:
Copy code
Event:            disk writes
Action taken:     none
Writes:           34.36 GB of file backed memory dirtied over 19950 seconds (1722.32 KB per second average), exceeding limit of 397.68 KB per second over 86400 seconds
So lmdb alarm is just that and presumably nothing to do with kill.
c
(SentinelOne or Crowdstrike Falcon)
You have two!? 馃崕 I'm not sure this helps but I do recall that we had SentinelOne on Mac's the security folks had to chance some setting(?) to stop it from targeting
pantsd
.
s
Thanks @curved-manchester-66006, yeah, we have two. there have been.... issues... with S1, so my understanding is that they're evaluating crowdstrike as a potential replacement Also, FYI, I came back here to say i just got off the phone with one of my security folks, we were able to identify S1 as the cause of this issue. If you have a chance to talk to your security folks about what setting they changed, i could pass it on to my security folks, they would be mighty appreciative 馃槃