.github/workflows/flake-probe.yaml was added in #780 as a temporary measurement tool for #776. It is workflow_dispatch only, so it costs nothing until someone runs it, but it is not meant to live in the repo indefinitely. This issue is its removal ticket, filed at merge time so the intent does not survive only in a PR body.
Remove it when
#776 is resolved, not merely measured. Measuring the flake rate is not fixing it: between the measurement and the fix sits the actual @grpc/grpc-js override change, and the probe is the thing that verifies that change landed. So it outlives the first run by design.
Concretely, it can go once all of these hold:
Two reasons this is unlikely to be same-day
1. The default run is underpowered. #776 already found 30 runs per arm inadequate at p = 0.12, and 30 is the default here. At that rate you would expect roughly 4 flakes in 30 baseline runs against 0 in the override arm, which does not reach significance. Reaching it needs closer to 50 per arm. At an estimated 20-25s per iteration (one emulator boot plus one test file; for calibration, the full five-emulator suite runs in ~57s in CI), 50 per arm is roughly 47 minutes of wall clock against a 60 minute job timeout. Plan on more than one run.
2. The probe may not be able to see the CI bug at all. It runs one emulator and one test file; CI runs five emulators and the whole suite in parallel. RESOURCE_EXHAUSTED: Received message larger than max has never appeared in a firestore-only run, and that signal is the entire reason to suspect the local repro and the CI failure are different bugs. If the first run comes back with a clean RESOURCE_EXHAUSTED column, that is not evidence the CI bug is absent. It is evidence this configuration cannot reach it, and the response is to widen the probe toward the full suite, which is a second change to this workflow rather than a deletion.
The job summary states this caveat on every run so a clean table is not read as a verdict.
Suggested first run
Start at the default 30 per arm (~30 minutes, comfortably inside the timeout) and read the RESOURCE_EXHAUSTED and overlap columns before spending 50 per arm on statistical power. The overlap column, added in review, is what says whether the gRPC desync and the #776 assertion actually co-occur.
Refs #776. Added in #780.
.github/workflows/flake-probe.yamlwas added in #780 as a temporary measurement tool for #776. It isworkflow_dispatchonly, so it costs nothing until someone runs it, but it is not meant to live in the repo indefinitely. This issue is its removal ticket, filed at merge time so the intent does not survive only in a PR body.Remove it when
#776 is resolved, not merely measured. Measuring the flake rate is not fixing it: between the measurement and the fix sits the actual
@grpc/grpc-jsoverride change, and the probe is the thing that verifies that change landed. So it outlives the first run by design.Concretely, it can go once all of these hold:
@grpc/grpc-jsoverride, either way..github/workflows/flake-probe.yaml. Nothing else references it.Two reasons this is unlikely to be same-day
1. The default run is underpowered. #776 already found 30 runs per arm inadequate at p = 0.12, and 30 is the default here. At that rate you would expect roughly 4 flakes in 30 baseline runs against 0 in the override arm, which does not reach significance. Reaching it needs closer to 50 per arm. At an estimated 20-25s per iteration (one emulator boot plus one test file; for calibration, the full five-emulator suite runs in ~57s in CI), 50 per arm is roughly 47 minutes of wall clock against a 60 minute job timeout. Plan on more than one run.
2. The probe may not be able to see the CI bug at all. It runs one emulator and one test file; CI runs five emulators and the whole suite in parallel.
RESOURCE_EXHAUSTED: Received message larger than maxhas never appeared in a firestore-only run, and that signal is the entire reason to suspect the local repro and the CI failure are different bugs. If the first run comes back with a cleanRESOURCE_EXHAUSTEDcolumn, that is not evidence the CI bug is absent. It is evidence this configuration cannot reach it, and the response is to widen the probe toward the full suite, which is a second change to this workflow rather than a deletion.The job summary states this caveat on every run so a clean table is not read as a verdict.
Suggested first run
Start at the default 30 per arm (~30 minutes, comfortably inside the timeout) and read the
RESOURCE_EXHAUSTEDand overlap columns before spending 50 per arm on statistical power. The overlap column, added in review, is what says whether the gRPC desync and the #776 assertion actually co-occur.Refs #776. Added in #780.