Thanks to visit codestin.com
Credit goes to github.com

Skip to content

flake: Windows test-go-pg infrastructure issue - mtimehash missing after mise cache miss #1630

Description

@flake-investigator

CI Run Link: https://github.com/coder/coder/actions/runs/30337867929
Failing Job: https://github.com/coder/coder/actions/runs/30337867929/job/90206689888 (test-go-pg (windows-2022))
Failure Date: 2026-07-28 07:20 UTC
Run Attempt: 1

Commit Info:

Failure Evidence:

2026-07-28T07:20:12.0716009Z Run find . -type f ! -path ./.git/\*\* | mtimehash
2026-07-28T07:20:12.1468408Z C:\actions-runner\_temp\98d5aa66-aad3-4fbc-a91f-28d0c4d663f6.sh: line 1: mtimehash: command not found
2026-07-28T07:20:12.2648974Z ##[error]Process completed with exit code 127.

The complete 1,231-line job log was reviewed. The Windows job failed before any Go tests ran. Linux and macOS test-go-pg jobs, test-go-pg-17, and test-go-race-pg succeeded.

Root Cause Classification: Infrastructure / CI tooling

Root Cause Analysis:

  • .github/workflows/ci.yaml runs the Install Go mise tools step without an explicit shell:

    - name: Install Go mise tools
      run: ./.github/scripts/retry.sh -- mise install --locked go:gotest.tools/gotestsum go:github.com/slsyy/mtimehash/cmd/mtimehash
  • On Windows, the default shell is PowerShell, but .github/scripts/retry.sh is a Bash script.

  • On the cache-miss path, that step silently does not install mtimehash; the job log contains no installation output despite the step reporting success.

  • The later Bash timestamp-normalization step invokes mtimehash and exits 127.

  • A warm mise cache masks the defect, making the failure intermittent.

  • This is unrelated to the frontend-only commit under test.

Existing Fix:

  • ci: run test-go-pg mise tool install under bash on Windows coder#27483 adds shell: bash to this exact install step. Its description documents the same mtimehash: command not found cache-miss failure mode.

  • Verified proposed diff:

     - name: Install Go mise tools
    +  shell: bash
       run: ./.github/scripts/retry.sh -- mise install --locked go:gotest.tools/gotestsum go:github.com/slsyy/mtimehash/cmd/mtimehash

Assignment Analysis:

  • No test function failed, so test-function blame is not applicable.
  • Component ownership/history used:
    • git log --oneline -20 --follow .github/workflows/ci.yaml
    • git log --oneline -20 --follow .github/actions/setup-mise/action.yml
    • git log --oneline -20 --follow mise.toml
  • The exact Install Go mise tools workflow line was introduced by fe257666d7709192fca7b1a80019d7d019915c71 / ci: refactor CI to use mise for shared tool setup coder#25727 (ci: refactor CI to use mise for shared tool setup) by @ThomasK33.
  • Assigning to @ThomasK33 based on ownership of the exact CI setup path, not the author of the failing run.

Duplicate Search:

  • Searched coder/internal for mtimehash, "mtimehash: command not found", "Normalize File and Directory Timestamps", "mise-shim.exe not found", test-go-pg Windows, Windows cache flakes, and recent closed issues (last 30 days).
  • No matching internal issue was found.
  • Related but different: flake: Windows CI mise install fails for vercel (node not found) #1596 (vercel mise install failure on Windows).

Race / Panic / OOM / Resource Checks:

  • No WARNING: DATA RACE or race-detector failure.
  • No panic, runtime error, OOM, killed process, disk exhaustion, or file-descriptor exhaustion indicators.
  • The failure is the direct shell error shown above.

Reproduction:

  1. Use a Windows runner with an empty mise cache.
  2. Run the current test-go-pg setup through Install Go mise tools without shell: bash.
  3. Run find . -type f ! -path ./.git/\*\* | mtimehash under Bash.
  4. Observe mtimehash: command not found and exit code 127.

Suggested Resolution:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions