Bifrost unable to set BootSourceOverride flags via redfish on gigabyte platforms

Bug #2045191 reported by Jack Peirce
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ironic
In Progress
Medium
Afonne-CID

Bug Description

We were having issues getting bifrost to work correctly on our new gigabyte servers and had them look at the issue.

"Bifrost/Ironic uses Redfish' BootSourceOverrideTarget, BootSourceOverrideMode, and BootSourceOverrideEnabled properties in order to manipulate the next boot device. We were able to determine that other vendor's Redfish implementation allows these properties to be set independently, while our implementation requires these three properties to be set in the same request. From our analysis, Bifrost/Ironic's Redfish driver does not always send all three properties in the same request, thus failing node enrollment."

They have suggested we reach out to Bifrost/Ironic to "see if their software can allow for an implementation that permits all 3 properties to be sent in the same request."

Revision history for this message
Julia Kreger (juliaashleykreger) wrote :

Greetings,

Is there any chance we could get debug logging from this issue?

Specifically details covering the request being acted upon for the request, any stack traces, and the response from the BMC.

To answer the question, We might be able to, but we need to understand exactly what the BMC is doing in response to the existing request. Does the Gigabyte BMC just error? Does it fail to execute properly when the power is turned on?

We presently only independently change the boot mode from target and source overrides, as the mode is generally disjointed from the target/source. This is also necessary because some of the vendor's BMCs, depending on version, have entirely different behaviors and even feature sets which operate depending on boot mode. At least historically, this might have changed, but we sort of had the opposite issue in the past.

The question is if we can just send the mode when setting boot device? Or do we need to send all three options whenever changing any boot related option. i.e. We can't just change BootSourceOverrideMode on it's own.

Another thing we'll need likely know is the vendor field. If you can capture an entire /redfish/v1/Systems/<mynode> output, as well an `baremetal node show <node>` output. Specifically we'll be interested in what, if anything has been auto-recorded in the node's properties, 'vendor' field.

Thanks,

-Julia

Changed in ironic:
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
Jack Peirce (j-peirce) wrote :

First of all, apologies, I'm more of a go-between here than the user of the actual system.
I'm working to get some information from the system directly but that will probably be Monday.

For now I have some more information from Gigabyte.

>>>Does the Gigabyte BMC just error? Does it fail to execute properly when the power is turned on?

Our BMC rejects the PATCH request, indicating a missing (required) field BootSourceOverrideMode, which must also be sent.

See attached reference image of reject

>>>The question is if we can just send the mode when setting boot device? Or do we need to send all three options whenever changing any boot related option. i.e. We can't just change BootSourceOverrideMode on it's own.

All 3 properties must be set in the same request. Neither of the properties can be individually set on its own request.

>>>Specifically we'll be interested in what, if anything has been auto-recorded in the node's properties, 'vendor' field.

Most of our systems have the FRU vendor as "GIGABYTE". However, some of our newer SKUs (ending in 3) are now "Giga Computing".

Revision history for this message
Jack Peirce (j-peirce) wrote :
Revision history for this message
Jay Faulkner (jason-oldos) wrote :

Thanks for the help Jack. I suspect this is all we'll need, but I'll let Julia confirm. Thanks for the detailed bug report!

If you have any contacts at the Gigabyte server team -- even just if it's a sales contact -- I'd love to reach out to them to let them know we're trying to get their stuff working in Ironic. Let me know if so. You can email me off-bug at (jay (at) gr-oss (dot) io) if so, thank you!

Revision history for this message
Fedor Tarasenko (ftarasenko) wrote :

Hi! Can confirm same bug in our deployment.
It can be fixed by patching _set_boot_device method setting boot mode explicitly.

Not sure if it applies to old Gigabyte servers (looks like not), but we have problem with modern one.
Writing this here as a reminder to check if I can search for their technical contact.

Revision history for this message
Fedor Tarasenko (ftarasenko) wrote :

From the Gigabyte's response - they will plan to modify the behavior of this function without requiring 3 properties values ​​to be set together. No roadmap/dates are currently available.

Revision history for this message
Jack Peirce (j-peirce) wrote :

I noticed there was a new firmware from Gigabyte for the platform we were using so I asked Gigabyte if the fix was included.

They were not aware of any change in plans to fix this on their side, and no fix was included.

Is there any plan to fix this in software?

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for Ironic because there has been no activity for 60 days.]

Changed in ironic:
status: Incomplete → Expired
Revision history for this message
Jay Faulkner (jason-oldos) wrote :

Reopening this. I think we didn't intend for it to get lost/expired.

Changed in ironic:
status: Expired → Triaged
Afonne-CID (cidelight)
Changed in ironic:
assignee: nobody → Afonne-CID (cidelight)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/ironic/+/931848

Changed in ironic:
status: Triaged → In Progress
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.