A few days ago a Windows update rolled out that broke pipelines all over the place and the suggested workaround is to use hyper-v isolation instead of process isolation so that the container is not affected by whatever happened on the host.
In addition to Freddy’s blog about what happened and how to fix it, there are a few things you need to know about hyper-v isolation on Windows Server and that switching to hyper-v isolation could introduce new errors.
If you want to use hyper-v isolation on a Windows Server VM, the Hyper-V feature needs to be installed and this can be done by calling the
Install-WindowsFeature HyperV PowerShell command.
However, if your VM doesn’t support nested virtualization, the installation seems to succeed, but in fact, creating a container with hyper-v isolation will still fail with an error saying that the feature is not installed.
Not every VM size on Azure supports nested virtualization, you can check if the VM size you are using supports it here: https://docs.microsoft.com/nl-nl/azure/virtual-machines/windows/acu
(The entries with three stars (***) support it)
In my case, this forced me to switch to a more expensive, less powerful VM size just to use hyper-v isolation.
Switching to hyper-v was only the beginning…
After I had switched to hyper-v isolation I ran into completely different issues like:
– Text files could not be imported
– Objects could not be compiled
Everything had to do with the wrong locale being used, even though I had specified the right locale when creating the container.
I even tried to set the right locale again, after creating the container but without luck.
In the end, I decided to simply uninstall the update from the control panel and disable automatic updates on the server for now.
You can disable automatic updates through sconfig.exe (only works for Windows Server) -> option 5 -> manual.