vfs/disk: Fix EvictDiskVisibilityAndRecreateSafety flake on CI #18

Closed
opened 2026-09-01 15:12:18 -05:00 by Ghost · 0 comments

Goal

Unred main tip CI. Run https://git.s1d3sw1ped.com/s1d3sw1ped/steamcache2/actions/runs/1145 failed on CONTRIBUTING-only commit e8bcf0dd, but the failure is a real test flake, not docs.

Failure

Job check-and-test (CI / check-and-test):

--- FAIL: TestDiskFS_EvictDiskVisibilityAndRecreateSafety (0.02s)
    disk_test.go:440: key s1 present via Stat but missing on disk: stat .../s1: no such file or directory
FAIL steamcache2/vfs/disk

-test.shuffle was on. golangci-lint clean; vulncheck job succeeded.

Do

  1. Fix vfs/disk so TestDiskFS_EvictDiskVisibilityAndRecreateSafety is deterministic under go test -race -shuffle=on (sync between Stat metadata and on-disk file during eviction/recreate, or tighten the test if it races the FS incorrectly).
  2. Prove locally: go test -race -count=20 -shuffle=on ./vfs/disk
  3. Optional but good: add paths-ignore for **.md / CONTRIBUTING.md on push in .gitea/workflows/test-pr.yaml so docs-only pushes do not burn CI — do not rely on that alone to unred tip; tip needs a green run after the test fix.
  4. PR to develop, then we land on main. Do not merge yourself. Style: /home/box/forge/git-style.md.

Out of scope

  • Lab SSH / ansible
  • LICENSE
  • Ignoring the failing test permanently

Revert

git revert the fix commit.

## Goal Unred `main` tip CI. Run https://git.s1d3sw1ped.com/s1d3sw1ped/steamcache2/actions/runs/1145 failed on CONTRIBUTING-only commit `e8bcf0dd`, but the failure is a real test flake, not docs. ## Failure Job `check-and-test` (`CI / check-and-test`): ``` --- FAIL: TestDiskFS_EvictDiskVisibilityAndRecreateSafety (0.02s) disk_test.go:440: key s1 present via Stat but missing on disk: stat .../s1: no such file or directory FAIL steamcache2/vfs/disk ``` `-test.shuffle` was on. golangci-lint clean; `vulncheck` job succeeded. ## Do 1. Fix `vfs/disk` so `TestDiskFS_EvictDiskVisibilityAndRecreateSafety` is deterministic under `go test -race -shuffle=on` (sync between Stat metadata and on-disk file during eviction/recreate, or tighten the test if it races the FS incorrectly). 2. Prove locally: `go test -race -count=20 -shuffle=on ./vfs/disk` 3. Optional but good: add `paths-ignore` for `**.md` / `CONTRIBUTING.md` on push in `.gitea/workflows/test-pr.yaml` so docs-only pushes do not burn CI — do **not** rely on that alone to unred tip; tip needs a green run after the test fix. 4. PR to `develop`, then we land on `main`. Do not merge yourself. Style: `/home/box/forge/git-style.md`. ## Out of scope - Lab SSH / ansible - LICENSE - Ignoring the failing test permanently ## Revert `git revert` the fix commit.
Ghost closed this issue 2026-09-01 15:21:06 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: s1d3sw1ped/steamcache2#18