Skip to content

fatal error: concurrent map read and map write #2238

@charlag

Description

@charlag

Stack trace

fatal error: concurrent map read and map write

goroutine 2631 [running]:
internal/runtime/maps.fatal({0xdee3aa?, 0xc0047134c8?})
	runtime/panic.go:1046
goroutine 2631 [running]:
internal/runtime/maps.fatal({0xdee3aa?, 0xc0047134c8?})
	runtime/panic.go:1046 +0x18
github.com/microsoft/typescript-go/internal/core.(*LinkStore[...]).Get(0x1082960, 0xc00665c2a8)
	github.com/microsoft/typescript-go/internal/core/linkstore.go:11 +0x36
github.com/microsoft/typescript-go/internal/checker.(*Checker).resolveAlias(0xc006947308, 0xc00665c2a8)
	github.com/microsoft/typescript-go/internal/checker/checker.go:15779 +0x3f
github.com/microsoft/typescript-go/internal/checker.(*Checker).resolveAliasWithDeprecationCheck(0xc006947308, 0xc00665c2a8, 0xc001d1cdc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:15824 +0xe5
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkAliasSymbol(0xc006947308, 0xc001d1cdc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:6630 +0x694
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkImportBinding(0xc006947308, 0xc001d1cdc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:5210 +0x4e
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkImportDeclaration(0xc006947308, 0xc002587bc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:5144 +0x633
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceElementWorker(0xc006947308, 0xc002587bc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2279 +0x385
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceElement(0xc006947308, 0xc007d7c090?)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2150 +0x65
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceElements(0xc006947308, {0xc00560a0c8, 0xd, 0xc000186e00?})
	github.com/microsoft/typescript-go/internal/checker/checker.go:2140 +0x2d
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceFile(0xc006947308, {0x107cc98, 0x1721f80}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2112 +0x119
github.com/microsoft/typescript-go/internal/checker.(*Checker).CheckSourceFile(0xc006947308, {0x107cc98, 0x1721f80}, 0xc004bff808 +0x18
github.com/microsoft/typescript-go/internal/core.(*LinkStore[...]).Get(0x1082960, 0xc00665c2a8)
	github.com/microsoft/typescript-go/internal/core/linkstore.go:11 +0x36
github.com/microsoft/typescript-go/internal/checker.(*Checker).resolveAlias(0xc006947308, 0xc00665c2a8)
	github.com/microsoft/typescript-go/internal/checker/checker.go:15779 +0x3f
github.com/microsoft/typescript-go/internal/checker.(*Checker).resolveAliasWithDeprecationCheck(0xc006947308, 0xc00665c2a8, 0xc001d1cdc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:15824 +0xe5
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkAliasSymbol(0xc006947308, 0xc001d1cdc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:6630 +0x694
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkImportBinding(0xc006947308, 0xc001d1cdc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:5210 +0x4e
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkImportDeclaration(0xc006947308, 0xc002587bc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:5144 +0x633
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceElementWorker(0xc006947308, 0xc002587bc0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2279 +0x385
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceElement(0xc006947308, 0xc007d7c090?)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2150 +0x65
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceElements(0xc006947308, {0xc00560a0c8, 0xd, 0xc000186e00?})
	github.com/microsoft/typescript-go/internal/checker/checker.go:2140 +0x2d
github.com/microsoft/typescript-go/internal/checker.(*Checker).checkSourceFile(0xc006947308, {0x107cc98, 0x1721f80}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2112 +0x119
github.com/microsoft/typescript-go/internal/checker.(*Checker).CheckSourceFile(0xc006947308, {0x107cc98, 0x1721f80}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2101 +0x5e
github.com/microsoft/typescript-go/internal/checker.(*Checker).getDiagnostics(0xc006947308, {0x107cc98, 0x1721f80}, 0xc004bff808, 0xc0069474f0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:13516 +0xc7
github.com/microsoft/typescript-go/internal/checker.(*Checker).GetDiagnostics(...)
	github.com/microsoft/typescript-go/internal/checker/checker.go:13499
github.com/microsoft/typescript-go/internal/compiler.(*Program).getBindAndCheckDiagnosticsForFile(0xc0022c6600, {0x107cc98, 0x1721f80}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1052 +0x11b
github.com/microsoft/typescript-go/internal/compiler.(*Program).getSemanticDiagnosticsForFile(0xc0022c6600, {0x107cc98?, 0x1721f80?}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1034 +0x2b
github.com/microsoft/typescript-go/internal/compiler.(*Program).collectDiagnostics(0x0?, {0x107cc98?, 0x1721f80?}, 0x0?, 0x0?)
	github.com/microsoft/typescript-go/internal/compiler/program.go:426 +0x78
github.com/microsoft/typescript-go/internal/compiler.(*Program).GetSemanticDiagnostics(0x1?, {0x107cc98?, 0x1721f80?}, 0xc0060914e8?)
	github.com/microsoft/typescript-go/internal/compiler/program.go:453 +0x33
github.com/microsoft/typescript-go/internal/compiler.GetDiagnosticsOfAnyProgram({0x107cc98, 0x1721f80}, {0x1084318, 0xc0022c6600}, 0xc004bff808, 0x1, 0xc006f62d80, 0xc006f62d68)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1468 +0x3d5
github.com/microsoft/typescript-go/internal/compiler.HandleNoEmitOnError({0x107cc98, 0x1721f80}, {0x1084318, 0xc0022c6600}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1425 +0xc9
github.com/microsoft/typescript-go/internal/compiler.(*Program).Emit(0xc0022c6600, {0x107cc98, 0x1721f80}, {0xc004bff808?, 0xc5?, 0xc007ea6db0?})
)
	github.com/microsoft/typescript-go/internal/checker/checker.go:2101 +0x5e
github.com/microsoft/typescript-go/internal/checker.(*Checker).getDiagnostics(0xc006947308, {0x107cc98, 0x1721f80}, 0xc004bff808, 0xc0069474f0)
	github.com/microsoft/typescript-go/internal/checker/checker.go:13516 +0xc7
github.com/microsoft/typescript-go/internal/checker.(*Checker).GetDiagnostics(...)
	github.com/microsoft/typescript-go/internal/checker/checker.go:13499
github.com/microsoft/typescript-go/internal/compiler.(*Program).getBindAndCheckDiagnosticsForFile(0xc0022c6600, {0x107cc98, 0x1721f80}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1052 +0x11b
github.com/microsoft/typescript-go/internal/compiler.(*Program).getSemanticDiagnosticsForFile(0xc0022c6600, {0x107cc98?, 0x1721f80?}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1034 +0x2b
github.com/microsoft/typescript-go/internal/compiler.(*Program).collectDiagnostics(0x0?, {0x107cc98?, 0x1721f80?}, 0x0?, 0x0?)
	github.com/microsoft/typescript-go/internal/compiler/program.go:426 +0x78
github.com/microsoft/typescript-go/internal/compiler.(*Program).GetSemanticDiagnostics(0x1?, {0x107cc98?, 0x1721f80?}, 0xc0060914e8?)
	github.com/microsoft/typescript-go/internal/compiler/program.go:453 +0x33
github.com/microsoft/typescript-go/internal/compiler.GetDiagnosticsOfAnyProgram({0x107cc98, 0x1721f80}, {0x1084318, 0xc0022c6600}, 0xc004bff808, 0x1, 0xc006f62d80, 0xc006f62d68)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1468 +0x3d5
github.com/microsoft/typescript-go/internal/compiler.HandleNoEmitOnError({0x107cc98, 0x1721f80}, {0x1084318, 0xc0022c6600}, 0xc004bff808)
	github.com/microsoft/typescript-go/internal/compiler/program.go:1425 +0xc9
github.com/microsoft/typescript-go/internal/compiler.(*Program).Emit(0xc0022c6600, {0x107cc98, 0x1721f80}, {0xc004bff808?, 0xc5?, 0xc007ea6db0?})
	github.com/microsoft/typescript-go/internal/compiler/program.go:1327 +0x7e
github.com/microsoft/typescript-go/internal/execute/incremental.(*emitFilesHandler).emitFilesIncremental.func1.1()
	github.com/microsoft/typescript-go/internal/execute/incremental/emitfileshandler.go:124 +0x155
github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
	github.com/microsoft/typescript-go/internal/core/workgroup.go:40 +0x13
sync.(*WaitGroup).Go.func1()
	sync/waitgroup.go:239 +0x4a
created by sync.(*WaitGroup).Go in goroutine 5
	sync/waitgroup.go:237 +0x73

	github.com/microsoft/typescript-go/internal/compiler/program.go:1327 +0x7e
github.com/microsoft/typescript-go/internal/execute/incremental.(*emitFilesHandler).emitFilesIncremental.func1.1()
	github.com/microsoft/typescript-go/internal/execute/incremental/emitfileshandler.go:124 +0x155
github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
	github.com/microsoft/typescript-go/internal/core/workgroup.go:40 +0x13
sync.(*WaitGroup).Go.func1()
	sync/waitgroup.go:239 +0x4a
created by sync.(*WaitGroup).Go in goroutine 5
	sync/waitgroup.go:237 +0x73

Steps to reproduce

  1. Clone github.com/tutao/tutanota
  2. Checkout tsgo branch (d4aaa493f549f41d3d4c08a97e52bfb3fa87d35c)
  3. npm ci && node make

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions