Current Series Release Notes¶
15.0.0-24¶
Upgrade Notes¶
The cyborg-agent now requires Placement to be reachable at startup. Previously the agent would start and only fail during the
update_usageperiodic task. This aligns with nova-compute behavior where the compute service validates its resource provider at startup. Ensure Placement is available before starting cyborg-agent.The agent retries the resource provider lookup up to 3 times by default (configurable via
[agent] resource_provider_startup_retries), using exponential backoff. The default of 3 retries gives approximately 7 seconds of tolerance (1s + 2s + 4s) for nova-compute to create the resource provider.
Cyborg no longer uses eventlet. The eventlet dependency has been removed and Cyborg now uses the native threading backend for oslo.service and the threading RPC server. No configuration changes are required. Packagers should ensure that
oslo.service[threading]is installed as a dependency.
Bug Fixes¶
Fixed a crash in the PCI driver where discovery of devices with vendor IDs not present in the vendor map would raise an
AttributeError. The PCI driver now gracefully handles unknown vendors by skipping the vendor-specific trait and falling back to using the raw vendor ID as the driver name.
A new configuration option
[agent] resource_provider_namethat allows operators to explicitly specify the name of the compute resource provider in Placement has been added.This defaults to
socket.getfqdn()which typically matches libvirt’s hypervisor hostname behavior. If the resource provider lookup fails with this name, Cyborg will automatically fall back to usingCONF.host, providing backward compatibility for existing deployments.The cyborg-agent now validates the resource provider name at startup by querying Placement directly. It tries the configured name (defaulting to
socket.getfqdn()) first, then falls back toCONF.host. If neither hostname finds a valid resource provider, the agent will fail to start with a clear error message.A new
[agent] resource_provider_startup_retriesoption (default: 3) controls how many times the agent retries the Placement lookup at startup, using exponential backoff (1s, 2s, 4s, …). This tolerates a startup race where nova-compute has not yet created the resource provider in Placement.This fixes Bug 2139369 and addresses the disconnect between how Cyborg identifies the compute resource provider name and how Nova/Placement names it.
Previously, Cyborg used
CONF.host(which defaults tosocket.gethostname()) to look up the compute resource provider in Placement. However, Nova uses libvirt’s hostname determination, which typically returns the FQDN. This mismatch causedPlacementResourceProviderNotFounderrors on systems where the short hostname differs from the FQDN.