Bug 1945700

Summary: Syncing boot mode after changing device should be restricted to Supermicro
Product: OpenShift Container Platform Reporter: Bob Fournier <bfournie>
Component: Bare Metal Hardware ProvisioningAssignee: Bob Fournier <bfournie>
Bare Metal Hardware Provisioning sub component: ironic QA Contact: Lubov <lshilin>
Status: CLOSED ERRATA Docs Contact:
Severity: high    
Priority: high CC: rbartal
Version: 4.8Keywords: Triaged
Target Milestone: ---   
Target Release: 4.8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: An earlier fix for https://bugzilla.redhat.com/show_bug.cgi?id=1892302 introduced a regression for Dell servers. When changing boot mode from UeFI to BIOS an error resulted. Consequence: Could not change boot mode on Dell servers. Fix: Restrict the change that was made to boot mode in the earlier fix only for Supermicro servers. Result: Both Supermicro and Dell servers work properly for boot mode.
Story Points: ---
Clone Of:
: 1945701 (view as bug list) Environment:
Last Closed: 2021-07-27 22:57:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bob Fournier 2021-04-01 16:52:48 UTC
We have a report upstream of problems with Dell systems when changing boot mode because of the fix for https://bugzilla.redhat.com/show_bug.cgi?id=1892302. This fix (https://review.opendev.org/c/openstack/ironic/+/758856) syncs the boot mode after setting the boot device. On Dell systems this can cause problems when changing the boot mode because the change is cached.

From the upstream report:
=========================

Node deployment failed for cross boot mode scenario using redfish driver
This issue is only observed for cross-boot mode scenarios i.e. uefi-bios or bios-uefi.

Configurational Details
• iDRAC Model : PowerEdge XE2420
• BIOS version : 1.3.3
• Boot Mode :- UEFI in script and BIOS in idrac

Steps to reproduce:
a. Create node on devstack using create_node.sh (make appropriate changes in CLI for node creation).
./create_node.sh
Provision state should be in Available mode, after node get created.
b. Once Node is available then Deploy the node
Command to Execute :- openstack baremetal node deploy
c: Keep track on log - sudo journalctl -f -u devstack
d. Expected Result :- Once node is deployed, provision state should be in Active Mode

Observations:-
In case of cross boot mode using redfish drivers , while deploying the node it get failed . BIOS is getting displayed in pending jobs in job queue and Console power state remains off .

Note- This is a regression issue. It occurs beacause of an upstream change to ironic : "https://review.opendev.org/c/openstack/ironic/+/758856"
It was working fine with iDRAC f/w 4.22.00.00.

LOG:
Redfish exception occurred. Error: Setting boot mode to uefi failed for node Error: HTTP PATCH https://192.168.110.22/redfish/v1/Systems/System.Embedded.1 returned code 400. Base.1.5.GeneralError: Pending configuration values are already committed, unable to perform another set operation. Extended information: [{'Message': 'Pending configuration values are already committed, unable to perform another set operation.', 'MessageArgs': ['BootSourceOverrideMode'], 'MessageArgs': 1, 'MessageId': 'IDRAC.2.1.SYS011', 'RelatedProperties': ['BootSourceOverrideMode'], 'RelatedProperties': 1, 'Resolution': 'Wait for the scheduled job to complete or delete the configuration jobs before attempting more set attribute operations.', 'Severity': 'Warning'}]:

Comment 1 Bob Fournier 2021-04-06 16:50:23 UTC
Need to pick up the Ironic patch in ironic-image.

Comment 2 Bob Fournier 2021-04-08 12:26:46 UTC
Will be picked up in this ironic-image patch - https://github.com/openshift/ironic-image/pull/159.

Comment 3 Lubov 2021-05-06 17:10:09 UTC
Verified on 4.8.0-0.nightly-2021-04-30-201824

Steps: Use a setup with all machines with boot mode set to UEFI
1. Set bootMode: legacy in install-config.yaml for one of the workers machines
2. Deploy the cluster: inspection error for the worker with bootMode: legacy
3. After deployment finished, re-deploy it setting bootMode: UEFI in config-install.yaml for the same worker: cluster deployed with no problems

Comment 6 errata-xmlrpc 2021-07-27 22:57:07 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.8.2 bug fix and security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:2438