Skip to content

fatal error: concurrent map read and map write #1470

@tmm1

Description

@tmm1

Stack trace

Run tsgo --noEmit --extendedDiagnostics -p .
fatal error: concurrent map read and map write

goroutine 55339 [running]:
internal/runtime/maps.fatal({0xc48fb9?, 0x0?})
	/home/ubuntu/ci-selfhosted/actions-runner-6/_work/_tool/go/1.24.0/x64/src/runtime/panic.go:1053 +0x18
github.com/microsoft/typescript-go/internal/core.(*LinkStore[...]).Get(0xd8f480, 0xc05f51d348)
	tsgo-src/internal/core/linkstore.go:11 +0x36
github.com/microsoft/typescript-go/internal/checker.(*Checker).markSymbolOfAliasDeclarationIfTypeOnly(0xc05f5a8608, 0xc0464fd920, 0xc05f516548, 0x0, 0x1, 0x0, {0x0, 0x0})
	tsgo-src/internal/checker/checker.go:14395 +0x16b
github.com/microsoft/typescript-go/internal/checker.(*Checker).resolveEntityName(0xc05f5a8608, 0xc0457f1080, 0xdbfff, 0xc0?, 0x0, 0x0?)
	tsgo-src/internal/checker/checker.go:15056 +0x2ba
github.com/microsoft/typescript-go/internal/checker.(*Checker).getTargetOfExportSpecifier(0xc05f5a8608, 0xc0464fd920, 0xdbfff, 0x0)
	tsgo-src/internal/checker/checker.go:14271 +0xfe
github.com/microsoft/typescript-go/internal/checker.(*Checker).getTargetOfAliasDeclaration(0xc05f5a8ee8?, 0xd8f480?, 0x48?)
	tsgo-src/internal/checker/checker.go:15002 +0x170
github.com/microsoft/typescript-go/internal/checker.(*Checker).resolveAlias(0xc05f5a8608, 0xc05f51d348)
	tsgo-src/internal/checker/checker.go:15478 +0x145
github.com/microsoft/typescript-go/internal/checker.(*Checker).GetAliasedSymbol(...)
	tsgo-src/internal/checker/checker.go:30670
github.com/microsoft/typescript-go/internal/checker.SkipAlias(...)
	tsgo-src/internal/checker/utilities.go:1884
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfAffectedFile(0xc05fc862a0, 0xc05637e3c0, 0xc0464f5b88)
	tsgo-src/internal/incremental/affectedfileshandler.go:237 +0x3e5
github.com/microsoft/typescript-go/internal/incremental.collectAllAffectedFiles.func2.1()
	tsgo-src/internal/incremental/affectedfileshandler.go:385 +0x1f
github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
	tsgo-src/internal/core/workgroup.go:39 +0x50
created by github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue in goroutine 1
	tsgo-src/internal/core/workgroup.go:37 +0x85

goroutine 1 [sync.WaitGroup.Wait]:
sync.runtime_SemacquireWaitGroup(0x9d5e36?)
	/home/ubuntu/ci-selfhosted/actions-runner-6/_work/_tool/go/1.24.0/x64/src/runtime/sema.go:110 +0x25
sync.(*WaitGroup).Wait(0xc00d71a008?)
	/home/ubuntu/ci-selfhosted/actions-runner-6/_work/_tool/go/1.24.0/x64/src/sync/waitgroup.go:118 +0x48
github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).RunAndWait(0xc0362123d8?)
	tsgo-src/internal/core/workgroup.go:45 +0x45
github.com/microsoft/typescript-go/internal/incremental.collectAllAffectedFiles({0xd8a528, 0x1334640}, 0xc03187d200)
	tsgo-src/internal/incremental/affectedfileshandler.go:389 +0x43a
github.com/microsoft/typescript-go/internal/incremental.(*Program).collectSemanticDiagnosticsOfAffectedFiles(0xc03187d200, {0xd8a528, 0x1334640}, 0x0)
	tsgo-src/internal/incremental/program.go:196 +0x4e
github.com/microsoft/typescript-go/internal/incremental.(*Program).GetSemanticDiagnostics(0xc03187d200, {0xd8a528, 0x1334640}, 0x0)
	tsgo-src/internal/incremental/program.go:127 +0x6b
github.com/microsoft/typescript-go/internal/execute.emitFilesAndReportErrors.func2({0xd8a528, 0x1334640}, 0x0)
	tsgo-src/internal/execute/tsc.go:360 +0xa2
github.com/microsoft/typescript-go/internal/compiler.GetDiagnosticsOfAnyProgram({0xd8a528, 0x1334640}, {0xd8fe40, 0xc03187d200}, 0x0, 0x0, 0xc00d71a458, 0xc00d71a428)
	tsgo-src/internal/compiler/program.go:1377 +0x3d5
github.com/microsoft/typescript-go/internal/execute.emitFilesAndReportErrors({0xd8d1d0, 0xc000136720}, {0xd8fe40, 0xc03187d200}, 0xc00024db80)
	tsgo-src/internal/execute/tsc.go:344 +0x114
github.com/microsoft/typescript-go/internal/execute.emitAndReportStatistics({0xd8d1d0, 0xc000136720}, {0xd8fe40?, 0xc03187d200?}, 0xc000483880, 0xc000198000, 0x0?, 0x1ee798e, 0x172e627f)
	tsgo-src/internal/execute/tsc.go:297 +0x6d
github.com/microsoft/typescript-go/internal/execute.performIncrementalCompilation({0xd8d1d0, 0xc000136720}, 0xc000198000, 0xc00024db80, 0xc00012f980, 0x1ee798e, 0x0)
	tsgo-src/internal/execute/tsc.go:246 +0x316
github.com/microsoft/typescript-go/internal/execute.tscCompilation({0xd8d1d0, 0xc000136720}, 0xc0001980f0, 0x0)
	tsgo-src/internal/execute/tsc.go:194 +0xb53
github.com/microsoft/typescript-go/internal/execute.CommandLine({0xd8d1d0, 0xc000136720}, {0xc000138010, 0x4, 0x4}, 0x0)
	tsgo-src/internal/execute/tsc.go:63 +0x17e
main.runMain()
	tsgo-src/cmd/tsgo/main.go:23 +0x109
main.main()
	tsgo-src/cmd/tsgo/main.go:10 +0x13

goroutine 55335 [runnable]:
github.com/microsoft/typescript-go/internal/collections.(*SyncSet[...]).Add(0xd90700, {0xc01351b980?, 0x76?})
	tsgo-src/internal/collections/syncset.go:12 +0x7a
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).removeSemanticDiagnosticsOf(...)
	tsgo-src/internal/incremental/affectedfileshandler.go:49
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOf(0xc05fc862a0, 0xc05637e1b0, {0xc01351b980, 0x76}, 0x0)
	tsgo-src/internal/incremental/affectedfileshandler.go:314 +0xae
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfFileAndExportsOfFile(0xc05fc862a0, 0xc05637e1b0, {0xc01351b980, 0x76}, 0x0)
	tsgo-src/internal/incremental/affectedfileshandler.go:279 +0xda
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfFileAndExportsOfFile(0xc05fc862a0, 0xc05637e1b0, {0xc013cb4380, 0x73}, 0x0)
	tsgo-src/internal/incremental/affectedfileshandler.go:284 +0x18d
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfFileAndExportsOfFile(0xc05fc862a0, 0xc05637e1b0, {0xc001af50a0, 0x6c}, 0x0)
	tsgo-src/internal/incremental/affectedfileshandler.go:284 +0x18d
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfFileAndExportsOfFile(0xc05fc862a0, 0xc05637e1b0, {0xc022daaf50, 0x6e}, 0x0)
	tsgo-src/internal/incremental/affectedfileshandler.go:284 +0x18d
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfAffectedFile(0xc05fc862a0, 0xc05637e1b0, 0xc03424a2c8)
	tsgo-src/internal/incremental/affectedfileshandler.go:263 +0x33a
github.com/microsoft/typescript-go/internal/incremental.collectAllAffectedFiles.func2.1()
	tsgo-src/internal/incremental/affectedfileshandler.go:385 +0x1f
github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
	tsgo-src/internal/core/workgroup.go:39 +0x50
created by github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue in goroutine 1
	tsgo-src/internal/core/workgroup.go:37 +0x85

goroutine 55330 [runnable]:
internal/sync.(*entry[...]).lookup(...)
	/home/ubuntu/ci-selfhosted/actions-runner-6/_work/_tool/go/1.24.0/x64/src/internal/sync/hashtriemap.go:581
internal/sync.(*HashTrieMap[...]).LoadOrStore(0xda6580, {0xa8ade0, 0xc05b876e30}, {0xa548c0, 0xda7ac0})
	/home/ubuntu/ci-selfhosted/actions-runner-6/_work/_tool/go/1.24.0/x64/src/internal/sync/hashtriemap.go:114 +0x586
sync.(*Map).LoadOrStore(...)
	/home/ubuntu/ci-selfhosted/actions-runner-6/_work/_tool/go/1.24.0/x64/src/sync/hashtriemap.go:67
github.com/microsoft/typescript-go/internal/collections.(*SyncMap[...]).LoadOrStore(0xda04a0, {0xc025143b00, 0xc04002f0c0?}, 0x0?)
	tsgo-src/internal/collections/syncmap.go:22 +0x6a
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfFileAndExportsOfFile(0xc05fc862a0, 0xc0567b7e90, {0xc025143b00, 0x73}, 0x0)
	tsgo-src/internal/incremental/affectedfileshandler.go:273 +0x56
github.com/microsoft/typescript-go/internal/incremental.(*affectedFilesHandler).handleDtsMayChangeOfAffectedFile(0xc05fc862a0, 0xc0567b7e90, 0xc03404b348)
	tsgo-src/internal/incremental/affectedfileshandler.go:263 +0x33a
github.com/microsoft/typescript-go/internal/incremental.collectAllAffectedFiles.func2.1()
	tsgo-src/internal/incremental/affectedfileshandler.go:385 +0x1f
github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
	tsgo-src/internal/core/workgroup.go:39 +0x50
created by github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue in goroutine 1
	tsgo-src/internal/core/workgroup.go:37 +0x85

Steps to reproduce

  1. not sure, happened maybe once in 500 runs

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions