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 <[email protected]>
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 <[email protected]>


** 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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to