-
Notifications
You must be signed in to change notification settings - Fork 2.7k
[release/3.1] Handle Counter Polling Interval of 0 #28180
[release/3.1] Handle Counter Polling Interval of 0 #28180
Conversation
The test failures appear to be different from what this patch is intending to fix:
The failure I would expect from original issue would be for the test to hang after setting the interval to 1. I'm inclined to think this is a timing issue in the test when run in CI and on the older version of EventPipe without some of the performance patches in 5. I'll update the test with something more explicit than just waiting after each step. |
@josalem I've just hit the failure in this test in my PR in the runtime main branch in all Linux MUSL legs. See https://dev.azure.com/dnceng/public/_build/results?buildId=1183549&view=ms.vss-test-web.build-test-results-tab. |
Alright, let me make a quick PR to fix that test upstream and I'll update this PR as well. Looks like my times are too tight for some CI legs. |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
Approved. We will take for consideration in 3.1.x
fixing title to match our usual pattern... |
@josalem there's a bunch of build failures on Mac |
The test failures are the cookie ones (will be fixed by parallel PR and can be ignored) and DynamicMethodGCStress. |
@danmoseley I saw those. They look to be related to
Based on the warnings they looks like the compiler is complaining of deprecated API usage.
Is it possible a compiler version or the version of the icu4c library changed? This patch shouldn't affect those at all. I couldn't build the release/3.1 branch at all on my local mac either, with or without my change. |
@safern @tarekgh looks similar to dotnet/runtime#39583 |
Yes, we need to port https://github.com/dotnet/runtime/pull/39900/files to CoreCLR release/3.1 |
@danmoseley you are correct. I can port it if help is needed. |
@safern would you mind? I wouldn't normally ask but this change needs to get in for an internal customer. |
@danmoseley talked offline with @safern and he confirmed he is going to port the fix. |
I created: #28181 |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
The only failures are in System.Net.Primitives. It won't let me see the Test results (build not found?) but presumably it's the cookies issue, which will be fixed by the corefx ingestion PR that is up right now. When we merge that, we can rerun this. Or, if we don't want to wait, maybe someone can recover the test failures and we can verify it's just the cookie ones. Then we can merge immediately. |
The failures were the Mac build issue (which should be resolved) and the System.Net failures. |
There was also a failure in System.Text.RegularExpressions.Tests: https://dev.azure.com/dnceng/public/_build/results?buildId=1184134&view=ms.vss-test-web.build-test-results-tab&runId=35606250&resultId=168473&paneView=debug I don't think we have time to get in the dependency updates from corefx/core-setup, then this. The current CI run for this is https://dev.azure.com/dnceng/public/_build/results?buildId=1189190&view=results - if that looks good I think we should merge this, and hold the dependency PRs for next month |
The regex failure will be also fixed by the corefx insertion (dotnet/corefx@23e15f8) I'm fine merging this. |
I will merge and keep an eye on the run tonight. |
Note that there was a merge conflict against internal/release/3.1 in the last PR, which @safern is fixing up manually |
* Update branding to 3.1.17 (#28173) * Port from 5.0: Fix Position Independent Code in CMake files (#28143) * CoreCLR PR26323 Port: Fix PIE options * Added missing PIE and RELRO compilation flags. * Merged PR 15832: Port from 5.0: Fix Position Independent Code in CMake files (#28143) Port from 5.0: Fix Position Independent Code in CMake files (#28143) * CoreCLR PR26323 Port: Fix PIE options * Added missing PIE and RELRO compilation flags. * Fix System.Globalization.Native build on Big Sur (#28181) * Fix System.Globalization.Native build on Big Sur * Fix build * Add flags for Linux * [release/3.1] Handle Counter Polling Interval of 0 (#28180) * Backport dotnet/runtime#53836 * Fix test build * update test Co-authored-by: Jan Jahoda <[email protected]> Co-authored-by: Ivan Diaz Sanchez <[email protected]> Co-authored-by: Will Godbe <[email protected]> Co-authored-by: Santiago Fernandez Madero <[email protected]> Co-authored-by: John Salem <[email protected]>
* Update branding to 3.1.17 (#28173) * Port from 5.0: Fix Position Independent Code in CMake files (#28143) * CoreCLR PR26323 Port: Fix PIE options * Added missing PIE and RELRO compilation flags. * Merged PR 15832: Port from 5.0: Fix Position Independent Code in CMake files (#28143) Port from 5.0: Fix Position Independent Code in CMake files (#28143) * CoreCLR PR26323 Port: Fix PIE options * Added missing PIE and RELRO compilation flags. * Fix System.Globalization.Native build on Big Sur (#28181) * Fix System.Globalization.Native build on Big Sur * Fix build * Add flags for Linux * [release/3.1] Handle Counter Polling Interval of 0 (#28180) * Backport dotnet/runtime#53836 * Fix test build * update test * update branding to 3.1.18 (#28182) * Update dependencies from https://github.com/dotnet/core-setup build 20210609.1 (#28178) Microsoft.NETCore.App From Version 3.1.9-servicing.20459.3 -> To Version 3.1.17-servicing.21309.1 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Merged PR 15716: [release/3.1] Use user read+write access for coredump file descriptor open * [release/3.1] #28183 Fix OSX native dependency installation * Avoid upgrading packages that are explicitly installed. * Use a brewfile * Change shebang to use bash and directly execute. * [release/3.1] Update dependencies from dotnet/corefx (#28179) [release/3.1] Update dependencies from dotnet/corefx - Add 3.1 AzDO feeds to the test build to ensure that the test build can correctly restore the CoreFX build. It seems that the new CoreFX build isn't on the old blob feeds, so without this fix, we end up restoring the first 5.0.0-alpha.1 build instead of the build we want. - Exclude tests that depend on OOB assemblies. - Turn off CoreFX test legs in CI. Now that the branch is on servicing, and the churn is low, exclude these as they break far more often than they detect issues. These already run in CoreFX CI on release bits. In case we want to bring them back for checked testing, we need to fix CoreFX.depproj. It has a package - Microsoft.Private.CoreFx.OOB - that's supposed to bring in all deps that are out of box. These are currently not getting restored and this ends up causing File not found issues in the binder when compiling tests, making test exclusions impossible. Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit. Co-authored-by: Jan Jahoda <[email protected]> Co-authored-by: Ivan Diaz Sanchez <[email protected]> Co-authored-by: Will Godbe <[email protected]> Co-authored-by: Santiago Fernandez Madero <[email protected]> Co-authored-by: John Salem <[email protected]> Co-authored-by: Anirudh Agnihotry <[email protected]> Co-authored-by: dotnet-bot <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Backport of dotnet/runtime#53836 to release/3.1
Customer Impact
When listening to EventCounters there is a dedicated thread that is supposed to publish the metric values via EventSource on a periodic timer. However due a bug it is possible to put it into an infinite loop here. This occurs any time _pollingIntervalMilliseconds <= 0, which could occur for a few reasons:
(from dotnet/runtime#53564)
Testing
The included test covers scenario 1, and manual testing was done for scenario 2.
Risk
This patch reduces overall risk by removing any looping based on user input. This should prevent scenario 1 and 2 above.