Windows + Bazel 8 gets permission denied error in some configs
Just filing a quick issue for now with some light details and investigation results
When run on BCR, we get a failure in the bzlmod example //tests:version_test_binary_* tests. It only fails for Windows and bazel 8.
example error:
Executing tests from //tests:version_test_binary_3_10
-----------------------------------------------------------------------------
C:/b/yumnn2dr/execroot/_main/bazel-out/x64_windows-fastbuild/bin/tests/version_test_binary_3_10: line 23: tests/version_3_10.exe: Permission denied
This seems to be an environment specific or Bazel 8 specific issue.
Running it on my windows laptop, it works.
PR #3406 reproduces the issue.
Oddity: I thought we had bazel 8 + windows testing, so why is it failing now?
The only thing interesting about these tests is they're a shell test that runs the python program. For windows, this means it runs an exe that executes a zip file.
Theory: Possibly related to symlinks? If the test copies the files locally, then the binary-under-test runs successfully.
Aha. Setting --windows_enable_symlinks seems to fix this.
Something must have changed between Bazel 7 and some-bazel-8 version ? Or maybe BCR stopped implicitly setting that flag? Or maybe the Bazel CI windows machines had a subtle setting changed that only bazel 8 notices?
I previously ping @fmeum in the #3404 PR, but I think it would be better to discuss this here. Any ideas why this may be happening?
As @rickeylev mentioned in that PR, it seems that it is only the tests that involve the shell rules that are affected. Regular python tests are all good.
I can look into this on Monday. Did you manage to reproduce it on a local Windows machine?