← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1272829] Re: intance boots failed because of injecting a file to a not exist path in image

 

** Changed in: nova
       Status: Fix Committed => Fix Released

** Changed in: nova
    Milestone: None => icehouse-3

-- 
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/1272829

Title:
  intance boots failed because of injecting a file to a not exist path
  in image

Status in OpenStack Compute (Nova):
  Fix Released

Bug description:
  reproduce steps in my devstack env with latest master branch:
  1. change the nova.conf (#force_config_drive = always) and restart nova-compute
  2. download the cirros bootable qcow2 image cirros-0.3.0-x86_64-disk.img(wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img)
  3. upload the image to glance
  4. nova boot --flavor m1.nano --image cirros-0.3.0-x86_64-disk.img --file /etc/xxx/yyy=./start_nvs.sh test-inject

  the reason is that, we don't `mkdir -p /etc/xxx/yyy` before `tee` like
  the folsom version.

  The trace log:
  2014-01-26 11:59:18.948 ERROR nova.compute.manager [req-91698f94-67b6-483e-a6cf-1cade5f19fe6 admin admin] [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e] Error: Unexpected error while running command.
  Command: tee /tmp/openstack-vfs-localfsrGqEY7/etc/xxx/yyy
  Exit code: 1
  Stdout: '#! /bin/bash\nsudo pkill keystone\nsudo pkill glance\nsudo pkill nova-\n\nsudo keystone-all > ~/key.log 2>&1 &\nsudo glance-api > ~/gapi.log 2>&1 &\nsudo glance-registry > ~/greg.log 2>&1 &\n\nsudo nova-conductor >~/cond.log 2>&1 &\nsudo nova-api >~/api.log 2>&1 &\nsudo nova-scheduler >~/sch.log 2>&1 &\nsudo nova-compute >~/com.log 2>&1 &\nsudo nova-network >~/net.log 2>&1 &\n'
  Stderr: 'tee: /tmp/openstack-vfs-localfsrGqEY7/etc/xxx/yyy: No such file or directory\n'
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e] Traceback (most recent call last):
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/compute/manager.py", line 1054, in _build_instance
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     set_access_ip=set_access_ip)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/compute/manager.py", line 357, in decorated_function
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     return function(self, context, *args, **kwargs)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/compute/manager.py", line 1463, in _spawn
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     LOG.exception(_('Instance failed to spawn'), instance=instance)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 68, in __exit__
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     six.reraise(self.type_, self.value, self.tb)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/compute/manager.py", line 1460, in _spawn
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     block_device_info)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2182, in spawn
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     admin_pass=admin_password)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2592, in _create_image
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     injection_path = image('disk').path
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 68, in __exit__
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     six.reraise(self.type_, self.value, self.tb)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2592, in _create_image
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     injection_path = image('disk').path
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/disk/api.py", line 351, in inject_data
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     admin_password, files, mandatory)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/disk/api.py", line 431, in inject_data_into_fs
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     inject_func(inject_val, fs)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/disk/api.py", line 443, in _inject_files_into_fs
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     _inject_file_into_fs(fs, path, contents)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/disk/api.py", line 452, in _inject_file_into_fs
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     fs.replace_file(path, contents)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/virt/disk/vfs/localfs.py", line 123, in replace_file
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     utils.execute('tee', *args, **kwargs)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/utils.py", line 166, in execute
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     return processutils.execute(*cmd, **kwargs)
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]   File "/opt/stack/nova/nova/openstack/common/processutils.py", line 178, in execute
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]     cmd=' '.join(cmd))
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e] ProcessExecutionError: Unexpected error while running command.
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e] Command: tee /tmp/openstack-vfs-localfsrGqEY7/etc/xxx/yyy
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e] Exit code: 1
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e] Stdout: '#! /bin/bash\nsudo pkill keystone\nsudo pkill glance\nsudo pkill nova-\n\nsudo keystone-all > ~/key.log 2>&1 &\nsudo glance-api > ~/gapi.log 2>&1 &\nsudo glance-registry > ~/greg.log 2>&1 &\n\nsudo nova-conductor >~/cond.log 2>&1 &\nsudo nova-api >~/api.log 2>&1 &\nsudo nova-scheduler >~/sch.log 2>&1 &\nsudo nova-compute >~/com.log 2>&1 &\nsudo nova-network >~/net.log 2>&1 &\n'
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e] Stderr: 'tee: /tmp/openstack-vfs-localfsrGqEY7/etc/xxx/yyy: No such file or directory\n'
  2014-01-26 11:59:18.948 TRACE nova.compute.manager [instance: aa481bea-2822-4eca-89b1-d0d7734d9b9e]

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


References