Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

With .NET 7 SDK, create razor project failed with error when running PerfView #64263

Closed
WenJunJi01 opened this issue Jan 13, 2022 · 20 comments · Fixed by #67889
Closed

With .NET 7 SDK, create razor project failed with error when running PerfView #64263

WenJunJi01 opened this issue Jan 13, 2022 · 20 comments · Fixed by #67889
Milestone

Comments

@WenJunJi01
Copy link
Member

Repro steps:

  1. Install .NET 7 SDK:7.0.100-alpha.1.22062.5 from https://aka.ms/dotnet/7.0.1xx/daily/dotnet-sdk-win-x64.exe
  2. Download PerfView from https://github.com/Microsoft/perfview/blob/master/documentation/Downloading.md
  3. Start data collection by running. It will ask for elevation (grant it) It should bring up a dialog box that shows that it is collecting data.
    PerfView /merge:false collect
  4. Create a new razor project

Expected result:
The Razor project should be created successfully.

Actually Result:
The following error occured when creating razor project.
image

C:\Users\v-wenjj>dotnet new razor -o r1
Fatal error. Internal CLR error. (0x80131506)
   at Newtonsoft.Json.Linq.JContainer.ReadContentFrom(Newtonsoft.Json.JsonReader, Newtonsoft.Json.Linq.JsonLoadSettings)
   at Newtonsoft.Json.Linq.JContainer.ReadTokenFrom(Newtonsoft.Json.JsonReader, Newtonsoft.Json.Linq.JsonLoadSettings)
   at Newtonsoft.Json.Linq.JObject.Load(Newtonsoft.Json.JsonReader, Newtonsoft.Json.Linq.JsonLoadSettings)
   at Microsoft.TemplateEngine.JExtensions.ReadObject(Microsoft.TemplateEngine.Abstractions.PhysicalFileSystem.IPhysicalFileSystem, System.String)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<UpdateTemplateCacheAsync>d__22.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<UpdateTemplateCacheAsync>d__22, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<UpdateTemplateCacheAsync>d__22 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<UpdateTemplateCacheAsync>d__22, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<UpdateTemplateCacheAsync>d__22 ByRef)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager.UpdateTemplateCacheAsync(Boolean, System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<GetTemplatesAsync>d__16.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<GetTemplatesAsync>d__16, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplatesAsync>d__16 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<GetTemplatesAsync>d__16, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplatesAsync>d__16 ByRef)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager.GetTemplatesAsync(System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver+<GetTemplateGroupsAsync>d__10.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver+<GetTemplateGroupsAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplateGroupsAsync>d__10 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver+<GetTemplateGroupsAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplateGroupsAsync>d__10 ByRef)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver.GetTemplateGroupsAsync(System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver+<ResolveTemplatesAsync>d__8.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver+<ResolveTemplatesAsync>d__8, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ResolveTemplatesAsync>d__8 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver+<ResolveTemplatesAsync>d__8, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ResolveTemplatesAsync>d__8 ByRef)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver.ResolveTemplatesAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput, System.String, System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator+<CoordinateInvocationAsync>d__10.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator+<CoordinateInvocationAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<CoordinateInvocationAsync>d__10 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[Microsoft.TemplateEngine.Cli.New3CommandStatus, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].Start[[Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator+<CoordinateInvocationAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<CoordinateInvocationAsync>d__10 ByRef)
   at Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator.CoordinateInvocationAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput, System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.New3Command+<EnterTemplateManipulationFlowAsync>d__21.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.New3Command+<EnterTemplateManipulationFlowAsync>d__21, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<EnterTemplateManipulationFlowAsync>d__21 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[Microsoft.TemplateEngine.Cli.New3CommandStatus, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].Start[[Microsoft.TemplateEngine.Cli.New3Command+<EnterTemplateManipulationFlowAsync>d__21, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<EnterTemplateManipulationFlowAsync>d__21 ByRef)
   at Microsoft.TemplateEngine.Cli.New3Command.EnterTemplateManipulationFlowAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput)
   at Microsoft.TemplateEngine.Cli.New3Command+<ExecuteAsync>d__22.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.New3Command+<ExecuteAsync>d__22, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ExecuteAsync>d__22 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[Microsoft.TemplateEngine.Cli.New3CommandStatus, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].Start[[Microsoft.TemplateEngine.Cli.New3Command+<ExecuteAsync>d__22, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ExecuteAsync>d__22 ByRef)
   at Microsoft.TemplateEngine.Cli.New3Command.ExecuteAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput)
   at System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart()

Dotnet --info:
C:\Users\v-wenjj>dotnet --info
.NET SDK (reflecting any global.json):
Version: 7.0.100-alpha.1.22062.5
Commit: 62d1c5edb1

Runtime Environment:
OS Name: Windows
OS Version: 10.0.20348
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\7.0.100-alpha.1.22062.5\

Host (useful for support):
Version: 7.0.0-alpha.1.22061.11
Commit: ef7ff07

.NET SDKs installed:
3.1.416 [C:\Program Files\dotnet\sdk]
6.0.200-preview.22055.15 [C:\Program Files\dotnet\sdk]
7.0.100-alpha.1.22062.5 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.0-alpha.1.22062.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0-alpha.1.22061.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.0-alpha.1.22061.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download

@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@pranavkm
Copy link
Contributor

FYI @brianrob

@ghost ghost assigned marcpopMSFT Jan 14, 2022
@brianrob
Copy link
Member

When I run this, I get a stack overflow:

Stack overflow.
   at System.Collections.Generic.HashSet`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Resize(Int32, Boolean)
   at System.Collections.Generic.HashSet`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].AddIfNotPresent(System.__Canon, Int32 ByRef)
   at System.Collections.Generic.HashSet`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].UnionWith(System.Collections.Generic.IEnumerable`1<System.__Canon>)
   at System.Linq.Enumerable+UnionIterator`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].FillSet()
   at System.Linq.Enumerable+UnionIterator`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ToList()
   at Microsoft.TemplateEngine.Core.VariableCollection.get_Keys()
...

Under the debugger, it appears that the stack overflow occurs during the diagnostics walk of survivors:

00 000000b9`e68fdf48 00007ff9`53c73060     coreclr!WKS::gc_heap::walk_relocation_in_brick [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31407] 
01 000000b9`e68fdf50 00007ff9`53c732bd     coreclr!WKS::gc_heap::walk_relocation+0x138 [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31509] 
02 (Inline Function) --------`--------     coreclr!WKS::gc_heap::walk_survivors_relocation+0xb [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 39865] 
03 000000b9`e68fdfd0 00007ff9`53b48fec     coreclr!WKS::gc_heap::walk_survivors+0x21 [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31522] 
04 000000b9`e68fe000 00007ff9`539f8208     coreclr!GCToEEInterface::DiagWalkSurvivors+0xa38d8 [D:\a\_work\1\s\src\coreclr\vm\gcenv.ee.cpp @ 846] 
05 000000b9`e68fe070 00007ff9`53a0b8ed     coreclr!WKS::gc_heap::plan_phase+0x1988 [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 29004] 
06 000000b9`e68fe480 00007ff9`53a0d8e3     coreclr!WKS::gc_heap::gc1+0xd9 [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 20353] 
07 (Inline Function) --------`--------     coreclr!GCToOSInterface::GetLowPrecisionTimeStamp+0x5 [D:\a\_work\1\s\src\coreclr\vm\gcenv.os.cpp @ 1023] 
08 000000b9`e68fe4e0 00007ff9`53a0616f     coreclr!WKS::gc_heap::garbage_collect+0x4df [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 22032] 
09 000000b9`e68fe530 00007ff9`53a05feb     coreclr!WKS::GCHeap::GarbageCollectGeneration+0x14f [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 45098] 
0a 000000b9`e68fe580 00007ff9`53a42733     coreclr!WKS::gc_heap::trigger_gc_for_alloc+0x2b [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 17083] 
0b (Inline Function) --------`--------     coreclr!WKS::gc_heap::try_allocate_more_space+0x17d [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 17222] 
0c (Inline Function) --------`--------     coreclr!WKS::gc_heap::allocate_more_space+0x17d [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 17693] 
0d (Inline Function) --------`--------     coreclr!WKS::gc_heap::allocate+0x1a5 [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 17724] 
0e 000000b9`e68fe5b0 00007ff9`5398a339     coreclr!WKS::GCHeap::Alloc+0x203 [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 44055] 
0f (Inline Function) --------`--------     coreclr!Alloc+0xb2 [D:\a\_work\1\s\src\coreclr\vm\gchelpers.cpp @ 226] 
10 (Inline Function) --------`--------     coreclr!AllocateObject+0x119 [D:\a\_work\1\s\src\coreclr\vm\gchelpers.cpp @ 979] 
11 000000b9`e68fe610 00007ff9`529972ce     coreclr!JIT_New+0x1f9 [D:\a\_work\1\s\src\coreclr\vm\jithelpers.cpp @ 2320] 
12 000000b9`e68fe8a0 00007ff9`52997122     Newtonsoft_Json!Newtonsoft.Json.Linq.JContainer.ReadContentFrom+0xee
13 000000b9`e68fe910 00007ff9`52999202     Newtonsoft_Json!Newtonsoft.Json.Linq.JContainer.ReadTokenFrom+0x42
14 000000b9`e68fe960 00007ff9`a5e81536     Newtonsoft_Json!Newtonsoft.Json.Linq.JObject.Load+0xc2
...

At the actual time of the stack overflow, the stack is consumed by calls to walk_relocation_in_brick:

00 000000b9`e7083fe0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x25 [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31411] 
01 000000b9`e7084020 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
02 000000b9`e7084060 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
03 000000b9`e70840a0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
04 000000b9`e70840e0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
05 000000b9`e7084120 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
06 000000b9`e7084160 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
07 000000b9`e70841a0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
08 000000b9`e70841e0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
09 000000b9`e7084220 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
0a 000000b9`e7084260 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
0b 000000b9`e70842a0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
0c 000000b9`e70842e0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
0d 000000b9`e7084320 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
0e 000000b9`e7084360 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
0f 000000b9`e70843a0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
10 000000b9`e70843e0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
11 000000b9`e7084420 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
12 000000b9`e7084460 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
13 000000b9`e70844a0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
14 000000b9`e70844e0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
15 000000b9`e7084520 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
16 000000b9`e7084560 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
17 000000b9`e70845a0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
18 000000b9`e70845e0 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
19 000000b9`e7084620 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
1a 000000b9`e7084660 00007ff9`53c7321a     coreclr!WKS::gc_heap::walk_relocation_in_brick+0x2a [D:\a\_work\1\s\src\coreclr\gc\gc.cpp @ 31418] 
...

@Maoni0, can you help get some eyes on this? Guessing this might just be a particular heap graph?

@marcpopMSFT marcpopMSFT transferred this issue from another repository Jan 24, 2022
@ghost ghost unassigned marcpopMSFT Jan 24, 2022
@rokonec rokonec transferred this issue from dotnet/templating Jan 25, 2022
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Jan 25, 2022
@jeffschwMSFT
Copy link
Member

Did this build contain the GC regions work that we reverted? Does today's daily build have this same issue?

cc @mangod9

@ghost
Copy link

ghost commented Jan 25, 2022

Tagging subscribers to this area: @dotnet/gc
See info in area-owners.md if you want to be subscribed.

Issue Details

Repro steps:

  1. Install .NET 7 SDK:7.0.100-alpha.1.22062.5 from https://aka.ms/dotnet/7.0.1xx/daily/dotnet-sdk-win-x64.exe
  2. Download PerfView from https://github.com/Microsoft/perfview/blob/master/documentation/Downloading.md
  3. Start data collection by running. It will ask for elevation (grant it) It should bring up a dialog box that shows that it is collecting data.
    PerfView /merge:false collect
  4. Create a new razor project

Expected result:
The Razor project should be created successfully.

Actually Result:
The following error occured when creating razor project.
image

C:\Users\v-wenjj>dotnet new razor -o r1
Fatal error. Internal CLR error. (0x80131506)
   at Newtonsoft.Json.Linq.JContainer.ReadContentFrom(Newtonsoft.Json.JsonReader, Newtonsoft.Json.Linq.JsonLoadSettings)
   at Newtonsoft.Json.Linq.JContainer.ReadTokenFrom(Newtonsoft.Json.JsonReader, Newtonsoft.Json.Linq.JsonLoadSettings)
   at Newtonsoft.Json.Linq.JObject.Load(Newtonsoft.Json.JsonReader, Newtonsoft.Json.Linq.JsonLoadSettings)
   at Microsoft.TemplateEngine.JExtensions.ReadObject(Microsoft.TemplateEngine.Abstractions.PhysicalFileSystem.IPhysicalFileSystem, System.String)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<UpdateTemplateCacheAsync>d__22.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<UpdateTemplateCacheAsync>d__22, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<UpdateTemplateCacheAsync>d__22 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<UpdateTemplateCacheAsync>d__22, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<UpdateTemplateCacheAsync>d__22 ByRef)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager.UpdateTemplateCacheAsync(Boolean, System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<GetTemplatesAsync>d__16.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<GetTemplatesAsync>d__16, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplatesAsync>d__16 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager+<GetTemplatesAsync>d__16, Microsoft.TemplateEngine.Edge, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplatesAsync>d__16 ByRef)
   at Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager.GetTemplatesAsync(System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver+<GetTemplateGroupsAsync>d__10.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver+<GetTemplateGroupsAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplateGroupsAsync>d__10 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver+<GetTemplateGroupsAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<GetTemplateGroupsAsync>d__10 ByRef)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.BaseTemplateResolver.GetTemplateGroupsAsync(System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver+<ResolveTemplatesAsync>d__8.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver+<ResolveTemplatesAsync>d__8, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ResolveTemplatesAsync>d__8 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver+<ResolveTemplatesAsync>d__8, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ResolveTemplatesAsync>d__8 ByRef)
   at Microsoft.TemplateEngine.Cli.TemplateResolution.InstantiateTemplateResolver.ResolveTemplatesAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput, System.String, System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator+<CoordinateInvocationAsync>d__10.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator+<CoordinateInvocationAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<CoordinateInvocationAsync>d__10 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[Microsoft.TemplateEngine.Cli.New3CommandStatus, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].Start[[Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator+<CoordinateInvocationAsync>d__10, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<CoordinateInvocationAsync>d__10 ByRef)
   at Microsoft.TemplateEngine.Cli.TemplateInvocationCoordinator.CoordinateInvocationAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput, System.Threading.CancellationToken)
   at Microsoft.TemplateEngine.Cli.New3Command+<EnterTemplateManipulationFlowAsync>d__21.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.New3Command+<EnterTemplateManipulationFlowAsync>d__21, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<EnterTemplateManipulationFlowAsync>d__21 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[Microsoft.TemplateEngine.Cli.New3CommandStatus, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].Start[[Microsoft.TemplateEngine.Cli.New3Command+<EnterTemplateManipulationFlowAsync>d__21, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<EnterTemplateManipulationFlowAsync>d__21 ByRef)
   at Microsoft.TemplateEngine.Cli.New3Command.EnterTemplateManipulationFlowAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput)
   at Microsoft.TemplateEngine.Cli.New3Command+<ExecuteAsync>d__22.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.TemplateEngine.Cli.New3Command+<ExecuteAsync>d__22, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ExecuteAsync>d__22 ByRef)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[Microsoft.TemplateEngine.Cli.New3CommandStatus, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].Start[[Microsoft.TemplateEngine.Cli.New3Command+<ExecuteAsync>d__22, Microsoft.TemplateEngine.Cli, Version=7.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]](<ExecuteAsync>d__22 ByRef)
   at Microsoft.TemplateEngine.Cli.New3Command.ExecuteAsync(Microsoft.TemplateEngine.Cli.CommandParsing.INewCommandInput)
   at System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart()

Dotnet --info:
C:\Users\v-wenjj>dotnet --info
.NET SDK (reflecting any global.json):
Version: 7.0.100-alpha.1.22062.5
Commit: 62d1c5edb1

Runtime Environment:
OS Name: Windows
OS Version: 10.0.20348
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\7.0.100-alpha.1.22062.5\

Host (useful for support):
Version: 7.0.0-alpha.1.22061.11
Commit: ef7ff07

.NET SDKs installed:
3.1.416 [C:\Program Files\dotnet\sdk]
6.0.200-preview.22055.15 [C:\Program Files\dotnet\sdk]
7.0.100-alpha.1.22062.5 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.0-alpha.1.22062.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0-alpha.1.22061.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.0-alpha.1.22061.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download

Author: WenJunJi01
Assignees: -
Labels:

area-GC-coreclr, untriaged

Milestone: -

@mangod9
Copy link
Member

mangod9 commented Jan 25, 2022

Yeah based on this commit ef7ff07 this build should have GC Regions enabled, which are now disabled in Preview1.

FYI @cshung. We will investigate before enabling.

@mangod9 mangod9 removed the untriaged New issue has not been triaged by the area owner label Feb 28, 2022
@mangod9 mangod9 added this to the 7.0.0 milestone Feb 28, 2022
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Apr 12, 2022
@trylek
Copy link
Member

trylek commented Apr 12, 2022

Based on @cshung's suggestion I have investigated why we're globally turning on the potentially expensive option ShouldTrackSurvivorsForProfilerOrEtw that is making the runtime tests vulnerable to the GC bug tracked in this issue. I have landed in this place:

export COMPlus_EnableEventLog=1

I'm not sure how to go on from here - @hoyosjs, do you have any suggestions? At a first glance I would speculate that we only need this logic for those tests that actually exercise event logging, for others it's mere busywork at the expense of more complicated GC. I'm also guessing that the specific nature of this particular setting is what ultimately makes r2r_extra pipelines pass on Windows but fail left and right on both Linux and OSX.

Thanks

Tomas

@hoyosjs
Copy link
Member

hoyosjs commented Apr 13, 2022

I am relatively surprised COMPlus_EnableEventLog is needed at all (cc: @dotnet/dotnet-diag). I doubt any test uses LTTNG and event pipe should automatically. LTTNG is also relatively expensive... I'd say runtests should have this disabled by default and the flag should be a positive ( --enableEventLogging -> eventLogging = 1 -> COMPlus_EnableEventLog=1) to make it pay for play.

@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Apr 13, 2022
@WenJunJi01
Copy link
Member Author

This issue still reproduces with .NET 7 Preview 4 from main branch of https://github.com/dotnet/installer.
image
Dotnet info:
image

@cshung
Copy link
Member

cshung commented Apr 15, 2022

This issue still reproduces with .NET 7 Preview 4 from main branch of https://github.com/dotnet/installer.

My fix missed the build you were using, that is why it is still reproducing there.

My fix was made on the 12th of April

commit 537a547f74287a625055b0a57dc29ff548edb176
Author: Andrew Au <andrewau@microsoft.com>
Date:   Tue Apr 12 17:54:16 2022 -0700

    Skip SIP in walk_relocation (#67889)

And your build was using the commit from the 11th of April.

commit 5707668eac999163740e42c70f228772e6bc3680
Author: Jeremy Koritzinsky <jekoritz@microsoft.com>
Date:   Mon Apr 11 21:54:37 2022 -0700

    Code fix to add DisableRuntimeMarshalling when required (#67676)

@WenJunJi01
Copy link
Member Author

Verified with .NET 7 Preview 4 SDK: 7.0.100-preview.4.22218.29(runtime-7.0.0-preview.4.22217.5) today, detailed test results:
EN and DE language -> Not repro
SC language-> Repro

We will continue to track this issue. One more question, do I need to open a new bug to track the problem with .NET 7 Preview 4?

@cshung
Copy link
Member

cshung commented Apr 19, 2022

@WenJunJi01, can you check the commit of the SC language build you used?
If it happened after the fix, we should reopen this issue and investigate.

@WenJunJi01
Copy link
Member Author

@cshung Yesterday we installed the .NET 7 Preview 4 SDK from https://github.com/dotnet/installer on a machine with SC language(image: Windows-11-Enterprise-21H2-ZH-CN) and it can repro.
image

But today I installed the latest version of perfview on a clean win11-SC machine to verify again, this issue can not repro. We also checked it on TK and JP environment and neither reproduced.
image

@cshung
Copy link
Member

cshung commented Apr 20, 2022

@WenJunJi01, can you share with me the output of dotnet --info?

@WenJunJi01
Copy link
Member Author

@cshung
Dotnet info:
C:\Users\v-wenjj>dotnet --info
.NET SDK (反映任何 global.json):
Version: 7.0.100-preview.4.22219.19
Commit: 2a412d3454

运行时环境:
OS Name: Windows
OS Version: 10.0.22000
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\7.0.100-preview.4.22219.19\

global.json file:
Not found

Host:
Version: 7.0.0-preview.4.22217.5
Architecture: x64
Commit: 74e1d4d

.NET SDKs installed:
7.0.100-preview.4.22219.19 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.0-preview.4.22218.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.0-preview.4.22217.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 7.0.0-preview.4.22217.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Download .NET:
https://aka.ms/dotnet-download

Learn about .NET Runtimes and SDKs:
https://aka.ms/dotnet/runtimes-sdk-info

@cshung
Copy link
Member

cshung commented Apr 21, 2022

@WenJunJi01
This build definitely contains the fix - it must be the case that something else is broken.
Can you try to capture a dump when the crash happens?

@WenJunJi01
Copy link
Member Author

@cshung Here is the dump file created on .NET Host. Since the file cannot be uploaded, the path is provided.

\bvtsrv2\team\E2E\dump.zip

@cshung
Copy link
Member

cshung commented Apr 21, 2022

@WenJunJi01
The dump is fairly normal, most threads are waiting, but thread 10 is still running some JSON stuff.
No exceptions, no deadlock, what is wrong with that?

@WenJunJi01
Copy link
Member Author

Sorry I'm not very clear either. I'll keep watching to see if this problem reappears in future tests.

@ghost ghost locked as resolved and limited conversation to collaborators May 22, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants