Skip to content

[dev qa] limit remote cache usage#11333

Merged
dan-stowell merged 4 commits intomasterfrom
bbdan-no-cache-dev-qa
Feb 18, 2026
Merged

[dev qa] limit remote cache usage#11333
dan-stowell merged 4 commits intomasterfrom
bbdan-no-cache-dev-qa

Conversation

@dan-stowell
Copy link
Contributor

I would like the Dev QA tests to actually exercise RBE regardless of the state of the remote cache (yay hermiticity!).
This change uses a fresh run ID per test run, and adds flags to reduce AC usage.

The buildbuddy Dev QA test really explodes (20K+ executions), while others see very few executions.
Choosing different targets or repos can exercise RBE more fully.

dan-stowell and others added 4 commits February 17, 2026 20:10
Co-authored-by: Shelley <shelley@exe.dev>
Co-authored-by: Shelley <shelley@exe.dev>
The previous approach of --noremote_accept_cached + --remote_cache= was
insufficient because:

1. --remote_cache= (empty) is a no-op when --remote_executor is set;
   the executor endpoint always provides AC and CAS.

2. --noremote_accept_cached only sets skip_cache_lookup=true in the
   Execute RPC, but --remote_download_minimal causes Bazel to make
   separate GetActionResult calls for output resolution, which bypass
   skip_cache_lookup and hit the AC directly.

The fix uses --remote_instance_name=dev-qa-test/<unique-id> to place
each run in a fresh cache namespace. This guarantees zero AC hits since
no previous results exist in that namespace. Combined with the existing
--noremote_accept_cached (belt-and-suspenders for the Execute RPC path),
this ensures all actions are freshly executed.

Also removes the no-op --remote_cache= flag.

Co-authored-by: Shelley <shelley@exe.dev>
…ote-cache

--remote_download_minimal is fundamentally incompatible with 'no cache':
it relies on the AC to track remote outputs, causing GetActionResult RPCs
that produce AC hits even with --noremote_accept_cached (which only
affects the Execute RPC's skip_cache_lookup field).

Replace it with --modify_execution_info=.*=+no-remote-cache which tags
all actions with 'no-remote-cache', preventing both AC reads AND writes
while still allowing CAS (required for remote execution).

Co-authored-by: Shelley <shelley@exe.dev>
@tyler-french
Copy link
Contributor

tyler-french commented Feb 17, 2026

Can we have dev QA do both of these things?

  • First run, no cache, exercise RBE
  • Second run, with cache (maybe in the future assert our hit rate is >X%)
    I think both of these functions are really core to the systems health, and operations. Curious on your thoughts here too!

edit: it would also be really nice to test the second item above through the cache proxy (grpcs://proxy.metal.buildbuddy.dev).

@dan-stowell dan-stowell requested a review from tempoz February 17, 2026 22:21
Copy link
Contributor

@tempoz tempoz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me; to Tyler French's comment I would say that that sounds like a useful test, but I think that this was unintended behavior and this should be viewed as a bugfix, whereas that could be its own PR adding an additional test.

@dan-stowell dan-stowell merged commit 3e040b8 into master Feb 18, 2026
12 checks passed
@dan-stowell dan-stowell deleted the bbdan-no-cache-dev-qa branch February 18, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants