I am currently refactoring a project to use generics and at some point the go compiler stopped working.
# github.com/lumaraf/sudoku-solver/restriction
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [sync.Mutex.Lock]:
internal/sync.runtime_SemacquireMutex(0x2?, 0xf7?, 0xc00014a028?)
runtime/sema.go:95 +0x25
internal/sync.(*Mutex).lockSlow(0xc0004d84f8)
internal/sync/mutex.go:149 +0x15d
internal/sync.(*Mutex).Lock(...)
internal/sync/mutex.go:70
sync.(*Mutex).Lock(...)
sync/mutex.go:46
cmd/compile/internal/types2.(*Named).resolve(0xc0004d84d0)
cmd/compile/internal/types2/named.go:176 +0x5f
cmd/compile/internal/types2.(*Named).TypeParams(...)
cmd/compile/internal/types2/named.go:322
cmd/compile/internal/types2.(*subster).typ(0xc00014a798, {0x1b7c168, 0xc0004e5880})
cmd/compile/internal/types2/subst.go:245 +0x82b
cmd/compile/internal/types2.(*subster).var_(0xc00014a5d8?, 0xc0004e58f0)
cmd/compile/internal/types2/subst.go:288 +0x2c
cmd/compile/internal/types2.substList[...](...)
cmd/compile/internal/types2/subst.go:317
cmd/compile/internal/types2.(*subster).tuple(0x21df1b25718?, 0xc00040cae0)
cmd/compile/internal/types2/subst.go:304 +0xa3
cmd/compile/internal/types2.(*subster).typ(0xc00014a798, {0x1b7c140, 0xc0004e2c00})
cmd/compile/internal/types2/subst.go:164 +0x44a
cmd/compile/internal/types2.(*Checker).subst(0x0, {0x0?, 0x0?, 0x0?}, {0x1b7c140, 0xc0004e2c00}, 0xc0004f0000, 0x0, 0xc00041e260)
cmd/compile/internal/types2/subst.go:78 +0x1ac
cmd/compile/internal/types2.(*Checker).newAliasInstance(0x0, {0x0?, 0x45349b?, 0xc0?}, 0xc0004e2c40, {0xc00041ede0, 0x2, 0x2}, 0x0, 0xc00041e260)
cmd/compile/internal/types2/alias.go:165 +0x1c5
cmd/compile/internal/types2.(*Checker).instance(0x0, {0x0, 0x0, 0x0}, {0x1b7d910, 0xc0004e2c40}, {0xc00041ede0, 0x2, 0x2}, 0x0, ...)
cmd/compile/internal/types2/instantiate.go:150 +0x4b0
cmd/compile/internal/types2.Instantiate(0xc00041e260, {0x1b7c190, 0xc0004e2c40}, {0xc00041ede0, 0x2, 0x2}, 0x0)
cmd/compile/internal/types2/instantiate.go:70 +0x326
cmd/compile/internal/importer.(*reader).doTyp(0xc00014abd0)
cmd/compile/internal/importer/ureader.go:258 +0xcc
cmd/compile/internal/importer.(*pkgReader).typIdx(0xc00047c0e0, {0x47c0e0?, 0xc0?}, 0xc0004d4ba0)
cmd/compile/internal/importer/ureader.go:231 +0x18e
cmd/compile/internal/importer.(*reader).typ(0xc00014adf8)
cmd/compile/internal/importer/ureader.go:201 +0x68
cmd/compile/internal/importer.(*reader).doTyp(0xc00014adf8)
cmd/compile/internal/importer/ureader.go:279 +0x15b
cmd/compile/internal/importer.(*pkgReader).typIdx(0xc00047c0e0, {0x47c0e0?, 0xc0?}, 0xc0004d4ba0)
cmd/compile/internal/importer/ureader.go:231 +0x18e
cmd/compile/internal/importer.(*reader).typ(0xc00014b1e0)
cmd/compile/internal/importer/ureader.go:201 +0x68
cmd/compile/internal/importer.(*reader).param(0xc00014b1e0)
cmd/compile/internal/importer/ureader.go:365 +0x65
cmd/compile/internal/importer.(*reader).params(0xc00014b1e0)
cmd/compile/internal/importer/ureader.go:355 +0x74
cmd/compile/internal/importer.(*reader).signature(0xc00014b1e0, 0x0, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0})
cmd/compile/internal/importer/ureader.go:344 +0x65
cmd/compile/internal/importer.(*reader).interfaceType(0xc00014b1e0)
cmd/compile/internal/importer/ureader.go:326 +0x16f
cmd/compile/internal/importer.(*reader).doTyp(0xc00014b1e0)
cmd/compile/internal/importer/ureader.go:283 +0x3c5
cmd/compile/internal/importer.(*pkgReader).typIdx(0xc00047c0e0, {0x410480?, 0xc0?}, 0xc0004d4ba0)
cmd/compile/internal/importer/ureader.go:231 +0x18e
cmd/compile/internal/importer.(*reader).typ(0xc0004d4c00)
cmd/compile/internal/importer/ureader.go:201 +0x68
cmd/compile/internal/importer.ReadPackage.(*pkgReader).objIdx.func1.1(0x2?)
cmd/compile/internal/importer/ureader.go:450 +0x3e
cmd/compile/internal/types2.(*Named).resolve(0xc0004d84d0)
cmd/compile/internal/types2/named.go:215 +0xf7
cmd/compile/internal/types2.(*Named).TypeParams(...)
cmd/compile/internal/types2/named.go:322
cmd/compile/internal/types2.(*subster).typ(0xc00014be30, {0x1b7c168, 0xc0004d8540})
cmd/compile/internal/types2/subst.go:245 +0x82b
cmd/compile/internal/types2.(*subster).var_(0x196dc20?, 0xc0004d85b0)
cmd/compile/internal/types2/subst.go:288 +0x2c
cmd/compile/internal/types2.substList[...](...)
cmd/compile/internal/types2/subst.go:317
cmd/compile/internal/types2.(*subster).tuple(0x195f420?, 0xc00040c4f8)
cmd/compile/internal/types2/subst.go:304 +0xa3
cmd/compile/internal/types2.(*subster).typ(0xc00014be30, {0x1b7c140, 0xc0004cfac0})
cmd/compile/internal/types2/subst.go:165 +0x46b
cmd/compile/internal/types2.(*subster).func_(0xc000415900?, 0xc0004d8620)
cmd/compile/internal/types2/subst.go:331 +0x2c
cmd/compile/internal/types2.substList[...](...)
cmd/compile/internal/types2/subst.go:317
cmd/compile/internal/types2.(*subster).typ(0xc00014be30, {0x1b7c1e0, 0xc0004158b0})
cmd/compile/internal/types2/subst.go:188 +0x9fa
cmd/compile/internal/types2.(*Checker).subst(0xc000430000, {0xc000400000?, 0x41ea60?, 0xc0?}, {0x1b7c1e0, 0xc0004158b0}, 0xc0004d14a0, 0xc0004d93b0, 0xc00041e260)
cmd/compile/internal/types2/subst.go:78 +0x1ac
cmd/compile/internal/types2.(*Named).expandUnderlying(0xc0004d93b0)
cmd/compile/internal/types2/named.go:670 +0x4e9
cmd/compile/internal/types2.(*Named).resolve(0xc0004d93b0)
cmd/compile/internal/types2/named.go:189 +0x154
cmd/compile/internal/types2.(*Named).TypeParams(0x2142fb0?)
cmd/compile/internal/types2/named.go:322 +0x13
cmd/compile/internal/types2.(*Checker).instantiatedType.func3()
cmd/compile/internal/types2/typexpr.go:490 +0x154
cmd/compile/internal/types2.(*Checker).processDelayed(0xc000430000, 0x8)
cmd/compile/internal/types2/check.go:525 +0x211
cmd/compile/internal/types2.(*Checker).stmt(0xc000430000, 0x0, {0x1b7ddd0, 0xc00041e020})
cmd/compile/internal/types2/stmt.go:707 +0x130a
cmd/compile/internal/types2.(*Checker).stmtList(0xc000430000, 0x0, {0xc0004080b0?, 0xc0004d05d0?, 0x500000048?})
cmd/compile/internal/types2/stmt.go:122 +0x85
cmd/compile/internal/types2.(*Checker).funcBody(0xc000430000, 0xc0004100c0?, {0xc000412010?, 0x26ca7f1667856fc?}, 0xc0004cec00, 0xc000418040, {0x0?, 0x0?})
cmd/compile/internal/types2/stmt.go:42 +0x310
cmd/compile/internal/types2.(*Checker).objDecl.(*Checker).funcDecl.func4()
cmd/compile/internal/types2/decl.go:775 +0x3a
cmd/compile/internal/types2.(*Checker).processDelayed(0xc000430000, 0x0)
cmd/compile/internal/types2/check.go:525 +0x211
cmd/compile/internal/types2.(*Checker).checkFiles(0xc000430000, {0xc0004080c0?, 0xc000080008?, 0xc000080558?})
cmd/compile/internal/types2/check.go:467 +0x814
cmd/compile/internal/types2.(*Checker).Files(0xc00001c600?, {0xc0004080c0?, 0x0?, 0x0?})
cmd/compile/internal/types2/check.go:427 +0x75
cmd/compile/internal/types2.(*Config).Check(0xc00041a1c0, {0xc00001c600?, 0xc00000a3e0?}, {0xc0004080c0, 0x2, 0x2}, 0xc000410360)
cmd/compile/internal/types2/api.go:488 +0x19d
cmd/compile/internal/noder.checkFiles({0x0, {0x0, 0x0}}, {0xc000037300, 0x2, 0x199e7a0?})
cmd/compile/internal/noder/irgen.go:95 +0x5c9
cmd/compile/internal/noder.writePkgStub({0x0?, {0x0?, 0x0?}}, {0xc000037300, 0x2, 0x2})
cmd/compile/internal/noder/unified.go:319 +0x6a
cmd/compile/internal/noder.unified({0x0?, {0x0?, 0x0?}}, {0xc000037300?, 0x19191e0?, 0x0?})
cmd/compile/internal/noder/unified.go:195 +0xb3
cmd/compile/internal/noder.LoadPackage({0xc00010c120, 0x2, 0xe})
cmd/compile/internal/noder/noder.go:77 +0x43a
cmd/compile/internal/gc.Main(0x1a39ac8)
cmd/compile/internal/gc/main.go:208 +0xcc5
main.main()
cmd/compile/main.go:57 +0xf9
My program or an error what is wrong in my code.
Go version
go version go1.24.2 windows/amd64
Output of
go envin your module/workspace:What did you do?
I am currently refactoring a project to use generics and at some point the go compiler stopped working.
What did you see happen?
The compiler deadlocks with the following message:
What did you expect to see?
My program or an error what is wrong in my code.