This topic describes known issues of Alibaba Cloud images for different operating systems, the scope of these issues, and their corresponding solutions.

CentOS 8.0: Naming of the public image

  • Problem description: After you establish a remote connection to an instance created from the centos_8_0_x64_20G_alibase_20200218.vhd public image, you check the system version of the instance, and find that the system version is CentOS 8.1.
    root@ecshost:~$ lsb_release -a
    LSB Version:    :core-4.1-amd64:core-4.1-noarch
    Distributor ID:    CentOS
    Description:    CentOS Linux release 8.1.1911 (Core)
    Release:    8.1.1911
    Codename:    Core
  • Cause: The centos_8_0_x64_20G_alibase_20200218.vhd public image is in the public image list and was updated with the latest community update package. The image was upgraded and the actual system version is CentOS 8.1.centos_8_0_x64_20G_alibase_20200218.vhd
  • Involved image: centos_8_0_x64_20G_alibase_20200218.vhd.
  • Solution: You can call APIs such as RunInstances and set ImageId=centos_8_0_x64_20G_alibase_20191225.vhd to create an instance whose system version is CentOS 8.0.

Debian 9.6: Classic network configuration

  • Problem description: Classic network-type instances created from Debian 9 public images cannot be pinged.
  • Cause: Classic network-type instances created from Debian 9 public images cannot be automatically assigned IP addresses through the Dynamic Host Configuration Protocol (DHCP) because the systemd-networkd service is disabled by default in Debian 9.
  • Involved image: debian_9_06_64_20G_alibase_20181212.vhd.
  • Solution: Run the following commands:
    systemctl enable systemd-networkd 
    systemctl start systemd-networkd

CentOS 6.8: An instance installed with the NFS client fails to respond

  • Problem description: A CentOS 6.8 instance installed with the NFS client fails to respond and must be restarted.
  • Cause: When you use the NFS service on instances whose kernel versions are 2.6.32-696 to 2.6.32-696.10, the NFS client will attempt to end a TCP connection if a glitch occurs due to communication latency. Specifically, if the NFS server is delayed in sending a response to the NFS client, the connection initiated by the NFS client may be stalled in the FIN_WAIT2 state. Normally, the connection will expire and close a minute after the connection enters the FIN_WAIT2 state and the NFS client will initiate another connection. However, kernel versions 2.6.32-696 to 2.6.32-696.10 have issues with establishing TCP connections. As a result, the connection will remain in the FIN_WAIT2 state, the NFS client will be unable to recover the TCP connection, and a new TCP connection cannot be initiated. The requests will hang, and the only way to fix the issue is to restart the instance.
  • Involved images: centos_6_08_32_40G_alibase_20170710.vhd and centos_6_08_64_20G_alibase_20170824.vhd.
  • Solution: Run the yum update command to upgrade the kernel to 2.6.32-696.11 or later versions.
    Notice Before you perform any operations on the instance, you must create a snapshot to back up your data. For more information, see Create a snapshot.

CentOS 7: The hostname changes from uppercase to lowercase letters after the instance restarts

  • Problem description: When ECS instances are restarted for the first time, the hostnames of some instances that run CentOS 7 change from uppercase to lowercase letters. The following table describes some examples.
    Hostname Hostname after the instance is restarted for the first time Does the hostname remain in lowercase after the restart?
    iZm5e1qe*****sxx1ps5zX izm5e1qe*****sxx1ps5zx Yes
    ZZHost zzhost Yes
    NetworkNode networknode Yes
  • Involved images: The following CentOS public images and custom images derived of these public images are affected:
    • centos_7_2_64_40G_base_20170222.vhd
    • centos_7_3_64_40G_base_20170322.vhd
    • centos_7_03_64_40G_alibase_20170503.vhd
    • centos_7_03_64_40G_alibase_20170523.vhd
    • centos_7_03_64_40G_alibase_20170625.vhd
    • centos_7_03_64_40G_alibase_20170710.vhd
    • centos_7_02_64_20G_alibase_20170818.vhd
    • centos_7_03_64_20G_alibase_20170818.vhd
    • centos_7_04_64_20G_alibase_201701015.vhd
  • Involved hostnames: If the hostnames of your applications are case-sensitive, restarting such instances may affect the availability of corresponding services. The following table describes whether the hostname will change after an instance is restarted.
    Current state of hostname Will the hostname change after an instance restart? When will the change occur? Continue reading this section?
    The hostname contains uppercase letters when the instance was created (either through the ECS console or by calling ECS API operations). Yes When the instance is restarted for the first time Yes
    The hostname contains no uppercase letters when the instance was created (either through the ECS console or by calling ECS API operations). No N/A No
    You log on to the instance and modify its hostname to contain uppercase letters. No N/A Yes
  • Solution: To retain uppercase letters in a hostname after you restart an instance, follow these steps:
    1. Establish a remote connection to the instance. For more information, see Methods to connect to a Linux instance.
    2. View the existing hostname.
      [root@izbp193*****3i161uynzzx ~]# hostname
      izbp193*****3i161uynzzx
    3. Run the following command to staticize the hostname:
      hostnamectl set-hostname --static iZbp193*****3i161uynzzX
    4. Run the following commands to view the updated hostname:
      [root@izbp193*****3i161uynzzx ~]# hostname
      iZbp193*****3i161uynzzX
  • Additional actions: If you are using a custom image, we recommend that you update cloud-init to the latest version and create a custom image again to prevent the previous issue from occurring to the custom image. For more information, see Install cloud-init and Create a custom image by using an instance.

Linux: Pip requests time out

  • Problem description: Pip requests occasionally time out or fail.
  • Involved images: CentOS, Debian, Ubuntu, SUSE, openSUSE, and Aliyun Linux.
  • Cause: Alibaba Cloud provides three pip source addresses. The default address is mirrors.aliyun.com. To access this address, instances must be able to access the Internet. If your instance does not have a public IP address assigned to it, pip requests will time out.
    • The Internet source address (Default) : mirrors.aliyun.com
    • The internal source address of VPCs: mirrors.cloud.aliyuncs.com
    • The internal source address of the classic network: mirrors.aliyuncs.com
  • Solution: You can solve the problem by using one of the following methods:
    • Method 1

      Assign a public IP address to your instance by associating an Elastic IP Address (EIP) to your instance. For more information, see Overview.

      A subscription instance can also be reassigned a public IP address by changing its specifications. For more information, see Upgrade configurations of Subscription instances.

    • Method 2
      If a pip request fails, you can run the fix_pypi.sh script in your ECS instance and retry the pip operation. The procedure is as follows:
      1. Establish a remote connection to the instance. For more information, see Connect to a Linux instance from the console.
      2. Run the following command to obtain the script file:
        wget http://image-offline.oss-cn-hangzhou.aliyuncs.com/fix/fix_pypi.sh
      3. Run one of the following scripts based on the network type of the instance:
        • For instances in VPCs, run the bash fix_pypi.sh "mirrors.cloud.aliyuncs.com" script.
        • For instances in the classic network, run the bash fix_pypi.sh "mirrors.aliyuncs.com" script.
      4. Retry the pip operation.
      The content of the fix_pypi.sh script is as follows:
      #! /bin/bash
      
      function config_pip() {
          pypi_source=$1
      
          if [[ ! -f ~/.pydistutils.cfg ]]; then
      cat > ~/.pydistutils.cfg << EOF
      [easy_install]
      index-url=http://$pypi_source/pypi/simple/
      EOF
          else
              sed -i "s#index-url.*#index-url=http://$pypi_source/pypi/simple/#" ~/.pydistutils.cfg
          fi
      
          if [[ ! -f ~/.pip/pip.conf ]]; then
          mkdir -p ~/.pip
      cat > ~/.pip/pip.conf << EOF
      [global]
      index-url=http://$pypi_source/pypi/simple/
      [install]
      trusted-host=$pypi_source
      EOF
          else
              sed -i "s#index-url.*#index-url=http://$pypi_source/pypi/simple/#" ~/.pip/pip.conf
              sed -i "s#trusted-host.*#trusted-host=$pypi_source#" ~/.pip/pip.conf
          fi
      }
      
      config_pip $1