tree a7346443bbbd235acbe7fc2bb63a2e1010fa3d6d
parent 2e65252f95661e6a542b39fbf00ae3ead0be7fdb
author Régis Desgroppes <rdesgroppes@gmail.com> 1787112088 +0000
committer GitHub <noreply@github.com> 1787112088 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqhSqoCRC1aQ7uu5UhlAAANPYQAHgHVPfUSF2VgiCm4KRkpsbm
 OVSBaDmIPc3Bi6k0civtwG2oSVZNm4iuvaeelsPquYrOwjHn7jVVXvK+RK4ozmoP
 wVu4lssOFbYnNtdowd6OWQEGdQf3xk2BMZ5eAYQRrW1vlHDcfvIUxxhL9tmrksEs
 SB8dJfFmG2QD9lXtkXToLedGRR0en7fr70WbWde3bwwod9CAvdACnCX/ht+OnOk1
 a+vZaNR0p9LP1rbqe7fNM54m7FhkFr8Gn4jhhm3U4mc5AexEwu6tJvZik6QtI1CQ
 xVFIHXJY8+sllmNJKWNTd3Sa2Il/eUZvCE3BRwqyxODoWCGXGWazL8kux+5WM5j0
 ub0uAsnADZHiAxRDAkG+b2LyzBadke9cJW/mtNvL3MloLz68F4CDNMfZUnJVa4t1
 S5bGaKQ45YJu86sqyPOHfpbYMBEQ0kOHYhNNhemPlDhXKddK6E6IUzyIon68yzhe
 DXBgANN8iDHkgGZKFEcKKaP3TwD3iAQN7n0bH5TtjM+w8Hd9Fm3LNfYJlV51CuxD
 LvTX/RB+Cn7dKpEBOqQf9+DMcwYehFO7L17Zt6zsNU8ZYuyncUudt4Xwi5FKOlEh
 X3kJruBBfN9VyXl+lZF0y/TpBkrOhWqSjFW64I6qixALzEN2UbkHKhLqYOxdzHdr
 nAHpwhsICbA/W++aJ11a
 =7vpQ
 -----END PGP SIGNATURE-----
 

fix(py_test): fix Windows crash in `py_test` main validation (#4079)

`py_test` main validation (`--validate_test_main=enabled`) crashes on
Windows, because it invokes the interpreter via
`exec_tools.exec_interpreter`, which resolves through
`current_interpreter_executable()`'s relocated copy of the interpreter.

The crash may be reproduced on existing tests in the repo, for instance:
```
bazel build \
  --@rules_python//python/config_settings:validate_test_main=enabled  \
  //tests/validate_test_main:validate_test_main_test
...
ERROR: .../tests/validate_test_main/BUILD.bazel:3:8: Validating py_test
 main //tests/validate_test_main:validate_test_main_test failed:
 (Exit -1073741515): python.exe failed: error executing
 PyValidateTestMain command
```
```
cd tests/integration/validate_test_main
bazel build \
  --@rules_python//python/config_settings:validate_test_main=enabled \
  //:good_test
...
ERROR: .../tests/integration/validate_test_main/BUILD.bazel:11:8:
 Validating py_test main //:good_test failed: (Exit -1073741515):
 python.exe failed: error executing PyValidateTestMain command
```

`-1073741515` is `STATUS_DLL_NOT_FOUND`: the relocated copy can't find
its DLLs beside itself.

This is also the Windows-local manifestation of #2703
(`exec_interpreter` broken on RBE): the same relocation severs the
interpreter from files resolved relative to itself, just triggered
differently: RBE's copy materialization there, a lack of symlink
privilege here.

Colocating the DLLs alone (a first attempt) traded this for a second,
still fatal error, `ModuleNotFoundError: No module named 'encodings'`,
because the copy still can't find its stdlib.
Patching each missing file individually doesn't scale: DLLs today,
stdlib tomorrow, whatever else a future toolchain needs beside itself
after that.

`_maybe_add_test_main_validation` now uses `actions_run()` with
`exec_runtime` instead of `exec_tools.exec_interpreter`'s relocated
`DefaultInfo.files_to_run`, matching
`PyExecToolsInfo.exec_interpreter`'s own documented recommendation and
the pattern `common.bzl`'s `actions_run()` and `py_zipapp_rule.bzl`
already use.
`exec_runtime.interpreter` is the real file, used directly, with its
real files as plain action inputs, so nothing is relocated and nothing
loses its siblings.

With the proposed fix[^1], above examples now build cleanly, with no
relocated runfiles tree for the interpreter at all, and
`tests/integration/validate_test_main`'s `inert_test` still fails with
its intended "will not run any tests" message rather than a crash.

`tests/integration/validate_test_main_test` is the corresponding
integration test, but it was not exercised on Windows, where it was
failing on `OSError: [WinError 193] %1 is not a valid Win32 application`
in `tests/integration/runner.py`'s Bazel-in-Bazel invocation, itself
unable to run `bazel_from_env`'s `#!` shebang line the way POSIX's
`exec` does.
The present change therefore fixes this, by resolving the shebang's
interpreter itself, and enables the test on Windows.

[^1]: This does not fix `exec_interpreter`/#2703 itself:
`precompile.bzl` still resolves the interpreter via the relocated path
and would need the same migration.

---------

Co-authored-by: Richard Levasseur <richardlev@gmail.com>