benaadams / Ben.BlockingDetector

Blocking Detection for ASP.NET Core
Apache License 2.0
731 stars 35 forks source link

.NET Framework publishes bad TaskWaitBegin ETW event #28

Open rwkarg opened 3 years ago

rwkarg commented 3 years ago

(This can't be fixed in this package but adding issue for tracking)

I attempted to hook this up with WCF services that run on .NET Framework and was able to get an IServiceBehavior configured relatively easily. Unfortunately, it appears that .NET Framework publishes the TaskWaitBegin ETW event with 5 parameters when it's defined as having 6.

This was addressed in .NET Core (https://github.com/dotnet/coreclr/pull/8942) but it's not clear that the desktop/.NET Framework backport was ever completed.

The result is that the listener rejects the ETW event since it doesn't provide the 6 parameters it's expecting.

rwkarg commented 3 years ago

The latest reference source for .NET Framework doesn't appear to have the fix: https://github.com/microsoft/referencesource/blob/5697c29004a34d80acdaf5742d7e699022c64ecd/mscorlib/system/threading/Tasks/TPLETWProvider.cs#L520-L522