Emulex CNAs would not iPXE boot in UEFI mode.

Bug #1625443 reported by Om Kumar
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ironic
Opinion
Medium
Unassigned

Bug Description

While using a HPE ProLiant 490c G9 in UEFI mode, during provisioning phase, the server got stuck in iPXE script after downloading kernel and ramdisk.

:deploy
imgfree
kernel {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_aki_path }} selinux=0 disk={{ pxe_options.disk }} iscsi_target_iqn={{ pxe_options.iscsi_target_iqn }} deployment_id={{ pxe_options.deployment_id }} deployment_key={{ pxe_options.deployment_key }} ironic_api_url={{ pxe_options.ironic_api_url }} troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} boot_option={{ pxe_options.boot_option }} ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} {% if pxe_options.root_device %}root_device={{ pxe_options.root_device }}{% endif %} ipa-api-url={{ pxe_options['ipa-api-url'] }} ipa-driver-name={{ pxe_options['ipa-driver-name'] }} boot_mode={{ pxe_options['boot_mode'] }} initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy

initrd {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_ari_path }} || goto deploy
boot

When a sleep of 10s is added before boot, as follows, it works.

:deploy
imgfree
kernel {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_aki_path }} selinux=0 disk={{ pxe_options.disk }} iscsi_target_iqn={{ pxe_options.iscsi_target_iqn }} deployment_id={{ pxe_options.deployment_id }} deployment_key={{ pxe_options.deployment_key }} ironic_api_url={{ pxe_options.ironic_api_url }} troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} boot_option={{ pxe_options.boot_option }} ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} {% if pxe_options.root_device %}root_device={{ pxe_options.root_device }}{% endif %} ipa-api-url={{ pxe_options['ipa-api-url'] }} ipa-driver-name={{ pxe_options['ipa-driver-name'] }} boot_mode={{ pxe_options['boot_mode'] }} initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy

initrd {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_ari_path }} || goto deploy
sleep 10
boot

iPXE used from http://boot.ipxe.org/ipxe.efi

Tags: pxe uefi
Revision history for this message
Om Kumar (om-kumar) wrote :
Changed in ironic:
assignee: nobody → Om Kumar (om-kumar)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

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

Changed in ironic:
status: New → In Progress
Revision history for this message
Julia Kreger (juliaashleykreger) wrote :

Out of curiosity, Did the CNA download the iPXE binary and use that? or did it use an onboard iPXE image?

Dmitry Tantsur (divius)
Changed in ironic:
importance: Undecided → Medium
tags: added: pxe
Revision history for this message
Miles Gould (mgould) wrote :

Can you please post the generated inspector.ipxe?

Revision history for this message
Miles Gould (mgould) wrote :

Sorry, I'm mixing up inspection and deployment. Please ignore my request above.

Revision history for this message
Miles Gould (mgould) wrote :

OTOH, did you try introspection with this setup? And if so, did it work, or did you encounter the same issue?

Changed in ironic:
assignee: Om Kumar (om-kumar) → Bharath kumar (bharath-kumar3)
Revision history for this message
Om Kumar (om-kumar) wrote :

@juliaashleykreger - CNA did download ipxe and used it instead of onboard iPXE. We confirmed this by looking at server console logs.

@mgould - We tried this with a simple setup of iPXE with a isc-dhcp-server and apache web-server. We also tried using different IPA kernel and ramdisk based on Fedora, ubuntu and Debian and kernel/ramdisk from running RHEL OS. But they all resulted in the same error. However, using sleep helped resolve it in all case.

To me, it looks like the issue is due to buggy Emulex Firmware. We tried the same iPXE server with Intel Network Adapters in UEFI mode and they worked without issues.

Revision history for this message
Dmitry Tantsur (divius) wrote :

Hi! I highly recommend you raise this to the iPXE developers. It would be much better if they provided a work around in their code, this way the whole world would benefit from it.

tags: added: uefi
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on ironic (master)

Change abandoned by Dmitry Tantsur (<email address hidden>) on branch: master
Review: https://review.openstack.org/373194
Reason: Hi! This patch has been without updates for 10 months, so I have to abandon it.

Revision history for this message
Dmitry Tantsur (divius) wrote :

Hi! All patches are abandoned, so I unassign this bug.

Changed in ironic:
status: In Progress → Confirmed
assignee: Bharath kumar (bharath-kumar3) → nobody
Revision history for this message
Vladyslav Drok (vdrok) wrote :

So is there anything that can be done on ironic side? adding sleep is obviously not an option upstream :)

Revision history for this message
Dmitry Tantsur (divius) wrote :

Yeah, I'll mark it as Opinion until somebody comes up with an upstreamable way to fix it.

Changed in ironic:
status: Confirmed → Opinion
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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