bazelbuild/bazel

Value of SYSTEM_ROOT in windows varies in capitalization leading to cache misses between build servers and developers machines

Open

#13,187 创建于 2021年3月9日

在 GitHub 查看
 (1 评论) (1 反应) (0 负责人)Java (4,465 fork)batch import
P2area-Windowshelp wantedteam-OSStype: feature request

仓库指标

Star
 (25,384 star)
PR 合并指标
 (平均合并 22天 20小时) (30 天内合并 77 个 PR)

描述

Description of the problem / feature request:

When you run bazel with --incompatible_strict_action_env enabled, differences in the SYSTEM_ROOT environmental variable cause cache misses. On my Windows 10 machine the generated path environmental variable is C:\WINDOWS, however on our 2019 server build machines, this either doesn't exist or is "C:\Windows"

Feature requests: what underlying problem are you trying to solve with this feature?

Would like to have a normalized version of "C:\Windows" such that we get cache hits.

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

On an existing project run using --imcompatible_strict_action_env: set SYSTEM_ROOT=C:\WINDOWS bazel build //... set SYSTEM_ROOT=C:\Windows bazel build //... I expect to see 0 tasks run, and everything to be a local cache hit, however instead I get rebuilt tasks.

What operating system are you running Bazel on?

Windows 2019 server + Windows 10.

What's the output of bazel info release?

Replace this line with your answer.

If bazel info release returns "development version" or "(@non-git)", tell us how you built Bazel.

release 3.7.0

What's the output of git remote get-url origin ; git rev-parse master ; git rev-parse HEAD ?

NA its a release version

Have you found anything relevant by searching the web?

Not much apart from original discussions on the feature.

Any other information, logs, or outputs that you want to share?

Snippets from decoded--execution_log_binary_file

Build server

environment_variables { name: "PATH" value: "C:\Program Files\Git\bin;C:\Program Files\Git\usr\bin;C:\Windows;C:\Windows\System32;C:\Windows\System32\WindowsPowerShell\v1.0" }

Developer machine:

environment_variables { name: "PATH" value: "C:\Program Files\Git\bin;C:\Program Files\Git\usr\bin;C:\WINDOWS;C:\WINDOWS\System32;C:\WINDOWS\System32\WindowsPowerShell\v1.0" }

贡献者指南