Attempt to boot from volume - no image supplied

Bug #1416321 reported by Derek Higgins
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
High
Daniel Berrange
tripleo
Fix Released
Critical
Unassigned

Bug Description

About 12 UTC 29/1/2015 all tripleo overcloud jobs started failing with

2015-01-29 17:32:21.475 | + wait_for -w 50 --delay 5 -- neutron port-list -f csv -c id --quote none '|' grep id
2015-01-29 17:33:11.364 | Timing out after 50 seconds:
2015-01-29 17:33:11.364 | COMMAND=neutron port-list -f csv -c id --quote none | grep id
2015-01-29 17:33:11.364 | OUTPUT=
2015-01-29 17:33:11.364 | + cleanup

reproducing this localy shows a failure in getting the block device
| created | 2015-01-30T02:43:05Z
                                                                                            |
| fault | {"message": "Build of instance 4c958085-7a95-4825-af04-cf574c3614c7 aborted: Failure prepping block device.", "code": 500, "details": " File \"/opt/stack/venvs/nova/lib/
python2.7/site-packages/nova/compute/manager.py\", line 2077, in _do_build_and_run_instance |
| | filter_properties) |
| | File \"/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/compute/manager.py\", line 2192, in _build_and_run_instance |
| | 'create.error', fault=e) |

Tags: ci
Revision history for this message
Derek Higgins (derekh) wrote :

A revert of this nova commit seems to fix the problem
https://review.openstack.org/#/c/143054/

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/151616

Changed in nova:
assignee: nobody → Derek Higgins (derekh)
status: New → In Progress
Revision history for this message
Daniel Berrange (berrange) wrote :

That tiny snippet of log messages isn't really very helpful in seeing what's wrong. Can you provide the full nova compute log file at least

Revision history for this message
Derek Higgins (derekh) wrote :
Revision history for this message
Matt Riedemann (mriedem) wrote :
Download full text (3.2 KiB)

http://logs.openstack.org/06/150206/6/check-tripleo/check-tripleo-ironic-overcloud-f20-nonha/3b1268c/logs/ov-i6a3r2vbqm-1-qrud6cls6p6r-NovaCompute_logs/nova-compute.txt.gz#_Jan_30_09_29_00

Jan 30 09:29:00 ov-i6a3r2vbqm-1-qrud6cls6p6r-novacompute-mpl6wabwvv2p nova-compute[4285]: 2015-01-30 09:29:00,119 ERROR Failure prepping block device
                                                                                          Traceback (most recent call last):
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/compute/manager.py", line 2274, in _build_resources
                                                                                              block_device_mapping)
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/compute/manager.py", line 1811, in _default_block_device_names
                                                                                              root_bdm)
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/compute/manager.py", line 1770, in _default_root_device_name
                                                                                              root_bdm)
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 6186, in default_root_device_name
                                                                                              cdrom_bus)
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 432, in get_root_info
                                                                                              root_bdm, disk_bus)
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 375, in get_info_from_bdm
                                                                                              device_name = find_disk_dev_for_disk_bus(padded_mapping, bdm_bus)
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 189, in find_disk_dev_for_disk_bus
                                                                                              if not has_disk_dev(mapping, disk_dev):
                                                                                            File "/opt/stack/venvs/nova/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 105, in has_disk_dev
                                                                                              info = mapping[disk]
                                                                                   ...

Read more...

Revision history for this message
Matt Riedemann (mriedem) wrote :

So it looks like something is passing the mapping as a list rather than a dict, but tracing the code calls back in that stack trace I'm not sure where that is happening.

Revision history for this message
Daniel Berrange (berrange) wrote :

Base on the logs at http://logs.openstack.org/94/151594/1/check-tripleo/check-tripleo-ironic-overcloud-precise-nonha/2c71080/logs/ this looks like the relevant error message:

Jan 30 11:29:46 overcloud-novacompute1-54zbppby55dk nova-compute: 2015-01-30 11:29:46,190 ERROR Failure prepping block device#012Traceback (most recent call last):#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py", line 2274, in _build_resources#012 block_device_mapping)#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py", line 1811, in _default_block_device_names#012 root_bdm)#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/compute/manager.py", line 1770, in _default_root_device_name#012 root_bdm)#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 6186, in default_root_device_name#012 cdrom_bus)#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 432, in get_root_info#012 root_bdm, disk_bus)#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 375, in get_info_from_bdm#012 device_name = find_disk_dev_for_disk_bus(padded_mapping, bdm_bus)#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 189, in find_disk_dev_for_disk_bus#012 if not has_disk_dev(mapping, disk_dev):#012 File "/opt/stack/venvs/nova/local/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 105, in has_disk_dev#012 info = mapping[disk]#012TypeError: string indices must be integers, not str

Need to figure out what's causing that type error exception - should be fairly painless to solve i imagine

Matt Riedemann (mriedem)
Changed in nova:
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/151658

Changed in nova:
assignee: Derek Higgins (derekh) → Daniel Berrange (berrange)
Revision history for this message
Daniel Berrange (berrange) wrote :

It is also curious that Tempest didn't catch the broken boot from volume in Nova integration tests. Probably a sign of a test case that could be added

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova (master)

Change abandoned by Derek Higgins (<email address hidden>) on branch: master
Review: https://review.openstack.org/151616
Reason: Tested the patch from dan locally on tripleo and seems to be ok
    https://review.openstack.org/151658

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/151658
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=0ba91324362edb9d1339cb41c145d1aa90f9fd5f
Submitter: Jenkins
Branch: master

commit 0ba91324362edb9d1339cb41c145d1aa90f9fd5f
Author: Daniel P. Berrange <email address hidden>
Date: Fri Jan 30 14:55:50 2015 +0000

    libvirt: fix missing block device mapping parameter

    This change caused a regression:

      commit 024ac74ffbc47239426fa95580851825d67dbe61
      Author: Daniel P. Berrange <email address hidden>
      Date: Tue Dec 16 14:24:23 2014 +0000

        libvirt: always pass image meta when getting disk info from bdm

    A merge rebase mistake there caused the block device mapping
    parameter to get dropped when when get_root_info calls
    get_info_from_bdm. For added fun the test case had the same
    mistake so everything looked fine. The result was that boot from
    volume was broken

    Closes-bug: #1416321
    Change-Id: Ieaf2d6c456f8bcc4bc7a0ffe7dc912c7cc8b3dc6

Changed in nova:
status: In Progress → Fix Committed
Derek Higgins (derekh)
Changed in tripleo:
status: Triaged → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: none → kilo-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: kilo-2 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.