← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1829506] Re: Error mounting device on create instance (LXC)

 

Reviewed:  https://review.opendev.org/659780
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=d2ef1ce309c28a5416af4cc00662ad6925574004
Submitter: Zuul
Branch:    master

commit d2ef1ce309c28a5416af4cc00662ad6925574004
Author: Miguel Herranz <miguel@xxxxxxxxxxxx>
Date:   Fri May 17 12:53:10 2019 +0200

    Fix type error on call to mount device
    
    The call in nova.virt.disk.mount.api.Mount.mnt_dev() to
    nova.privsep.fs.mount() should include the `options` argument to
    fulfill with the method signature.
    
    The test test_do_mount_need_to_specify_fs_type has been modified to
    check that the caller use the correct signature.
    
    Closes-Bug: 1829506
    
    Change-Id: Id14993db6ea33b2da14caa4b58671fc57c182706
    Signed-off-by: Miguel Herranz <miguel@xxxxxxxxxxxx>


** Changed in: nova
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1829506

Title:
  Error mounting device on create instance (LXC)

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Description
  ===========

  After installing Openstack in Ubuntu 18.04 and using LXC as
  virtualization engine, the creation of an instance fails with a log in
  `nova-compute.log` reporting that:

   ```Instance failed to spawn: TypeError: mount() takes exactly 4
  arguments (3 given)```

  Extra analysis of the logs an code points towards this file of
  `python-nova` package:

   /usr/lib/python2.7/dist-packages/nova/virt/disk/mount/api.py

  The problem seems that the call at line 251

  ```
     246	    def mnt_dev(self):
     247	        """Mount the device into the file system."""
     248	        LOG.debug("Mount %(dev)s on %(dir)s",
     249	                  {'dev': self.mapped_device, 'dir': self.mount_dir})
     250	        out, err = nova.privsep.fs.mount(None, self.mapped_device,
     251	                                         self.mount_dir)
     252	        if err:
     253	            self.error = _('Failed to mount filesystem: %s') % err
     254	            LOG.debug(self.error)
     255	            return False
     256	
     257	        self.mounted = True
     258	        return True
  ```

  is not matching the function signature defined in /usr/lib/python2.7
  /dist-packages/nova/privsep/fs.py as:

  ```
      30	def mount(fstype, device, mountpoint, options):
      31	    mount_cmd = ['mount']
      32	    if fstype:
      33	        mount_cmd.extend(['-t', fstype])
      34	    if options is not None:
      35	        mount_cmd.extend(options)
      36	    mount_cmd.extend([device, mountpoint])
      37	    return processutils.execute(*mount_cmd)
  ```

  So, it should be safe just to add `None` as `options` parameter.

  Steps to reproduce
  ==================

  Environment info:

    OS: Ubuntu 18.04.2 LTS
    Kernel: Linux 4.15.0-46-generic #49-Ubuntu SMP x86_64
    Openstack: queens

    Related packages versions:

    nova-api:          Installed: 2:17.0.9-0ubuntu1
    python-nova:       Installed: 2:17.0.9-0ubuntu1
    nova-compute:      Installed: 2:17.0.9-0ubuntu1
    nova-compute-lxc:  Installed: 2:17.0.9-0ubuntu1

  Command executed to create the instance:

  ```
  # openstack server create --flavor lxc.small --image lxc_ubuntu_18.04 --nic net-id=${NEUTRON_NETWORK_NAT_ID} --security-group default --key-name vagrant test_lxc_instance
  +-------------------------------------+---------------------------------------------------------+
  | Field                               | Value                                                   |
  +-------------------------------------+---------------------------------------------------------+
  | OS-DCF:diskConfig                   | MANUAL                                                  |
  | OS-EXT-AZ:availability_zone         |                                                         |
  | OS-EXT-SRV-ATTR:host                | None                                                    |
  | OS-EXT-SRV-ATTR:hypervisor_hostname | None                                                    |
  | OS-EXT-SRV-ATTR:instance_name       |                                                         |
  | OS-EXT-STS:power_state              | NOSTATE                                                 |
  | OS-EXT-STS:task_state               | scheduling                                              |
  | OS-EXT-STS:vm_state                 | building                                                |
  | OS-SRV-USG:launched_at              | None                                                    |
  | OS-SRV-USG:terminated_at            | None                                                    |
  | accessIPv4                          |                                                         |
  | accessIPv6                          |                                                         |
  | addresses                           |                                                         |
  | adminPass                           | GhYewcoXch3w                                            |
  | config_drive                        |                                                         |
  | created                             | 2019-05-17T10:00:57Z                                    |
  | flavor                              | lxc.small (0)                                           |
  | hostId                              |                                                         |
  | id                                  | fe69997d-10c2-4850-bdba-2468da7148d6                    |
  | image                               | lxc_ubuntu_18.04 (de3ca120-42f6-47a2-be1b-65c7276f1566) |
  | key_name                            | vagrant                                                 |
  | name                                | test_lxc_instance                                       |
  | progress                            | 0                                                       |
  | project_id                          | 4c2cf8fa37c8451d87ddd2cf28cfd6bc                        |
  | properties                          |                                                         |
  | security_groups                     | name='35a8788c-364b-4da3-9c26-4aebf0ac04c4'             |
  | status                              | BUILD                                                   |
  | updated                             | 2019-05-17T10:00:57Z                                    |
  | user_id                             | 0d48615bb8c747f4b5ec5bfc693b6832                        |
  | volumes_attached                    |                                                         |
  +-------------------------------------+---------------------------------------------------------+
  ```

  Expected result
  ===============
  ```
  # openstack server list
  +--------------------------------------+-------------------+--------+-----------------+------------------+-----------+
  | ID                                   | Name              | Status | Networks        | Image            | Flavor    |
  +--------------------------------------+-------------------+--------+-----------------+------------------+-----------+
  | dac7b2b8-841b-4a16-a54f-2d5177f05934 | test_lxc_instance | ACTIVE | nat=10.123.1.11 | lxc_ubuntu_18.04 | lxc.small |
  +--------------------------------------+-------------------+--------+-----------------+------------------+-----------+
  ```

  Actual result
  =============
  ```
  # openstack server list
  +--------------------------------------+-------------------+--------+----------+------------------+-----------+
  | ID                                   | Name              | Status | Networks | Image            | Flavor    |
  +--------------------------------------+-------------------+--------+----------+------------------+-----------+
  | fe69997d-10c2-4850-bdba-2468da7148d6 | test_lxc_instance | ERROR  |          | lxc_ubuntu_18.04 | lxc.small |
  +--------------------------------------+-------------------+--------+----------+------------------+-----------+
  ```

  Logs
  ====

  Included some logs generated during the command, and retrieved using:

   
  ```
  grep -r "2019-05-17 10:0[01]" /var/log >> openstack_queens_lxc_instance_creation_mount_error.logs
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1829506/+subscriptions


References