-
Notifications
You must be signed in to change notification settings - Fork 361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix race with AssemblyLoadContext.ResolveUsingResolvingEvent #2360
Fix race with AssemblyLoadContext.ResolveUsingResolvingEvent #2360
Conversation
…lled from multiple threads
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good to me. It sounds like this fix has already been tested and works. There currently aren't any tests for the runner in this repo.
@josalem Yeah, we have been kind of "testing" these changes for long time in our Jenkins CI (since dotnet/coreclr#20644) - never seen this issue happening again. I am still gonna test this locally and on Helix (from private submission) though before merging in. |
@josalem Do I need to update README.md stating what changes have been added? |
Yes! Good catch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Love it!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
I've tested runner with these changes in Helix - seems working fine. I also noticed that you removed ability to specify Should I bump up a version of the package to 2.5.1? arcade/src/Microsoft.DotNet.XUnitConsoleRunner/src/Microsoft.DotNet.XUnitConsoleRunner.csproj Line 11 in ecbea32
|
The verbose option is dynamically available when a reporter is loaded. |
@ViktorHofer Thanks for replying. By the way, is there any particular reason why arcade depends on pre-build version of xUnit ? Lines 52 to 54 in ff7bf2b
|
Yes, corefx depends on that version as with the stable version a netstandard2.0 configuration was removed in one of the packages which caused issues. I can reserve some time to test if we can now upgrade but I don't see it as a high prio issue. |
Updates (dotnet#2361) Update dependencies from https://github.com/dotnet/arcade build 20190327.11 (dotnet#2363) - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19177.11 - Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19177.11 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19177.11 - Microsoft.DotNet.SignTool - 1.0.0-beta.19177.11 - Microsoft.DotNet.SwaggerGenerator.MSBuild - 1.0.0-beta.19177.11 Add missing corefx test files for mono Update JenkinsShutdownStatus.md Update JenkinsShutdownStatus.md Update JenkinsShutdownStatus.md Move images folder to correct subfolder (dotnet#2372) Added partial facade generator (dotnet#2221) * added partial facade genertor * c# coding done * making corefx projects work with new genfacades * removing nesting types from reference assembly, adding generic support nad increasing restriction of public types * Minor naming changes and other minor feedback * making nested, full facades and some dwarning disables * using ispartialfacade to use new tool * making compile errors work * Added missingtypes List * eric feedback * name changes, catch exception removed and spport for generic type parameters greater than 9 * GenFacadesOmitType added and IgnoreMissitypeList prefixed with genfacades * avoiding doube casting, omittype name change WIP Create a GH issue on publishing error(s) Try to tag non-bot accounts only Make a NuGet package instead Remove Octo using Correct passed values to .proj Correct passed values to .proj Revert changes in .proj Just create the package PR feedback Add envs for artifacts, toolset, tools, and log directories fixes dotnet#2276 use VSO vars instead remove spaces between ] and $ Update NGEN optimization doc (dotnet#2355) Add support for signing validation in the publishing release pipelines. (dotnet#2362) * Add support for signing validation in the publishing release pipelines. * Some adjustments * More comments. * PR feedback: add --traverse-subfolders Fix typos in ApiCompat project (dotnet#2293) * Fix typos in output text * Fix typos in comments Update dependencies from https://github.com/dotnet/arcade build 20190329.1 (dotnet#2380) - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19179.1 - Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19179.1 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19179.1 - Microsoft.DotNet.SignTool - 1.0.0-beta.19179.1 - Microsoft.DotNet.SwaggerGenerator.MSBuild - 1.0.0-beta.19179.1 Update JenkinsShutdownStatus.md Fix race with AssemblyLoadContext.ResolveUsingResolvingEvent (dotnet#2360) Remove xunit.console.deps.json from output dir (dotnet#2381) 2286: Return passing result test for exit code 0 when no result files are found. Fix NGEN method logging The NGEN method logging code didn't account for the fact that we run IBCMerge for the same assembly multiple times when the project uses multi-targeting. This created race conditions on both writing the temp XML file and the NGEN method list. This PR fixes this by properly writing out separate files for each target framework of an assembly. closes dotnet#2309 Remove MVID After verifying the race locally removing the MVID. It's clear the race is about TF which is now properly covered. Keeping the MVID out of the name means that we can more easily diff NGEN between builds. Respond to PR feedback Use verbose for xunit execution By default the xunit output only includes tests which were skipped or failed. It provides no information about how tests are executed. This is fine for day to day execution but insufficient for CI jobs. When tests crash rudely then there is no context for why a test failed. For instance if there is a `StackOverflowException` or sigsegv then the log doesn't have any data indicating what test failed. The `-verbose` flag causes xunit to output detailed information about test execution including Starting and Finished notations. With this output its clear what test caused the crash as there will be a Starting notation as the last entry in the log. This can be invaluable when tracking down crashes / hangs. Particularly on Unix where we don't have dump support yet. Example output for a successfully executing test. ``` Microsoft.CodeAnalysis.CSharp.UnitTests.PreprocessorTests.TestIfFalseElifFalseElseEndif [STARTING] Microsoft.CodeAnalysis.CSharp.UnitTests.PreprocessorTests.TestIfFalseElifFalseElseEndif [FINISHED] Time: 0.0003478s ``` Update dependencies from https://github.com/dotnet/arcade build 20190329.2 (dotnet#2387) - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19179.2 - Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19179.2 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19179.2 - Microsoft.DotNet.SignTool - 1.0.0-beta.19179.2 - Microsoft.DotNet.SwaggerGenerator.MSBuild - 1.0.0-beta.19179.2 Update JenkinsShutdownStatus.md Update JenkinsShutdownStatus.md Add angular language to swagger generator (dotnet#2378) Fix docs URL reference Fix docs URL reference add append line in sourcegenerator to comment that the following is autogenerated Add xunit.console.deps.json only for netcoreapp (dotnet#2388) Make project packable Add Microsoft.DotNet.RemoteExecutor (dotnet#2176) * Add Microsoft.DotNet.RemoteExecutor Update dependencies from https://github.com/dotnet/arcade build 20190401.12 (dotnet#2400) - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19201.12 - Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19201.12 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19201.12 - Microsoft.DotNet.SignTool - 1.0.0-beta.19201.12 - Microsoft.DotNet.SwaggerGenerator.MSBuild - 1.0.0-beta.19201.12 Remove deps from test archive (dotnet#2399) Update JenkinsShutdownStatus.md Fix a typo in StartHere.md (dotnet#2325) Fix exit codes (dotnet#2394) It used to be that a return code of 2 was success (indicating the client was disconnected). Now, 0 appears to be the correct return code. Addressing issues with the new GenfacadesSourceTask (dotnet#2404) * moving using task to main file for shims, adding license header, exposing assembly path * handing platformNotSupportedGeneratedCode * Running GenerateNotSupportedSource as first target of coreCompileDependsOn, hence removing the dependency of genfacades Use reference Id for enum names if it exists. (dotnet#2405) Start consuming the latest portable IBCMerge (dotnet#2365) Update dependencies from https://github.com/dotnet/arcade build 20190402.13 (dotnet#2410) - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19202.13 - Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19202.13 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19202.13 - Microsoft.DotNet.SignTool - 1.0.0-beta.19202.13 - Microsoft.DotNet.SwaggerGenerator.MSBuild - 1.0.0-beta.19202.13 missing property Tag (dotnet#2414) [Pool Provider] Prod, more logging, and correlation script (dotnet#2409) * Fix exit codes It used to be that a return code of 2 was success (indicating the client was disconnected). Now, 0 appears to be the correct return code. * [Pool Provider] Prod, more logging, and correlation script - Add a prod deployment (which is really ahead of int at this point). - Add a additional logging in based on the Maestro logging setup - Add a rough script that can map from a build onto the helix work items (and other info) that was submitted for that build Move TheoryData helper to XUnitExtensions (dotnet#2403) * Move TheoryData helper to XUnitExtensions * Move tests over to XUnitExtensions Add support for junit results (dotnet#2421) * Add support for junit results This changes adds support to the helix sdk azure pipelines reporter to process junit xml results from junit-results.xml files. * skip_reason can't be none * Use if instead of or because of FutureWarning * Add validation of expected failures * Use correct property name * Make expected failed tests correct. Update dependencies from https://github.com/dotnet/arcade build 20190403.10 (dotnet#2425) - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19203.10 - Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19203.10 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19203.10 - Microsoft.DotNet.SignTool - 1.0.0-beta.19203.10 - Microsoft.DotNet.SwaggerGenerator.MSBuild - 1.0.0-beta.19203.10 Update AsyncPublishing_HowToUse.md (dotnet#2424) Adding other repo feeds Publish symbols using release pipelines (dotnet#2407) * Adding PublishToSymbolServers Fix itemgroup adding Fix filename Fix bad merge Fix bad merge remove verbose
This ports the fix for https://github.com/dotnet/coreclr/issues/20594 - xunit/xunit#1846 that was never accepted to official xUnit repo and required us to build our own version of xUnit with this fix and overwrite it during the test run in Jenkins.
@RussKeldorph This is required in order to unblock us for getting Helix balancing work dotnet/coreclr#23476 merged in.
/cc @sbomer @BruceForstall @dotnet/jit-contrib