Ubuntu 20.04 running on WSL 1 exists critical bug

A post on the Ubuntu forum pointed out that the Windows Linux subsystem (WSL) 1 will have problems when running Ubuntu 20.04 LTS.

The problem comes from the patch in glibc 2.31, which implements the nanosleep() library call based on CLOCK_REALTIME in a manner similar to UNIX. Simulating the UNIX system clock on the NT kernel is tricky. WSL 1 implements the most popular clock-based system calls, but not all of them are implemented, and CLOCK_REALTIME support is not built into nanosleep.

Windows Subsystem for Linux 2

It will take some time for WSL 1 to fully implement this support, and unless you are a Windows Insider user, you may not see this problem. Without this fix, Ubuntu 20.04 on WSL 1 will often crash, and there will be problems even during the upgrade to Ubuntu 20.04.

What can users do? For WSL 1 users, it is recommended to stay in Ubuntu 18.04 LTS temporarily and not upgrade to Ubuntu 20.04.

For WSL 2 users, Ubuntu 20.04 can be freely upgraded when it is released. For WSL 1 users upgrading to WSL 2, when Ubuntu 20.04 is available, you should first use the following command to convert the Ubuntu 18.04 image to WSL 2:

$ wsl.exe –set-version Ubuntu 2

Then upgrade it to 20.04. And if you want to upgrade Ubuntu 20.04 from WSL 1 anyway, then before upgrading, prevent libc6 update:

$ sudo apt-mark hold libc6