Skip to content

Data race in latest versions #785

Closed
Closed
@jpsim

Description

@jpsim

Description

There's a data race present when calling SyntaxVisitor.visit(_:) that wasn't present in the 0.50600.1 release.

Thread Sanitizer Report
==================
WARNING: ThreadSanitizer: Swift access race (pid=93661)
  Modifying access of Swift variable at 0x000109a50e70 by thread T13:
    #0 BumpPtrAllocator.allocate(byteCount:alignment:) BumpPtrAllocator.swift:98 (swiftlint:arm64+0x100658208)
    #1 specialized BumpPtrAllocator.allocate<A>(_:count:) BumpPtrAllocator.swift:129 (swiftlint:arm64+0x1006c0004)
    #2 specialized static RawSyntax.makeLayout(kind:uninitializedCount:arena:initializingWith:) RawSyntax.swift:634 (swiftlint:arm64+0x10066a498)
    #3 SyntaxData.replacingChild(_:at:) SyntaxData.swift:353 (swiftlint:arm64+0x100753894)
    #4 SyntaxData.withLeadingTrivia(_:) SyntaxData.swift:359 (swiftlint:arm64+0x1007526c0)
    #5 TokenSyntax.withoutTrivia() SyntaxOtherNodes.swift:142 (swiftlint:arm64+0x100755668)
    #6 OperatorUsageWhitespaceVisitor.violation(operatorToken:) OperatorUsageWhitespaceRule.swift:186 (swiftlint:arm64+0x100580fe8)
    #7 OperatorUsageWhitespaceVisitor.visitPost(_:) OperatorUsageWhitespaceRule.swift:145 (swiftlint:arm64+0x1005804b0)
    #8 SyntaxVisitor.visitImplTypeInitializerClauseSyntax(_:) SyntaxVisitor.swift:3781 (swiftlint:arm64+0x1008fc21c)
    #9 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5890 (swiftlint:arm64+0x1009068dc)
    #10 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #11 SyntaxVisitor.visitImplTypealiasDeclSyntax(_:) SyntaxVisitor.swift:3790 (swiftlint:arm64+0x1008fc2d4)
    #12 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5892 (swiftlint:arm64+0x1009068ec)
    #13 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #14 SyntaxVisitor.visitImplMemberDeclListItemSyntax(_:) SyntaxVisitor.swift:4065 (swiftlint:arm64+0x1008fd850)
    #15 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5942 (swiftlint:arm64+0x100906074)
    #16 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #17 SyntaxVisitor.visitImplMemberDeclListSyntax(_:) SyntaxVisitor.swift:4054 (swiftlint:arm64+0x1008fd774)
    #18 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5940 (swiftlint:arm64+0x100906064)
    #19 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #20 SyntaxVisitor.visitImplMemberDeclBlockSyntax(_:) SyntaxVisitor.swift:4043 (swiftlint:arm64+0x1008fd698)
    #21 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5938 (swiftlint:arm64+0x100906054)
    #22 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #23 SyntaxVisitor.visitImplStructDeclSyntax(_:) SyntaxVisitor.swift:4010 (swiftlint:arm64+0x1008fd404)
    #24 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5932 (swiftlint:arm64+0x100906034)
    #25 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #26 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #27 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #28 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #29 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #30 SyntaxVisitor.visitImplSourceFileSyntax(_:) SyntaxVisitor.swift:4076 (swiftlint:arm64+0x1008fd92c)
    #31 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5944 (swiftlint:arm64+0x10090698c)
    #32 SyntaxVisitor.walk<A>(_:) SyntaxVisitor.swift:41 (swiftlint:arm64+0x1008f7f1c)
    #33 OperatorUsageWhitespaceRule.violationRanges(file:) OperatorUsageWhitespaceRule.swift:32 (swiftlint:arm64+0x10057e9dc)
    #34 OperatorUsageWhitespaceRule.validate(file:) OperatorUsageWhitespaceRule.swift:21 (swiftlint:arm64+0x10057e3c4)
    #35 protocol witness for Rule.validate(file:using:compilerArguments:) in conformance OperatorUsageWhitespaceRule <compiler-generated>:67 (swiftlint:arm64+0x10026c918)
    #36 specialized Rule.lint(file:regions:benchmark:storage:configuration:superfluousDisableCommandRule:compilerArguments:) Linter.swift:84 (swiftlint:arm64+0x1002076d0)
    #37 closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:226 (swiftlint:arm64+0x100201f40)
    #38 partial apply for closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) <compiler-generated> (swiftlint:arm64+0x100207254)
    #39 specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:66 (swiftlint:arm64+0x1001d14e4)
    #40 partial apply for specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) <compiler-generated> (swiftlint:arm64+0x1001d3d48)
    #41 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6070)
    #42 _dispatch_client_callout2 <null>:71622888 (libdispatch.dylib:arm64e+0x41f0)
    #43 _swift_dispatch_apply_current <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6140)
    #44 specialized Array.parallelCompactMap<A>(transform:) Array+SwiftLint.swift:59 (swiftlint:arm64+0x1001d0ab8)
    #45 CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:225 (swiftlint:arm64+0x100200c34)
    #46 CollectedLinter.styleViolations(using:) Linter.swift:197 (swiftlint:arm64+0x100200990)
    #47 (1) suspend resume partial function for closure #1 in static LintOrAnalyzeCommand.collectViolations(builder:) LintOrAnalyzeCommand.swift:74 (swiftlint:arm64+0x100e41d38)
    #48 swift::runJobInEstablishedExecutorContext(swift::Job*) <null>:71622888 (libswift_Concurrency.dylib:arm64e+0x3a534)

  Previous write of size 8 at 0x000109a50e70 by thread T4:
    #0 BumpPtrAllocator.allocate(byteCount:alignment:) BumpPtrAllocator.swift:98 (swiftlint:arm64+0x100658234)
    #1 specialized BumpPtrAllocator.allocate<A>(_:count:) BumpPtrAllocator.swift:129 (swiftlint:arm64+0x1006c0004)
    #2 specialized static RawSyntax.makeLayout(kind:uninitializedCount:arena:initializingWith:) RawSyntax.swift:634 (swiftlint:arm64+0x10066a498)
    #3 SyntaxData.replacingChild(_:at:) SyntaxData.swift:353 (swiftlint:arm64+0x100753894)
    #4 SyntaxData.withLeadingTrivia(_:) SyntaxData.swift:359 (swiftlint:arm64+0x1007526c0)
    #5 TokenSyntax.withoutTrivia() SyntaxOtherNodes.swift:142 (swiftlint:arm64+0x100755668)
    #6 OperatorUsageWhitespaceVisitor.violation(operatorToken:) OperatorUsageWhitespaceRule.swift:186 (swiftlint:arm64+0x100580fe8)
    #7 OperatorUsageWhitespaceVisitor.visitPost(_:) OperatorUsageWhitespaceRule.swift:151 (swiftlint:arm64+0x100580678)
    #8 SyntaxVisitor.visitImplAssignmentExprSyntax(_:) SyntaxVisitor.swift:3121 (swiftlint:arm64+0x1008f8e8c)
    #9 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5770 (swiftlint:arm64+0x100905da4)
    #10 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #11 SyntaxVisitor.visitImplExprListSyntax(_:) SyntaxVisitor.swift:3141 (swiftlint:arm64+0x1008f9020)
    #12 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5774 (swiftlint:arm64+0x10090670c)
    #13 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #14 SyntaxVisitor.visitImplSequenceExprSyntax(_:) SyntaxVisitor.swift:3130 (swiftlint:arm64+0x1008f8f44)
    #15 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5772 (swiftlint:arm64+0x1009066fc)
    #16 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #17 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #18 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #19 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #20 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #21 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5734 (swiftlint:arm64+0x100905d00)
    #22 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #23 SyntaxVisitor.visitImplInitializerDeclSyntax(_:) SyntaxVisitor.swift:4131 (swiftlint:arm64+0x1008fdd78)
    #24 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5954 (swiftlint:arm64+0x1009069cc)
    #25 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #26 SyntaxVisitor.visitImplMemberDeclListItemSyntax(_:) SyntaxVisitor.swift:4065 (swiftlint:arm64+0x1008fd850)
    #27 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5942 (swiftlint:arm64+0x100906074)
    #28 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #29 SyntaxVisitor.visitImplMemberDeclListSyntax(_:) SyntaxVisitor.swift:4054 (swiftlint:arm64+0x1008fd774)
    #30 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5940 (swiftlint:arm64+0x100906064)
    #31 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #32 SyntaxVisitor.visitImplMemberDeclBlockSyntax(_:) SyntaxVisitor.swift:4043 (swiftlint:arm64+0x1008fd698)
    #33 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5938 (swiftlint:arm64+0x100906054)
    #34 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #35 SyntaxVisitor.visitImplStructDeclSyntax(_:) SyntaxVisitor.swift:4010 (swiftlint:arm64+0x1008fd404)
    #36 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5932 (swiftlint:arm64+0x100906034)
    #37 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #38 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #39 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #40 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #41 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #42 SyntaxVisitor.visitImplSourceFileSyntax(_:) SyntaxVisitor.swift:4076 (swiftlint:arm64+0x1008fd92c)
    #43 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5944 (swiftlint:arm64+0x10090698c)
    #44 SyntaxVisitor.walk<A>(_:) SyntaxVisitor.swift:41 (swiftlint:arm64+0x1008f7f1c)
    #45 OperatorUsageWhitespaceRule.violationRanges(file:) OperatorUsageWhitespaceRule.swift:32 (swiftlint:arm64+0x10057e9dc)
    #46 OperatorUsageWhitespaceRule.validate(file:) OperatorUsageWhitespaceRule.swift:21 (swiftlint:arm64+0x10057e3c4)
    #47 protocol witness for Rule.validate(file:using:compilerArguments:) in conformance OperatorUsageWhitespaceRule <compiler-generated>:67 (swiftlint:arm64+0x10026c918)
    #48 specialized Rule.lint(file:regions:benchmark:storage:configuration:superfluousDisableCommandRule:compilerArguments:) Linter.swift:84 (swiftlint:arm64+0x1002076d0)
    #49 closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:226 (swiftlint:arm64+0x100201f40)
    #50 partial apply for closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) <compiler-generated> (swiftlint:arm64+0x100207254)
    #51 specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:66 (swiftlint:arm64+0x1001d14e4)
    #52 partial apply for specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) <compiler-generated> (swiftlint:arm64+0x1001d3d48)
    #53 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6070)
    #54 _dispatch_client_callout2 <null>:71622888 (libdispatch.dylib:arm64e+0x41f0)
    #55 _swift_dispatch_apply_current <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6140)
    #56 specialized Array.parallelCompactMap<A>(transform:) Array+SwiftLint.swift:59 (swiftlint:arm64+0x1001d0ab8)
    #57 CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:225 (swiftlint:arm64+0x100200c34)
    #58 CollectedLinter.styleViolations(using:) Linter.swift:197 (swiftlint:arm64+0x100200990)
    #59 (1) suspend resume partial function for closure #1 in static LintOrAnalyzeCommand.collectViolations(builder:) LintOrAnalyzeCommand.swift:74 (swiftlint:arm64+0x100e41d38)
    #60 swift::runJobInEstablishedExecutorContext(swift::Job*) <null>:71622888 (libswift_Concurrency.dylib:arm64e+0x3a534)

  Location is heap block of size 56 at 0x000109a50e40 allocated by thread T5:
    #0 __sanitizer_mz_malloc <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x5c29c)
    #1 _malloc_zone_malloc <null>:71622888 (libsystem_malloc.dylib:arm64e+0x1e744)
    #2 one-time initialization function for default SyntaxArena.swift:201 (swiftlint:arm64+0x100730aa8)
    #3 dispatch_once <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x84d54)
    #4 dispatch_once_f <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x84e10)
    #5 SyntaxData.replacingChild(_:at:) SyntaxData.swift:353 (swiftlint:arm64+0x1007539d8)
    #6 SyntaxData.withLeadingTrivia(_:) SyntaxData.swift:359 (swiftlint:arm64+0x1007526c0)
    #7 TokenSyntax.withoutTrivia() SyntaxOtherNodes.swift:142 (swiftlint:arm64+0x100755668)
    #8 OperatorUsageWhitespaceVisitor.violation(operatorToken:) OperatorUsageWhitespaceRule.swift:186 (swiftlint:arm64+0x100580fe8)
    #9 OperatorUsageWhitespaceVisitor.visitPost(_:) OperatorUsageWhitespaceRule.swift:145 (swiftlint:arm64+0x1005804b0)
    #10 SyntaxVisitor.visitImplTypeInitializerClauseSyntax(_:) SyntaxVisitor.swift:3781 (swiftlint:arm64+0x1008fc21c)
    #11 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5890 (swiftlint:arm64+0x1009068dc)
    #12 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #13 SyntaxVisitor.visitImplTypealiasDeclSyntax(_:) SyntaxVisitor.swift:3790 (swiftlint:arm64+0x1008fc2d4)
    #14 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5892 (swiftlint:arm64+0x1009068ec)
    #15 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #16 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #17 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #18 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #19 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #20 SyntaxVisitor.visitImplSourceFileSyntax(_:) SyntaxVisitor.swift:4076 (swiftlint:arm64+0x1008fd92c)
    #21 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5944 (swiftlint:arm64+0x10090698c)
    #22 SyntaxVisitor.walk<A>(_:) SyntaxVisitor.swift:41 (swiftlint:arm64+0x1008f7f1c)
    #23 OperatorUsageWhitespaceRule.violationRanges(file:) OperatorUsageWhitespaceRule.swift:32 (swiftlint:arm64+0x10057e9dc)
    #24 OperatorUsageWhitespaceRule.validate(file:) OperatorUsageWhitespaceRule.swift:21 (swiftlint:arm64+0x10057e3c4)
    #25 protocol witness for Rule.validate(file:using:compilerArguments:) in conformance OperatorUsageWhitespaceRule <compiler-generated>:67 (swiftlint:arm64+0x10026c918)
    #26 specialized Rule.lint(file:regions:benchmark:storage:configuration:superfluousDisableCommandRule:compilerArguments:) Linter.swift:84 (swiftlint:arm64+0x1002076d0)
    #27 closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:226 (swiftlint:arm64+0x100201f40)
    #28 partial apply for closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) <compiler-generated> (swiftlint:arm64+0x100207254)
    #29 specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:66 (swiftlint:arm64+0x1001d14e4)
    #30 partial apply for specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) <compiler-generated> (swiftlint:arm64+0x1001d3d48)
    #31 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6070)
    #32 _dispatch_client_callout2 <null>:71622888 (libdispatch.dylib:arm64e+0x41f0)
    #33 _swift_dispatch_apply_current <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6140)
    #34 specialized Array.parallelCompactMap<A>(transform:) Array+SwiftLint.swift:59 (swiftlint:arm64+0x1001d0ab8)
    #35 CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:225 (swiftlint:arm64+0x100200c34)
    #36 CollectedLinter.styleViolations(using:) Linter.swift:197 (swiftlint:arm64+0x100200990)
    #37 (1) suspend resume partial function for closure #1 in static LintOrAnalyzeCommand.collectViolations(builder:) LintOrAnalyzeCommand.swift:74 (swiftlint:arm64+0x100e41d38)
    #38 swift::runJobInEstablishedExecutorContext(swift::Job*) <null>:71622888 (libswift_Concurrency.dylib:arm64e+0x3a534)

  Thread T13 (tid=16124395, running) is a GCD worker thread

  Thread T4 (tid=16124384, running) is a GCD worker thread

  Thread T5 (tid=16124386, running) is a GCD worker thread

SUMMARY: ThreadSanitizer: Swift access race BumpPtrAllocator.swift:98 in BumpPtrAllocator.allocate(byteCount:alignment:)
==================
==================
WARNING: ThreadSanitizer: data race (pid=93661)
  Read of size 8 at 0x000109a50e60 by thread T13:
    #0 BumpPtrAllocator.allocate(byteCount:alignment:) BumpPtrAllocator.swift:101 (swiftlint:arm64+0x10065825c)
    #1 specialized BumpPtrAllocator.allocate<A>(_:count:) BumpPtrAllocator.swift:129 (swiftlint:arm64+0x1006c0004)
    #2 specialized static RawSyntax.makeLayout(kind:uninitializedCount:arena:initializingWith:) RawSyntax.swift:634 (swiftlint:arm64+0x10066a498)
    #3 SyntaxData.replacingChild(_:at:) SyntaxData.swift:353 (swiftlint:arm64+0x100753894)
    #4 SyntaxData.withLeadingTrivia(_:) SyntaxData.swift:359 (swiftlint:arm64+0x1007526c0)
    #5 TokenSyntax.withoutTrivia() SyntaxOtherNodes.swift:142 (swiftlint:arm64+0x100755668)
    #6 OperatorUsageWhitespaceVisitor.violation(operatorToken:) OperatorUsageWhitespaceRule.swift:186 (swiftlint:arm64+0x100580fe8)
    #7 OperatorUsageWhitespaceVisitor.visitPost(_:) OperatorUsageWhitespaceRule.swift:145 (swiftlint:arm64+0x1005804b0)
    #8 SyntaxVisitor.visitImplTypeInitializerClauseSyntax(_:) SyntaxVisitor.swift:3781 (swiftlint:arm64+0x1008fc21c)
    #9 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5890 (swiftlint:arm64+0x1009068dc)
    #10 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #11 SyntaxVisitor.visitImplTypealiasDeclSyntax(_:) SyntaxVisitor.swift:3790 (swiftlint:arm64+0x1008fc2d4)
    #12 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5892 (swiftlint:arm64+0x1009068ec)
    #13 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #14 SyntaxVisitor.visitImplMemberDeclListItemSyntax(_:) SyntaxVisitor.swift:4065 (swiftlint:arm64+0x1008fd850)
    #15 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5942 (swiftlint:arm64+0x100906074)
    #16 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #17 SyntaxVisitor.visitImplMemberDeclListSyntax(_:) SyntaxVisitor.swift:4054 (swiftlint:arm64+0x1008fd774)
    #18 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5940 (swiftlint:arm64+0x100906064)
    #19 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #20 SyntaxVisitor.visitImplMemberDeclBlockSyntax(_:) SyntaxVisitor.swift:4043 (swiftlint:arm64+0x1008fd698)
    #21 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5938 (swiftlint:arm64+0x100906054)
    #22 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #23 SyntaxVisitor.visitImplStructDeclSyntax(_:) SyntaxVisitor.swift:4010 (swiftlint:arm64+0x1008fd404)
    #24 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5932 (swiftlint:arm64+0x100906034)
    #25 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #26 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #27 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #28 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #29 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #30 SyntaxVisitor.visitImplSourceFileSyntax(_:) SyntaxVisitor.swift:4076 (swiftlint:arm64+0x1008fd92c)
    #31 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5944 (swiftlint:arm64+0x10090698c)
    #32 SyntaxVisitor.walk<A>(_:) SyntaxVisitor.swift:41 (swiftlint:arm64+0x1008f7f1c)
    #33 OperatorUsageWhitespaceRule.violationRanges(file:) OperatorUsageWhitespaceRule.swift:32 (swiftlint:arm64+0x10057e9dc)
    #34 OperatorUsageWhitespaceRule.validate(file:) OperatorUsageWhitespaceRule.swift:21 (swiftlint:arm64+0x10057e3c4)
    #35 protocol witness for Rule.validate(file:using:compilerArguments:) in conformance OperatorUsageWhitespaceRule <compiler-generated>:67 (swiftlint:arm64+0x10026c918)
    #36 specialized Rule.lint(file:regions:benchmark:storage:configuration:superfluousDisableCommandRule:compilerArguments:) Linter.swift:84 (swiftlint:arm64+0x1002076d0)
    #37 closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:226 (swiftlint:arm64+0x100201f40)
    #38 partial apply for closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) <compiler-generated> (swiftlint:arm64+0x100207254)
    #39 specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:66 (swiftlint:arm64+0x1001d14e4)
    #40 partial apply for specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) <compiler-generated> (swiftlint:arm64+0x1001d3d48)
    #41 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6070)
    #42 _dispatch_client_callout2 <null>:71622888 (libdispatch.dylib:arm64e+0x41f0)
    #43 _swift_dispatch_apply_current <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6140)
    #44 specialized Array.parallelCompactMap<A>(transform:) Array+SwiftLint.swift:59 (swiftlint:arm64+0x1001d0ab8)
    #45 CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:225 (swiftlint:arm64+0x100200c34)
    #46 CollectedLinter.styleViolations(using:) Linter.swift:197 (swiftlint:arm64+0x100200990)
    #47 (1) suspend resume partial function for closure #1 in static LintOrAnalyzeCommand.collectViolations(builder:) LintOrAnalyzeCommand.swift:74 (swiftlint:arm64+0x100e41d38)
    #48 swift::runJobInEstablishedExecutorContext(swift::Job*) <null>:71622888 (libswift_Concurrency.dylib:arm64e+0x3a534)

  Previous write of size 8 at 0x000109a50e60 by thread T8:
    #0 BumpPtrAllocator.startNewSlab() BumpPtrAllocator.swift:63 (swiftlint:arm64+0x100657f64)
    #1 BumpPtrAllocator.allocate(byteCount:alignment:) BumpPtrAllocator.swift:114 (swiftlint:arm64+0x100658294)
    #2 specialized BumpPtrAllocator.allocate<A>(_:count:) BumpPtrAllocator.swift:129 (swiftlint:arm64+0x1006c0004)
    #3 specialized static RawSyntax.makeLayout(kind:uninitializedCount:arena:initializingWith:) RawSyntax.swift:634 (swiftlint:arm64+0x10066a498)
    #4 SyntaxData.replacingChild(_:at:) SyntaxData.swift:353 (swiftlint:arm64+0x100753894)
    #5 SyntaxData.replacingChild(_:at:) SyntaxData.swift:354 (swiftlint:arm64+0x1007538fc)
    #6 SyntaxData.replacingChild(_:at:) SyntaxData.swift:354 (swiftlint:arm64+0x1007538fc)
    #7 SyntaxData.withTrailingTrivia(_:) SyntaxData.swift:367 (swiftlint:arm64+0x10075284c)
    #8 TokenSyntax.withoutTrivia() SyntaxOtherNodes.swift:142 (swiftlint:arm64+0x1007556c8)
    #9 OperatorUsageWhitespaceVisitor.violation(operatorToken:) OperatorUsageWhitespaceRule.swift:186 (swiftlint:arm64+0x100580fe8)
    #10 OperatorUsageWhitespaceVisitor.visitPost(_:) OperatorUsageWhitespaceRule.swift:151 (swiftlint:arm64+0x100580678)
    #11 SyntaxVisitor.visitImplAssignmentExprSyntax(_:) SyntaxVisitor.swift:3121 (swiftlint:arm64+0x1008f8e8c)
    #12 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5770 (swiftlint:arm64+0x100905da4)
    #13 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #14 SyntaxVisitor.visitImplExprListSyntax(_:) SyntaxVisitor.swift:3141 (swiftlint:arm64+0x1008f9020)
    #15 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5774 (swiftlint:arm64+0x10090670c)
    #16 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #17 SyntaxVisitor.visitImplSequenceExprSyntax(_:) SyntaxVisitor.swift:3130 (swiftlint:arm64+0x1008f8f44)
    #18 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5772 (swiftlint:arm64+0x1009066fc)
    #19 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #20 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #21 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #22 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #23 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #24 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5734 (swiftlint:arm64+0x100905d00)
    #25 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #26 SyntaxVisitor.visitImplInitializerDeclSyntax(_:) SyntaxVisitor.swift:4131 (swiftlint:arm64+0x1008fdd78)
    #27 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5954 (swiftlint:arm64+0x1009069cc)
    #28 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #29 SyntaxVisitor.visitImplMemberDeclListItemSyntax(_:) SyntaxVisitor.swift:4065 (swiftlint:arm64+0x1008fd850)
    #30 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5942 (swiftlint:arm64+0x100906074)
    #31 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #32 SyntaxVisitor.visitImplMemberDeclListSyntax(_:) SyntaxVisitor.swift:4054 (swiftlint:arm64+0x1008fd774)
    #33 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5940 (swiftlint:arm64+0x100906064)
    #34 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #35 SyntaxVisitor.visitImplMemberDeclBlockSyntax(_:) SyntaxVisitor.swift:4043 (swiftlint:arm64+0x1008fd698)
    #36 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5938 (swiftlint:arm64+0x100906054)
    #37 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #38 SyntaxVisitor.visitImplStructDeclSyntax(_:) SyntaxVisitor.swift:4010 (swiftlint:arm64+0x1008fd404)
    #39 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5932 (swiftlint:arm64+0x100906034)
    #40 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #41 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #42 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #43 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #44 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #45 SyntaxVisitor.visitImplSourceFileSyntax(_:) SyntaxVisitor.swift:4076 (swiftlint:arm64+0x1008fd92c)
    #46 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5944 (swiftlint:arm64+0x10090698c)
    #47 SyntaxVisitor.walk<A>(_:) SyntaxVisitor.swift:41 (swiftlint:arm64+0x1008f7f1c)
    #48 OperatorUsageWhitespaceRule.violationRanges(file:) OperatorUsageWhitespaceRule.swift:32 (swiftlint:arm64+0x10057e9dc)
    #49 OperatorUsageWhitespaceRule.validate(file:) OperatorUsageWhitespaceRule.swift:21 (swiftlint:arm64+0x10057e3c4)
    #50 protocol witness for Rule.validate(file:using:compilerArguments:) in conformance OperatorUsageWhitespaceRule <compiler-generated>:67 (swiftlint:arm64+0x10026c918)
    #51 specialized Rule.lint(file:regions:benchmark:storage:configuration:superfluousDisableCommandRule:compilerArguments:) Linter.swift:84 (swiftlint:arm64+0x1002076d0)
    #52 closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:226 (swiftlint:arm64+0x100201f40)
    #53 partial apply for closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) <compiler-generated> (swiftlint:arm64+0x100207254)
    #54 specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:66 (swiftlint:arm64+0x1001d14e4)
    #55 partial apply for specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) <compiler-generated> (swiftlint:arm64+0x1001d3d48)
    #56 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6070)
    #57 _dispatch_client_callout2 <null>:71622888 (libdispatch.dylib:arm64e+0x41f0)
    #58 _swift_dispatch_apply_current <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6140)
    #59 specialized Array.parallelCompactMap<A>(transform:) Array+SwiftLint.swift:59 (swiftlint:arm64+0x1001d0ab8)
    #60 CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:225 (swiftlint:arm64+0x100200c34)
    #61 CollectedLinter.styleViolations(using:) Linter.swift:197 (swiftlint:arm64+0x100200990)
    #62 (1) suspend resume partial function for closure #1 in static LintOrAnalyzeCommand.collectViolations(builder:) LintOrAnalyzeCommand.swift:74 (swiftlint:arm64+0x100e41d38)
    #63 swift::runJobInEstablishedExecutorContext(swift::Job*) <null>:71622888 (libswift_Concurrency.dylib:arm64e+0x3a534)

  Location is heap block of size 56 at 0x000109a50e40 allocated by thread T5:
    #0 __sanitizer_mz_malloc <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x5c29c)
    #1 _malloc_zone_malloc <null>:71622888 (libsystem_malloc.dylib:arm64e+0x1e744)
    #2 one-time initialization function for default SyntaxArena.swift:201 (swiftlint:arm64+0x100730aa8)
    #3 dispatch_once <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x84d54)
    #4 dispatch_once_f <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x84e10)
    #5 SyntaxData.replacingChild(_:at:) SyntaxData.swift:353 (swiftlint:arm64+0x1007539d8)
    #6 SyntaxData.withLeadingTrivia(_:) SyntaxData.swift:359 (swiftlint:arm64+0x1007526c0)
    #7 TokenSyntax.withoutTrivia() SyntaxOtherNodes.swift:142 (swiftlint:arm64+0x100755668)
    #8 OperatorUsageWhitespaceVisitor.violation(operatorToken:) OperatorUsageWhitespaceRule.swift:186 (swiftlint:arm64+0x100580fe8)
    #9 OperatorUsageWhitespaceVisitor.visitPost(_:) OperatorUsageWhitespaceRule.swift:145 (swiftlint:arm64+0x1005804b0)
    #10 SyntaxVisitor.visitImplTypeInitializerClauseSyntax(_:) SyntaxVisitor.swift:3781 (swiftlint:arm64+0x1008fc21c)
    #11 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5890 (swiftlint:arm64+0x1009068dc)
    #12 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #13 SyntaxVisitor.visitImplTypealiasDeclSyntax(_:) SyntaxVisitor.swift:3790 (swiftlint:arm64+0x1008fc2d4)
    #14 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5892 (swiftlint:arm64+0x1009068ec)
    #15 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #16 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #17 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #18 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #19 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #20 SyntaxVisitor.visitImplSourceFileSyntax(_:) SyntaxVisitor.swift:4076 (swiftlint:arm64+0x1008fd92c)
    #21 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5944 (swiftlint:arm64+0x10090698c)
    #22 SyntaxVisitor.walk<A>(_:) SyntaxVisitor.swift:41 (swiftlint:arm64+0x1008f7f1c)
    #23 OperatorUsageWhitespaceRule.violationRanges(file:) OperatorUsageWhitespaceRule.swift:32 (swiftlint:arm64+0x10057e9dc)
    #24 OperatorUsageWhitespaceRule.validate(file:) OperatorUsageWhitespaceRule.swift:21 (swiftlint:arm64+0x10057e3c4)
    #25 protocol witness for Rule.validate(file:using:compilerArguments:) in conformance OperatorUsageWhitespaceRule <compiler-generated>:67 (swiftlint:arm64+0x10026c918)
    #26 specialized Rule.lint(file:regions:benchmark:storage:configuration:superfluousDisableCommandRule:compilerArguments:) Linter.swift:84 (swiftlint:arm64+0x1002076d0)
    #27 closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:226 (swiftlint:arm64+0x100201f40)
    #28 partial apply for closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) <compiler-generated> (swiftlint:arm64+0x100207254)
    #29 specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:66 (swiftlint:arm64+0x1001d14e4)
    #30 partial apply for specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) <compiler-generated> (swiftlint:arm64+0x1001d3d48)
    #31 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6070)
    #32 _dispatch_client_callout2 <null>:71622888 (libdispatch.dylib:arm64e+0x41f0)
    #33 _swift_dispatch_apply_current <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6140)
    #34 specialized Array.parallelCompactMap<A>(transform:) Array+SwiftLint.swift:59 (swiftlint:arm64+0x1001d0ab8)
    #35 CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:225 (swiftlint:arm64+0x100200c34)
    #36 CollectedLinter.styleViolations(using:) Linter.swift:197 (swiftlint:arm64+0x100200990)
    #37 (1) suspend resume partial function for closure #1 in static LintOrAnalyzeCommand.collectViolations(builder:) LintOrAnalyzeCommand.swift:74 (swiftlint:arm64+0x100e41d38)
    #38 swift::runJobInEstablishedExecutorContext(swift::Job*) <null>:71622888 (libswift_Concurrency.dylib:arm64e+0x3a534)

  Thread T13 (tid=16124395, running) is a GCD worker thread

  Thread T8 (tid=16124389, running) is a GCD worker thread

  Thread T5 (tid=16124386, running) is a GCD worker thread

SUMMARY: ThreadSanitizer: data race BumpPtrAllocator.swift:101 in BumpPtrAllocator.allocate(byteCount:alignment:)
==================
... some output omitted for brevity ...
==================
SUMMARY: ThreadSanitizer: data race <compiler-generated> in specialized _NativeSet.insertNew(_:at:isUnique:)
==================
==93661==ERROR: ThreadSanitizer: SEGV on unknown address 0x000000000008 (pc 0x0001ab284bc0 bp 0x00016f54c910 sp 0x00016f54c870 T16124394)
==93661==The signal is caused by a UNKNOWN memory access.
==93661==Hint: address points to the zero page.
    #0 swift_isUniquelyReferenced_nonNull_native <null>:71622888 (libswiftCore.dylib:arm64e+0x3c4bc0)
    #1 specialized static RawSyntax.makeLayout(kind:uninitializedCount:arena:initializingWith:) RawSyntax.swift:648 (swiftlint:arm64+0x10066a898)
    #2 SyntaxData.replacingChild(_:at:) SyntaxData.swift:353 (swiftlint:arm64+0x100753894)
    #3 SyntaxData.withLeadingTrivia(_:) SyntaxData.swift:359 (swiftlint:arm64+0x1007526c0)
    #4 TokenSyntax.withoutTrivia() SyntaxOtherNodes.swift:142 (swiftlint:arm64+0x100755668)
    #5 OperatorUsageWhitespaceVisitor.violation(operatorToken:) OperatorUsageWhitespaceRule.swift:186 (swiftlint:arm64+0x100580fe8)
    #6 OperatorUsageWhitespaceVisitor.visitPost(_:) OperatorUsageWhitespaceRule.swift:139 (swiftlint:arm64+0x1005802e8)
    #7 SyntaxVisitor.visitImplInitializerClauseSyntax(_:) SyntaxVisitor.swift:4089 (swiftlint:arm64+0x1008fda2c)
    #8 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5946 (swiftlint:arm64+0x10090699c)
    #9 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #10 SyntaxVisitor.visitImplPatternBindingSyntax(_:) SyntaxVisitor.swift:4252 (swiftlint:arm64+0x1008fe6ec)
    #11 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5976 (swiftlint:arm64+0x1009060f4)
    #12 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #13 SyntaxVisitor.visitImplPatternBindingListSyntax(_:) SyntaxVisitor.swift:4263 (swiftlint:arm64+0x1008fe7c8)
    #14 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5978 (swiftlint:arm64+0x100906a1c)
    #15 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #16 SyntaxVisitor.visitImplVariableDeclSyntax(_:) SyntaxVisitor.swift:4274 (swiftlint:arm64+0x1008fe8a4)
    #17 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5980 (swiftlint:arm64+0x100906a2c)
    #18 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #19 SyntaxVisitor.visitImplMemberDeclListItemSyntax(_:) SyntaxVisitor.swift:4065 (swiftlint:arm64+0x1008fd850)
    #20 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5942 (swiftlint:arm64+0x100906074)
    #21 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #22 SyntaxVisitor.visitImplMemberDeclListSyntax(_:) SyntaxVisitor.swift:4054 (swiftlint:arm64+0x1008fd774)
    #23 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5940 (swiftlint:arm64+0x100906064)
    #24 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #25 SyntaxVisitor.visitImplMemberDeclBlockSyntax(_:) SyntaxVisitor.swift:4043 (swiftlint:arm64+0x1008fd698)
    #26 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5938 (swiftlint:arm64+0x100906054)
    #27 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #28 SyntaxVisitor.visitImplClassDeclSyntax(_:) SyntaxVisitor.swift:3988 (swiftlint:arm64+0x1008fd24c)
    #29 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5928 (swiftlint:arm64+0x10090695c)
    #30 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #31 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5730 (swiftlint:arm64+0x100906628)
    #32 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #33 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5732 (swiftlint:arm64+0x100905c78)
    #34 specialized SyntaxVisitor.visitChildren<A>(_:) SyntaxVisitor.swift:6244 (swiftlint:arm64+0x10090787c)
    #35 SyntaxVisitor.visitImplSourceFileSyntax(_:) SyntaxVisitor.swift:4076 (swiftlint:arm64+0x1008fd92c)
    #36 SyntaxVisitor.visit(_:) SyntaxVisitor.swift:5944 (swiftlint:arm64+0x10090698c)
    #37 SyntaxVisitor.walk<A>(_:) SyntaxVisitor.swift:41 (swiftlint:arm64+0x1008f7f1c)
    #38 OperatorUsageWhitespaceRule.violationRanges(file:) OperatorUsageWhitespaceRule.swift:32 (swiftlint:arm64+0x10057e9dc)
    #39 OperatorUsageWhitespaceRule.validate(file:) OperatorUsageWhitespaceRule.swift:21 (swiftlint:arm64+0x10057e3c4)
    #40 protocol witness for Rule.validate(file:using:compilerArguments:) in conformance OperatorUsageWhitespaceRule <compiler-generated>:67 (swiftlint:arm64+0x10026c918)
    #41 specialized Rule.lint(file:regions:benchmark:storage:configuration:superfluousDisableCommandRule:compilerArguments:) Linter.swift:84 (swiftlint:arm64+0x1002076d0)
    #42 closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:226 (swiftlint:arm64+0x100201f40)
    #43 partial apply for closure #2 in CollectedLinter.getStyleViolations(using:benchmark:) <compiler-generated> (swiftlint:arm64+0x100207254)
    #44 specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:66 (swiftlint:arm64+0x1001d14e4)
    #45 partial apply for specialized closure #1 in closure #1 in Array.parallelMap<A>(transform:) <compiler-generated> (swiftlint:arm64+0x1001d3d48)
    #46 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6070)
    #47 thunk for @escaping @callee_guaranteed (@unowned Int) -> () <null>:71622888 (libswiftDispatch.dylib:arm64e+0x609c)
    #48 __wrap_dispatch_apply_block_invoke <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x86518)
    #49 _dispatch_client_callout2 <null>:71622888 (libdispatch.dylib:arm64e+0x41f0)
    #50 _dispatch_apply_invoke_and_wait <null>:71622888 (libdispatch.dylib:arm64e+0x18f88)
    #51 _dispatch_apply_with_attr_f <null>:71622888 (libdispatch.dylib:arm64e+0x18268)
    #52 dispatch_apply <null>:71622888 (libdispatch.dylib:arm64e+0x18478)
    #53 wrap_dispatch_apply <null>:71622888 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x86488)
    #54 _swift_dispatch_apply_current <null>:71622888 (libswiftDispatch.dylib:arm64e+0x6140)
    #55 static OS_dispatch_queue.concurrentPerform(iterations:execute:) <null>:71622888 (libswiftDispatch.dylib:arm64e+0x5ff4)
    #56 specialized closure #1 in Array.parallelMap<A>(transform:) Array+SwiftLint.swift:65 (swiftlint:arm64+0x1001d10d0)
    #57 specialized Array.parallelCompactMap<A>(transform:) Array+SwiftLint.swift:59 (swiftlint:arm64+0x1001d0ab8)
    #58 CollectedLinter.getStyleViolations(using:benchmark:) Linter.swift:225 (swiftlint:arm64+0x100200c34)
    #59 CollectedLinter.styleViolations(using:) Linter.swift:197 (swiftlint:arm64+0x100200990)
    #60 (1) suspend resume partial function for closure #1 in static LintOrAnalyzeCommand.collectViolations(builder:) LintOrAnalyzeCommand.swift:74 (swiftlint:arm64+0x100e41d38)
    #61 swift::runJobInEstablishedExecutorContext(swift::Job*) <null>:71622888 (libswift_Concurrency.dylib:arm64e+0x3a534)

==93661==Register values:
 x[0] = 0x8000000000000000   x[1] = 0x0000000000000008   x[2] = 0x00000001044e7f00   x[3] = 0x0000000114007c40  
 x[4] = 0x0000000063000000   x[5] = 0x0000000000000000   x[6] = 0x00000001044cc00c   x[7] = 0x00000001044cc00c  
 x[8] = 0x00000000000a0030   x[9] = 0x0000000000000000  x[10] = 0x0000000000000001  x[11] = 0x0000000000000001  
x[12] = 0x0000000000000000  x[13] = 0x0000000000000008  x[14] = 0x00000001096142f8  x[15] = 0x0000000109614300  
x[16] = 0x00000001ab284bc0  x[17] = 0x00000001044dcb08  x[18] = 0x0000000000000000  x[19] = 0x0000000109616f80  
x[20] = 0x000000010a4337b8  x[21] = 0x000000016f54c950  x[22] = 0x00000001096142f8  x[23] = 0x000000010a433780  
x[24] = 0x0000000000000002  x[25] = 0x000000010a4337b8  x[26] = 0x000000010a4337c0  x[27] = 0x0000000000000007  
x[28] = 0x0000000200000000     fp = 0x000000016f54c910     lr = 0x00000001015a4cf4     sp = 0x000000016f54c870  
ThreadSanitizer can not provide additional info.
SUMMARY: ThreadSanitizer: SEGV (libswiftCore.dylib:arm64e+0x3c4bc0) in swift_isUniquelyReferenced_nonNull_native+0x0
==93661==ABORTING

See the full unabridged output attached. jp-swift-syntax-swift-parser-tsan.txt

Steps to Reproduce

I don't yet have a minimal repro project, but in the meantime here's how to repro:

$ git clone https://github.com/realm/SwiftLint
$ cd SwiftLint
$ git checkout jp-swift-syntax-swift-parser-tsan
$ swift run --configuration release --sanitize thread swiftlint

The previous commit (pointing to SwiftSyntax 0.50600.1) doesn't have this race.

Tested with Xcode 14 RC1 & macOS 12.5.1 on an Apple M1 Max.

I can avoid this race by disabling all parallelism.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions