docfx icon indicating copy to clipboard operation
docfx copied to clipboard

DocFX crashes in GetSpecId() with System.ArgumentOutOfRangeException: Index was out of range.

Open ChristianTellefsen opened this issue 2 years ago • 0 comments

Operating System: (Windows or Linux or MacOS)

Windows, running in GameCI Unity environment on GitHub Actions worker. DocFX does not crash, on the same project, when building the site on my dev PC.

DocFX Version Used:

DocFX 2.57.2 DocFX 2.59.2

Template used: (default or statictoc or contain custom template)

{
  "metadata": [
    {
      "src": [
        {
          "files": [
            "DocFxDummySource/aaaa-docfx-dummy-source.cs",
            "Assets/Scripts/**/*.cs",
            "Core.*.csproj"
          ],
          "cwd": ".."
        }
      ],
      "dest": "api",
      "disableGitFeatures": false,
      "disableDefaultFilter": false,
      "filter": "filter-config.yml"
    }
  ],
  "build": {
    "xref": [
      "https://normanderwan.github.io/UnityXrefMaps/xrefmap.yml"
    ],
    "xrefService": [
      "https://xref.docs.microsoft.com/query?uid={uid}"
    ],
    "globalMetadata": {
      "_appTitle": "Our Company",
      "_appFooter": "Copyright © 2012 - 2021 Our Company AS",
      "_enableSearch": "true",
      "_gitContribute": {      
        "apiSpecFolder": "Documentation~/apidoc"
      }
    },
    "postProcessors": [
      "ExtractSearchIndex"
    ],
    "content": [
      {
        "files": [
          "api/**.yml",
          "api/index.md"
        ]
      },
      {
        "files": [
          "articles/**/**.md",
          "articles/toc.yml",
          "toc.yml",
          "*.md"
        ]
      }
    ],
    "resource": [
      {
        "files": [
          "articles/images/**",
          "images/**"
        ]
      }
    ],
    "overwrite": [
      {
        "files": [
          "apidoc/**.md",
        ],
        "exclude": [
          "obj/**",
          "_site/**"
        ]
      },
      {
        "files": [
          "Library/PackageCache/com.attensi.*/Documentation~/apidoc/*.md"
        ],
        "cwd": ".."
      }
    ],
    "dest": "_site",
    "globalMetadataFiles": [],
    "fileMetadataFiles": [],
    "template": [
      "default",
      "templates/attensi"
    ],
    "markdownEngineName": "markdig",
    "noLangKeyword": false,
    "keepFileLink": false,
    "cleanupCacheHistory": false,
    "disableGitFeatures": false
  }
}

Steps to Reproduce:

Reproducing is going to require a copy of all our source files, which I cannot provide. I don't have a simple test case.

Expected Behavior:

Documentation is built.

Actual Behavior:

DocFX crashes.

[22-04-26 11:12:48.851]Error:Error extracting metadata for [...my .csproj files...] System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.Generic.List1[T].get_Item (System.Int32 index) [0x00009] in <533173d24dae460899d2b10975534bb0>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SpecIdHelper+<>c__DisplayClass4_0.<SpecTypeGenericParameter>b__0 (System.Text.RegularExpressions.Match match) [0x0001c] in <592d1f25abee4dafaa2d141f06705e0b>:0 at System.Text.RegularExpressions.Regex.Replace (System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.Regex regex, System.String input, System.Int32 count, System.Int32 startat) [0x00094] in <9c6e2cb7ddd8473fa420642ddcf7ce48>:0 at System.Text.RegularExpressions.Regex.Replace (System.String input, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Int32 count, System.Int32 startat) [0x0000e] in <9c6e2cb7ddd8473fa420642ddcf7ce48>:0 at System.Text.RegularExpressions.Regex.Replace (System.String input, System.Text.RegularExpressions.MatchEvaluator evaluator) [0x00023] in <9c6e2cb7ddd8473fa420642ddcf7ce48>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SpecIdHelper.SpecTypeGenericParameter (System.Collections.Generic.IReadOnlyList1[T] names, System.String id) [0x00024] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SpecIdHelper.GetSpecId (Microsoft.CodeAnalysis.ISymbol symbol, System.Collections.Generic.IReadOnlyList1[T] typeGenericParameters, System.Collections.Generic.IReadOnlyList1[T] methodGenericParameters) [0x00035] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.AddInheritedMembers (Microsoft.CodeAnalysis.INamedTypeSymbol symbol, Microsoft.CodeAnalysis.INamedTypeSymbol type, System.Collections.Generic.Dictionary2[TKey,TValue] dict, System.Collections.Generic.IReadOnlyList1[T] typeParamterNames) [0x000a1] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.GenerateInheritance (Microsoft.CodeAnalysis.INamedTypeSymbol symbol, Microsoft.DocAsCode.Metadata.ManagedReference.MetadataItem item) [0x00087] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamedType (Microsoft.CodeAnalysis.INamedTypeSymbol symbol) [0x0000d] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.NamedTypeSymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0 at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.Symbol.Microsoft.CodeAnalysis.ISymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T] (System.Collections.Generic.IEnumerable1[T] children, System.Func2[T,TResult] getChildren, System.Func2[T,TResult] filter) [0x00024] in <592d1f25abee4dafaa2d141f06705e0b>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamespace (Microsoft.CodeAnalysis.INamespaceSymbol symbol) [0x00021] in <592d1f25abee4dafaa2d141f06705e0b>:0 at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.NamespaceSymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0
at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.Symbol.Microsoft.CodeAnalysis.ISymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T] (System.Collections.Generic.IEnumerable1[T] children, System.Func2[T,TResult] getChildren, System.Func2[T,TResult] filter) [0x00024] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitAssembly (Microsoft.CodeAnalysis.IAssemblySymbol symbol) [0x0009e] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.AssemblySymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0 at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.Symbol.Microsoft.CodeAnalysis.ISymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynMetadataExtractor.Extract (Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataOptions options) [0x000aa] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynIntermediateMetadataExtractor.GenerateYamlMetadata (Microsoft.CodeAnalysis.Compilation compilation, Microsoft.CodeAnalysis.IAssemblySymbol assembly, Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataOptions options) [0x00018] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynIntermediateMetadataExtractor.Extract (Microsoft.DocAsCode.Metadata.ManagedReference.IInputParameters key) [0x00022] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynSourceFileBuildController.ExtractMetadata (Microsoft.DocAsCode.Metadata.ManagedReference.IInputParameters parameters) [0x00007] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.GetMetadataFromProjectLevelCache (Microsoft.DocAsCode.Metadata.ManagedReference.IBuildController controller, Microsoft.DocAsCode.Metadata.ManagedReference.IInputParameters key) [0x000d0] in :0
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.SaveAllMembersFromCacheAsync () [0x00806] in :0
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.ExtractMetadataAsync () [0x000c0] in :0

ChristianTellefsen avatar Apr 26 '22 11:04 ChristianTellefsen