microsoft/perfview

Freeze processing in EventPipeEventSource if uncaught exception is thrown in callback.

Open

#1,290 创建于 2020年10月15日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)C# (687 fork)batch import
bughelp wanted

仓库指标

Star
 (3,819 star)
PR 合并指标
 (平均合并 1小时 51分钟) (30 天内合并 2 个 PR)

描述

Environment

  • Microsoft.Diagnostics.Tracing.TraceEvent: 2.0.61
  • Microsoft.Diagnostics.NETCore.Client: 0.2.141901
  • EventPipe sender app and receiver app's TFM: net5.0-rc2

Steps to reproduce

  1. run app which produce EventSource event periodically
  2. start EventPipe session by DiagnosticClient
  3. create EventPipeEventSource from event stream
  4. set callback to DynamicEventParser.All
    • Exception will be thrown in callback
  5. start processing

full test code is uploaded to gist

Expected result

callback is invoked periodicaly, or at least terminate event processing when EventPipeEventSource.StopProcessing is called.

Actual result

callback was never invoked again, and EventPipeEventSource.Process never returned, even if EventPipeEventSource.StopProcessing was called.

贡献者指南