Skip to content

Lenovo HS350X V3: PXE retries instead of advancing to next boot device when scout exits cleanly #587

@williampnvidia

Description

@williampnvidia

Description

When a machine PXE boots, our PXE server checks the state of the instance. If the instance is in the Assigned/Ready state, it assumes the customer has already deployed an OS to the boot disk and instructs the client to exit back to UEFI so the next boot device takes over. If the instance is in a state that requires action (e.g. provisioning or deprovisioning), the PXE server serves the appropriate image (e.g. scout).

On the Lenovo HS350X V3, when our PXE server instructs the client to exit, UEFI treats it as a PXE failure and retries PXE instead of advancing to the next boot device. This behavior is different from the Lenovo SR650 V3, which correctly moves to the next boot device in this scenario.

Expected Behavior

Same as Lenovo SR650 V3: when our PXE server exits cleanly back to UEFI, the server advances to the next configured boot device.

Actual Behavior

Lenovo HS350X V3 retries PXE indefinitely instead of falling through to the next boot device.

Workaround

Setting the BIOS variable "PXE Retry Count" to 3 causes the server to retry PXE 3 times and then fall through to the next boot device. This works but is not ideal because:

  • It adds unnecessary retries for the normal Assigned/Ready case
  • It conflates two distinct scenarios: a true PXE failure (cannot reach PXE server, fails to download NBP) where retrying is appropriate, versus a clean exit from our PXE server where no retry should occur

Desired Fix

The HS350X V3 should behave the same as the SR650 V3: when our PXE server instructs the client to exit, UEFI advances to the next boot device without retrying PXE.

Server Info

  • Affected: Lenovo HS350X V3
  • Not affected: Lenovo SR650 V3 (works correctly today)

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Needs Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions