Skip to content

Incomplete rundown event metadata #96365

Open
@verdie-g

Description

@verdie-g

Description

While writing my own event pipe reader, I noticed that some event metadata have an empty event name and don't define any field descriptions. It seems like all these events are under the Microsoft-Windows-DotNETRuntimeRundown provider.

Reproduction Steps

Write a random .NET program, for example

while (true)
{
    await Task.Run(() => { });
    await Task.Delay(50);
}

and collect a trace, for example

dotnet trace collect -p $PID --providers='System.Threading.Tasks.TplEventSource:0x1:4'

Now if you look for the field strings in the nettrace file

$ grep -ao 'O.r.i.g.i.n.a.t.i.n.g.T.a.s.k.S.c.h.e.d.u.l.e.r.I.D' Test.exe_20231229_192905.nettrace
OriginatingTaskSchedulerID
OriginatingTaskSchedulerID
OriginatingTaskSchedulerID

$ grep -ao 'M.e.t.h.o.d.S.t.a.r.t.A.d.d.r.e.s.s' Test.exe_20231229_192905.nettrace

The field OriginatingTaskSchedulerID from an event of the TplEventSource provider is present but the MethodStartAddress field of the Microsoft-Windows-DotNETRuntimeRundown/MethodLoadUnloadRundown event is not.

Expected behavior

I'm expecting the nettrace file to self-contain all metadata to be parsed. Especially, all event metadata with their fields in the MetadataBlock objects so the events in EventBlock objects can be parsed.

Actual behavior

image

In my custom event pipe parser I can see that the Microsoft-Windows-DotNETRuntimeRundown events don't have an event name and field descriptors.

Regression?

No response

Known Workarounds

I think PerfView hardcodes the Microsoft-Windows-DotNETRuntimeRundown field descriptors instead of reading them from the nettrace file. This is not future proof in the case where a new version of an event is introduced.

Configuration

  • .NET 8.0
  • Windows
  • x64

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Tracing-coreclrenhancementProduct code improvement that does NOT require public API changes/additions

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions