Skip to content

Remove the firestore flake probe workflow once #776 is resolved #783

Description

@tyler-reitz

.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:

  • The probe has run in CI and produced a rate for both arms.
  • A decision has been taken on the @grpc/grpc-js override, either way.
  • If the override lands, the probe has been re-run to confirm the rate moved.
  • Removal PR deletes .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 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions