Deployment can fail due to lack of hexdump

Bug #1732470 reported by Julia Kreger
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ironic-python-agent
Fix Released
Medium
Julia Kreger

Bug Description

ironic-lib's attempt to execute hexdump in an IPA image, when hexdump is missing, will result in a failed deployment.

I observed this on an IPA image built with debian as the base OS, using diskimage-builder.

Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.743 274 DEBUG oslo_concurrency.processutils [-] u'hexdump -s 440 -n 4 -e "0x%08x" /dev/vda' failed. Not Retrying. execute /usr/share/ironic-python-agent/venv/local/lib/python2.7/site-packages/oslo_concurrency/processutils.py:452
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root [-] Command failed: prepare_image, error: [Errno 2] No such file or directory: OSError: [Errno 2] No such file or directory
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root Traceback (most recent call last):
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/share/ironic-python-agent/venv/local/lib/python2.7/site-packages/ironic_python_agent/extensions/base.py", line 160, in run
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root result = self.execute_method(**self.command_params)
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/share/ironic-python-agent/venv/local/lib/python2.7/site-packages/ironic_python_agent/extensions/standby.py", line 476, in prepare_image
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root self.partition_uuids)
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/share/ironic-python-agent/venv/local/lib/python2.7/site-packages/ironic_python_agent/extensions/standby.py", line 157, in _message_format
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root root_uuid = disk_utils.get_disk_identifier(device)
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/share/ironic-python-agent/venv/local/lib/python2.7/site-packages/ironic_lib/disk_utils.py", line 151, in get_disk_identifier
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root delay_on_retry=True)
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/share/ironic-python-agent/venv/local/lib/python2.7/site-packages/ironic_lib/utils.py", line 98, in execute
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root result = processutils.execute(*cmd, **kwargs)
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/share/ironic-python-agent/venv/local/lib/python2.7/site-packages/oslo_concurrency/processutils.py", line 386, in execute
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root env=env_variables)
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root errread, errwrite)
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root raise child_exception
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root OSError: [Errno 2] No such file or directory
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.751 274 ERROR root
Nov 15 13:49:14 debian ironic-python-agent[274]: 2017-11-15 13:49:14.896 274 INFO ironic_python_agent.agent [-] heartbeat successful

Changed in ironic-python-agent:
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic-python-agent (master)

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

Changed in ironic-python-agent:
assignee: nobody → Julia Kreger (juliaashleykreger)
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic-python-agent (master)

Reviewed: https://review.openstack.org/520223
Committed: https://git.openstack.org/cgit/openstack/ironic-python-agent/commit/?id=71fda732d26b519cad11b1629a92f5c916a3df80
Submitter: Zuul
Branch: master

commit 71fda732d26b519cad11b1629a92f5c916a3df80
Author: Julia Kreger <email address hidden>
Date: Wed Nov 15 17:13:58 2017 -0500

    Catch OSError thrown when hexdump is missing

    Change c5bf7b088f1ec776b788a81f2775e1b2577720e8 introduced
    a new requirement via a pre-existing ironic-lib method being
    called that utilizes hexdump. Hexdump is not always present
    and since we did not explicitly call it out as a new
    requirement, we should at least somewhat gracefully handle
    the exception.

    Change-Id: Id0223ef1417f6e419770ceb56b2a3b80c6118a85
    Closes-Bug: #1732470

Changed in ironic-python-agent:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ironic-python-agent 3.1.0

This issue was fixed in the openstack/ironic-python-agent 3.1.0 release.

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.