-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Bazel remote-caching does not properly treat volatile-status as if it never changes #10075
Description
Description of the problem / feature request:
When a target depends on the file volatile-status.txt as an input, that target will not be rebuilt if volatile-status.txt changes and the target is cached locally. However, the remote cache does not behave in the same way, and a change in the hash of volatile-status.txt will cause the target not to read from the remote cache.
Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
Clone the repo test_volatile_status and set up a bazel remote cache. Then run the following commands at the root of the repo:
bazel build --remote_cache=<your_remote_cache> //:artifact
bazel build --remote_cache=<your_remote_cache> //:artifact
# the above will read from the local cache, as expected
bazel clean
bazel build --remote_cache=<your_remote_cache> //:artifact
# this will not read from the remote cache
What operating system are you running Bazel on?
Ubuntu 16.04.6 LTS
What's the output of bazel info release?
release 0.29.0
What's the output of git remote get-url origin ; git rev-parse master ; git rev-parse HEAD ?
https://github.com/Panfilwk/test_volatile_status.git
da002118b6c79bd7e33b017221c772fbfba4f009
da002118b6c79bd7e33b017221c772fbfba4f009
Have you found anything relevant by searching the web?
This issue touches on this concept for local caching, but nothing about how the behavior of this file works with remote caching.
Any other information, logs, or outputs that you want to share?
exec1.log.txt and exec2.log.txt are the resulting parsed experimental execution logs from the first and third build commands following the debug instructions here