An Azure virtual machine running an older Linux kernel fails to restart or be provisioned

Applies to: ✔️ Linux VMs

Original KB number:   4041171

Note

CentOS referenced in this article is a Linux distribution and will reach End Of Life (EOL). Consider your use and plan accordingly. For more information, see CentOS End Of Life guidance.

This article provides a solution to an issue in which Azure virtual machine that is running an older Linux kernel version fails to restart or be provisioned.

Symptoms

Consider the following scenario:

  • You have a Microsoft Azure Linux virtual machine that is running one of the following Linux distributions.

    Linux distribution (distro) Distro version Kernel version
    Ubuntu 12.04 Any version
    Ubuntu 14.04 < 4.4.0-75
    Ubuntu 16.04 < 4.4.0-75
    SLES 11 Any versions
    SLES 12 < 4.4.59.92.12
    Red Hat Enterprise
    Linux, CentOS,
    Oracle Linux
    < 7.3 < 3.10.0-514
    Red Hat Enterprise
    Linux, CentOS
    < 6.9 < 2.6.32-671
    Debian < 7 Any version
    Debian 8 < 4.9
    CoreOS Any < 4.9
  • The virtual machine restarts, or a new virtual machine provisioning request is made.

In this scenario, the virtual machine becomes unresponsive or provisioning times out. When this problem occurs, an entry that resembles the following is logged in the Linux serial log:

[5.464091] hv_vmbus: probe failed for device vmbus_3 (-110) 
 [6.027866] hv_storvsc: probe of vmbus_3 failed with error -110

Note

This entry may contain additional information.

Cause

This problem occurs because the Linux virtual machine  does not communicate with the Azure host. This communication failure occurs because of incompatible hyper-call timing parameters in the Hyper-V drivers that exist in older Linux kernels.

Resolution

To resolve this problem, try manually restarting the virtual machine  after some time.  If the problem persists, redeploy the virtual machine to a new Azure node, start the virtual machine, and then update the Linux kernel by using the following instructions. You must also perform these steps on the custom image you are using to deploy the VM.

Linux distro Distro version Kernel version that has the fix Update instructions
Ubuntu 12.04 None available Upgrade to a later LTS
Ubuntu 14.x 4.4.0-75 + Run the following command:
sudo apt-get update && sudo apt-get install linux-virtual-lts-xenial linux-tools-virtual-lts-xenial linux-cloud-tools-virtual-lts-xenial

Ubuntu 16.x 4.4.0-75 + Run the following command:
sudo apt-get update && sudo apt-get install linux-image-virtual linux-tools-virtual linux-cloud-tools-virtual

SLES 11 Not applicable Upgrade to SLES 12
SLES 12 4.4.59.92.12 + Run the following command:
sudo zypper update kernel-default

Red Hat Enterprise Linux, CentOS, Oracle
Linux
6.x 2.6.32-671+ Run the following command:
yum -y update kernel

Red Hat Enterprise Linux, CentOS, Oracle
Linux
7.x 3.10.0-514.16+ Run the following command:
yum -y update kernel

Debian 7 None available Upgrade to Debian 9
Debian 8 4.9 + Enable Debian backports, and then run the following command:
sudo apt-get update && sudo apt-get install linux-image-amd64 hyperv-daemons

CoreOS Any 4.9 + Follow the instructions in Reboot strategies on updates.

More information

For more information about Endorsed Linux distributions and open-source technologies in Azure, see Support for Linux and open source technology in Azure.

Third-party information disclaimer

The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.

Contact us for help

If you have questions or need help, create a support request, or ask Azure community support. You can also submit product feedback to Azure feedback community.