Skip to content

Don't dispose timers if we're in our UnhandledException handler.#104826

Closed
StephenMolloy wants to merge 1737 commits intodotnet:mainfrom
StephenMolloy:bp6_64115_Memcache-UnhandledEx-Timer-Deadlock
Closed

Don't dispose timers if we're in our UnhandledException handler.#104826
StephenMolloy wants to merge 1737 commits intodotnet:mainfrom
StephenMolloy:bp6_64115_Memcache-UnhandledEx-Timer-Deadlock

Conversation

@StephenMolloy
Copy link
Copy Markdown
Member

  • Description -
    Timer was updated in 5.0 to improve performance, but is prone to deadlocks when manipulated in an unhandled exception handler. Which MemoryCache does. And MemoryCache is probably more likely to witness unhandled exceptions like OOM than typical code.
  • Customer Impact - The deadlock is preventing a first-party team (Exchange/Substrate) from migrating to .Net 6 and 8.
  • Regression? - From NetFx, yes.
  • Risk Low.

Original Issue: #64115 (and #102666)
.Net 9.0 PR: #103937

System.Runtime.Caching is an OOB package that ships alongside the runtime.

dotnet-maestro Bot and others added 30 commits September 11, 2023 13:33
…31.3 (dotnet#91427)

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.300 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.400
 From Version 6.0.22 -> To Version 6.0.23

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
[manual] Merge release/6.0-staging into release/6.0
….0-2023-09-12-1023

Merging internal commits for release/6.0
…dotnet#92032)

This adds a check for the framework's .deps.json instead of just the existence of the directory. To avoid extra file checks in the normal/happy path (where all framework version folder are valid), when resolving, it only does the check after resolving the best version match. And if that version directory isn't valid, it tries resolving again without it.

Backport of dotnet#90035
…/6.0-to-release/6.0-staging

[automated] Merge branch 'release/6.0' => 'release/6.0-staging'
* [release/6.0] Update Ubuntu 16.04 queues to 22.04

* add svc prefix
* Fix JsonDocument thread safety. (dotnet#76716)

Co-authored-by: stoub@microsoft.com

* Update ServicingVersion.
…otnet#92884)

* Update dependencies from https://github.com/dotnet/runtime-assets build 20231002.2

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 6.0.0-beta.23410.1 -> To Version 6.0.0-beta.23502.2

* Update dependencies from https://github.com/dotnet/runtime-assets build 20231002.2

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 6.0.0-beta.23410.1 -> To Version 6.0.0-beta.23502.2

* Update dependencies from https://github.com/dotnet/runtime-assets build 20231002.2

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 6.0.0-beta.23410.1 -> To Version 6.0.0-beta.23502.2

* Update dependencies from https://github.com/dotnet/runtime-assets build 20231002.2

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
 From Version 6.0.0-beta.23410.1 -> To Version 6.0.0-beta.23502.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…n array of structs of types that use old-style managed marshalers (dotnet#93147)
….0-2023-10-10-1026

Merging internal commits for release/6.0
- Added two config options, one that configures the worker and wait thread timeouts, and another that enables keeping some number of worker threads alive after they are created
- This enables services that take periodic traffic to keep some worker threads around for better latency, while allowing extra threads to time out as appropriate for the service
…tnet#93394)

* Update dependencies from https://github.com/dotnet/arcade build 20231011.8

Microsoft.DotNet.ApiCompat , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 6.0.0-beta.23408.5 -> To Version 6.0.0-beta.23511.8

* Update dependencies from https://github.com/dotnet/emsdk build 20231012.2

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.300 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.400
 From Version 6.0.23 -> To Version 6.0.23

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…30905.2 (dotnet#93397)

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 6.0.0-prerelease.23401.2 -> To Version 6.0.0-prerelease.23455.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Carlos Sánchez López <1175054+carlossanlop@users.noreply.github.com>
…t#93396)

* Update dependencies from https://github.com/dotnet/xharness build 20230905.2

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 6.0.0-prerelease.23401.2 -> To Version 6.0.0-prerelease.23455.2

* Re-add removed feed

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Carlos Sánchez López <1175054+carlossanlop@users.noreply.github.com>
…/6.0-to-release/6.0-staging

[automated] Merge branch 'release/6.0' => 'release/6.0-staging'
jkoritzinsky and others added 8 commits June 14, 2024 10:26
* Update dependencies from https://github.com/dotnet/emsdk build 20240615.2

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.300 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.400
 From Version 6.0.32 -> To Version 6.0.32

* Update dependencies from https://github.com/dotnet/emsdk build 20240702.1

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.300 , Microsoft.NET.Workload.Emscripten.Manifest-6.0.400
 From Version 6.0.32 -> To Version 6.0.32

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…104417)

Co-authored-by: Farhad Alizada <falizada@microsoft.com>
…-merge-6.0-2024-07-09-1042-98fecf81-edc8-4572-91c4-980c898d80b1
…6.0-2024-07-09-1042-98fecf81-edc8-4572-91c4-980c898d80b1

Merging internal commits for release/6.0
@ghost
Copy link
Copy Markdown

ghost commented Jul 12, 2024

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

1 similar comment
@ghost
Copy link
Copy Markdown

ghost commented Jul 12, 2024

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@github-actions github-actions Bot locked and limited conversation to collaborators Aug 12, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.