microsoft / dotnet-framework-docker

The repo for the official docker images for .NET Framework on Windows Server Core.
https://hub.docker.com/_/microsoft-dotnet-framework
MIT License
710 stars 335 forks source link

Known issue with container CPU and memory limits in February release #889

Closed mthalman closed 2 years ago

mthalman commented 2 years ago

Today's February release has a known issue that causes the newly announced CPU and memory limits feature to not work correctly. This affects those users that make use of Docker's --cpus or -m switches and are running a .NET Framework 4.8 container on a Windows Server 2019 or 2022 host machine with process isolation. It effectively behaves as though this container CPU and memory limits functionality is not enabled. This is an active issue that we're currently investigating. We'll make further updates to this issue when we have more information.

If you're blocked by this issue and need to fall back to last month's version of the image, you can do so by using the following tags:

mthalman commented 2 years ago

We've determined the root cause of this issue. The February updates from KB5009470 (Windows Server 2022) and KB5009468 (Windows Server 2019) contained a newer version of the .NET CLR that prevented the container limits patch (KB9008395) from being applied.

To mitigate this issue, we're going to be republishing these images with the February update removed. They will fall back to the January update. The February update does not contain any security fixes and the only fix it contains relevant to container scenarios is related to the GC:

Addresses rare crashes and hangs that can appear in cases where a GC occurs while another thread is in the middle of certain special paths used to invoke shared-generic code from non-shared-generic contexts. (Taken from the KB links above)

So that GC fix will effectively be removed by this mitigation until it can be integrated back again later this year (estimate May 2022).

The republishing of these images will happen tomorrow, Feb 10. An update will be made to this issue when that happens.

mthalman commented 2 years ago

The changes have been applied in https://github.com/microsoft/dotnet-framework-docker/pull/890 and the images are now published. This resolves the issue.