Skip to content

flake: Test process crash - go vet deadlock (cli/config) #1114

@flake-investigator

Description

@flake-investigator

CI Run Link: https://github.com/coder/coder/actions/runs/19021103472

Commit Info:

  • SHA: 2a5d86e2aaad211188591a5f28480a891c0e034f
  • Author: david-fraley

Failing Job: test-go-pg (ubuntu-latest)
Completed at: 2025-11-03T01:18:38Z (same timeframe as Slack alert)
Run attempt: 1

Summary:

  • Single job failure in matrix. macOS and Windows matrix jobs were cancelled due to failure elsewhere. test-go-race-pg succeeded.
  • Failure is a process crash during go test build of package github.com/coder/coder/v2/cli/config, specifically inside go vet (golang.org/x/tools analysis), causing the package build to fail.

Error Evidence (from logs):

  • Package: github.com/coder/coder/v2/cli/config
  • Failure:
    FAIL github.com/coder/coder/v2/cli/config [build failed]
    fatal error: all goroutines are asleep - deadlock!

Key stack lines:

# github.com/coder/coder/v2/cli/config
fatal error: all goroutines are asleep - deadlock!

goroutine 1 [semacquire]:
internal/runtime/maps.newTable(0x746de0, 0x80, 0x0, 0x0)
	internal/runtime/maps/table.go:79 +0x32
internal/runtime/maps.(*table).grow(0xc0004e4260, 0x746de0, 0xc0002e18e8, 0xae8?)
	internal/runtime/maps/table.go:1092 +0x37
internal/runtime/maps.(*table).rehash(0xc000320ac8?, 0x40b3cb?, 0xc000320ac8?)
	internal/runtime/maps/table.go:1027 +0x25
cmd/vendor/golang.org/x/tools/internal/facts.importMap.func2({0x850758?, 0xc0002b1f10})
	cmd/vendor/golang.org/x/tools/internal/facts/imports.go:68 +0x3b8
...
cmd/vendor/golang.org/x/tools/go/analysis/unitchecker.run(...)
	cmd/vendor/golang.org/x/tools/go/analysis/unitchecker/unitchecker.go:325 +0x5c6
cmd/vendor/golang.org/x/tools/go/analysis/unitchecker.Main(...)
	cmd/vendor/golang.org/x/tools/go/analysis/unitchecker/unitchecker.go:121 +0x32e
main.main()
	cmd/vet/main.go:54 +0x4bc

Root Cause Classification: Process Crash

  • Cause appears to be a deadlock within go vet (golang.org/x/tools analysis) when analyzing the cli/config package under Go 1.24.6 in Linux CI.
  • Not a data race (race job passed, and no WARNING: DATA RACE present).

Duplicate Search (coder/internal):

  • Queries run:
    • "fatal error: all goroutines are asleep - deadlock"
    • "cli/config" "build failed"
    • facts.importMap OR unitchecker deadlock
  • Also searched closed issues in last 30 days for "deadlock" — no matching issues for this failure mode.
  • Conclusion: No existing issue found.

Assignment Analysis:

  • No specific test function failed; package build failed during analysis.
  • Recent contributors to cli/config:
    • cli/config/file.go last meaningful changes by Steven Masley (@Emyrk) in Feb 2024 (org context and whitespace handling).
    • cli/config/file_test.go has not changed recently (last change was mechanical module path update in 2023).
  • Given failure occurs specifically when building cli/config, suggested area owner is CLI. Unsure whether this is a Go toolchain bug or triggered by cli/config package dependencies.

Next Steps / Reproduction:

  • Try to reproduce locally with Go 1.24.6 on Linux:
    • cd cli/config && go test -vet=all -c (or plain go test) and observe if vet deadlocks.
  • If reproducible, consider:
    • Narrowing the code or imports in cli/config that trigger go vet deadlock.
    • Pinning/adjusting golang.org/x/tools (if we vendor specific version) or temporarily disabling problematic vet analyzers for this package.
    • Reporting upstream if confirmed to be a Go tools bug.

Tagging area: CLI

Leaving unassigned due to potential upstream/tooling nature; suggested owner: @Emyrk (recent maintainer of cli/config).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions