Skip to content

Data race between resolveImportsAndModuleAugmentations and binding #1224

Closed
@jakebailey

Description

@jakebailey
WARNING: DATA RACE
Read at 0x00c028c2c798 by goroutine 272215:
  github.com/microsoft/typescript-go/internal/compiler.getModeForUsageLocation()
      /mnt/vss/_work/typescript-go/typescript-go/internal/compiler/fileloader.go:549 +0x584
  github.com/microsoft/typescript-go/internal/compiler.(*fileLoader).resolveImportsAndModuleAugmentations()
      /mnt/vss/_work/typescript-go/typescript-go/internal/compiler/fileloader.go:385 +0xce7
  github.com/microsoft/typescript-go/internal/compiler.(*parseTask).load()
      /mnt/vss/_work/typescript-go/typescript-go/internal/compiler/parsetask.go:84 +0xae6
  github.com/microsoft/typescript-go/internal/compiler.(*fileLoaderWorker[go.shape.*github.com/microsoft/typescript-go/internal/compiler.parseTask]).start.func1()
      /mnt/vss/_work/typescript-go/typescript-go/internal/compiler/fileloadertask.go:[62](https://github.com/microsoft/typescript-go/actions/runs/15738046449/job/44355961153?pr=1223#step:10:63) +0x132
  github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
      /mnt/vss/_work/typescript-go/typescript-go/internal/core/workgroup.go:39 +0x8d

Previous write at 0x00c028c2c798 by goroutine 272139:
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bind()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:585 +0xd9
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bind-fm()
      <autogenerated>:1 +0x3d
  github.com/microsoft/typescript-go/internal/ast.visit()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:20 +0x55
  github.com/microsoft/typescript-go/internal/ast.(*ImportTypeNode).ForEachChild()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:7472 +0x26
  github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:216 +0x9f0
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindEachChild()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1695 +0x99e
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindChildren()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1689 +0x9f1
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bind()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:737 +0x172d
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bind-fm()
      <autogenerated>:1 +0x3d
  github.com/microsoft/typescript-go/internal/ast.visit()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:20 +0x1d9
  github.com/microsoft/typescript-go/internal/ast.(*TypeAliasDeclaration).ForEachChild()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:3792 +0x26
  github.com/microsoft/typescript-go/internal/ast.(*Node).ForEachChild()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:216 +0x9f0
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindEachChild()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1695 +0x99e
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindChildren()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1689 +0x9f1
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindContainer()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1586 +0x7eb
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bind()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:739 +0x1746
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindEachStatementFunctionsFirst()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1724 +0x13a
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindChildren()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1673 +0xa4c
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bindContainer()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:1542 +0xc44
  github.com/microsoft/typescript-go/internal/binder.(*Binder).bind()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:739 +0x1746
  github.com/microsoft/typescript-go/internal/binder.bindSourceFile.func1()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:126 +0x306
  github.com/microsoft/typescript-go/internal/binder.bindSourceFile.(*SourceFile).BindOnce.func2()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:10183 +0x33
  sync.(*Once).doSlow()
      /mnt/vss/_work/_tool/go/1.24.4/x[64](https://github.com/microsoft/typescript-go/actions/runs/15738046449/job/44355961153?pr=1223#step:10:65)/src/sync/once.go:78 +0xe1
  sync.(*Once).Do()
      /mnt/vss/_work/_tool/go/1.24.4/x64/src/sync/once.go:69 +0x44
  github.com/microsoft/typescript-go/internal/ast.(*SourceFile).BindOnce()
      /mnt/vss/_work/typescript-go/typescript-go/internal/ast/ast.go:10182 +0xb4
  github.com/microsoft/typescript-go/internal/binder.bindSourceFile()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:119 +0x25
  github.com/microsoft/typescript-go/internal/binder.BindSourceFile()
      /mnt/vss/_work/typescript-go/typescript-go/internal/binder/binder.go:97 +0x3c
  github.com/microsoft/typescript-go/internal/compiler.(*Program).BindSourceFiles.func1()
      /mnt/vss/_work/typescript-go/typescript-go/internal/compiler/program.go:287 +0x2e
  github.com/microsoft/typescript-go/internal/core.(*parallelWorkGroup).Queue.func1()
      /mnt/vss/_work/typescript-go/typescript-go/internal/core/workgroup.go:39 +0x8d

Saw in #1223 (https://github.com/microsoft/typescript-go/actions/runs/15738046449/job/44355961153?pr=1223)

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