perfview icon indicating copy to clipboard operation
perfview copied to clipboard

Hitting assertion in AddServerGCThreadFromMark

Open kant2002 opened this issue 4 years ago • 1 comments

I have locally build PervView in Debug configuration. When trying troubleshoot memory usage of restore process on Raspberry PI 3B+ (Raspbian 32-bit), I take trace using dotnet-trace collect -pid xxx. This result in the dotnet_20210729_084804.nettrace file.

I successfully open that file in PerfView, but when double-click on Memory Group\GCSTats I start constantly hitting assertion at following location https://github.com/microsoft/perfview/blob/b8afc7358f2c6c9805848ae35d1164cc062dc952/src/TraceEvent/Computers/TraceManagedProcess.cs#L4545

There underlying assumption that ServerGC always have more then one Heap. Seems to be this is not true either on ARM. or in general. Is this something which I should do differently, or this logic should be extended?

kant2002 avatar Jul 29 '21 08:07 kant2002

do you know for sure that it has only 1 heap? you could verify this various ways, eg, you could look at the MarkWithType event which has a HeapNum field:

Microsoft-Windows-DotNETRuntime/GC/MarkWithType ThreadID="3,720" ProcessorNumber="3" HeapNum="3" ClrInstanceID="11" Type="1" Promoted="0"

if there are more than one heap you'd see multiple of them in one GC with the same Type field

Maoni0 avatar Jul 30 '21 07:07 Maoni0