Updating progress pane using timer causes race condition that would randomly crash powershell #2800
Labels
Issue-Bug
Issue has been identified as a bug in the product
Resolution-Duplicate
The issue is a duplicate.
WG-Interactive-Console
the console experience
With PR #2640, a timer is used to trigger updating progress pane every 100 ms to improve progress record rendering performance (commit: 760a9c2). Before the change,
_progPane.Show
and_pendingProgress.Update
used to be called on the same thread, and now they will be called on different threads. This causes race conditions -- for all type members that are used by both methods, they might be changed at the same time and the states may be corrupted.The screenshot below is from a recent CI build on master branch. The exception was raised from RenderHelper, and that was because it was actually enumerating over
PendingProgress._topLevelNodes
and at the same time new node was being added to/removed from_topLevelNodes
by Update./cc @iSazonov @lzybkr
The text was updated successfully, but these errors were encountered: