Skip to content

Mitigate the GeneratorDriver missync issue while capturing dumps#57680

Merged
jasonmalinowski merged 2 commits intodotnet:release/dev17.0-vs-depsfrom
jasonmalinowski:mitigate-generatordriver-issue
Nov 11, 2021
Merged

Mitigate the GeneratorDriver missync issue while capturing dumps#57680
jasonmalinowski merged 2 commits intodotnet:release/dev17.0-vs-depsfrom
jasonmalinowski:mitigate-generatordriver-issue

Conversation

@jasonmalinowski
Copy link
Copy Markdown
Member

This mitigates https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1423058 which is happening because somehow our tracked project state is getting out of sync with our GeneratorDriver; when we're transforming GeneratorDrivers we already have a mechanism to throw out the driver and simply re-create it later; that's not ideal from a performance perspective but it's better than throwing exceptions and breaking features.

This will also force dumps to be created in this situation, even if that's something not being requested via the telemetry service. Since we've discovered that the telemetry service won't correctly let us request dumps for out-of-process work.

@jasonmalinowski jasonmalinowski requested review from a team as code owners November 10, 2021 20:47
@ghost ghost added the Area-IDE label Nov 10, 2021
@jasonmalinowski jasonmalinowski force-pushed the mitigate-generatordriver-issue branch from 3acf384 to f2b7597 Compare November 10, 2021 21:45
{
// record NFW to see who violates contract.
WatsonReporter.ReportNonFatal(new Exception("errorId is null"));
FatalError.ReportAndCatch(new Exception("errorId is null"));
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since I had to touch this, trying to make everything consistently go through FatalError* as opposed to something else.

@jasonmalinowski jasonmalinowski force-pushed the mitigate-generatordriver-issue branch from f2b7597 to 3652637 Compare November 10, 2021 22:37
This mitigates https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1423058
which is happening because somehow our tracked project state is getting
out of sync with our GeneratorDriver; when we're transforming
GeneratorDrivers we already have a mechanism to throw out the driver
and simply re-create it later; that's not ideal from a performance
perspective but it's better than throwing exceptions and breaking
features.

This will also force dumps to be created in this situation, even if
that's something not being requested via the telemetry service. Since
we've discovered that the telemetry service won't correctly let us
request dumps for out-of-process work.
@jasonmalinowski jasonmalinowski force-pushed the mitigate-generatordriver-issue branch from 3652637 to 85c74d3 Compare November 10, 2021 23:36
@jasonmalinowski jasonmalinowski self-assigned this Nov 11, 2021
Since we are using reflection to copy this value around, we can't
use a custom delegate type that won't unify across assemblies.
This makes us use Action<T1, T2> instead, and I just comment out the
support for non-fatal reporting in the result provider, since we don't
actually use it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants