Skip to content

Get CPU map function of libvirt is not supported on FreeBSD platform #3

@starbops

Description

@starbops

When running nova-compute:

2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager [None req-0ddee453-e800-463c-808b-71e6107bf1e2 - - - - - -] Error updating resources for node openstack1.nyi.freebsd.org.: libvirt.libvirtError: this function is not supported by the connection driver: node online CPU map not implemented on this platform
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager Traceback (most recent call last):
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/nova/compute/manager.py", line 10056, in _update_available_resource_for_node
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     self.rt.update_available_resource(context, nodename,
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/nova/compute/resource_tracker.py", line 884, in update_available_resource
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     resources = self.driver.get_available_resource(nodename)
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/nova/virt/libvirt/driver.py", line 9051, in get_available_resource
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     data["vcpus"] = len(self._get_vcpu_available())
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/nova/virt/libvirt/driver.py", line 7358, in _get_vcpu_available
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     online_cpus = self._host.get_online_cpus()
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/nova/virt/libvirt/host.py", line 747, in get_online_cpus
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     cpus, cpu_map, online = self.get_connection().getCPUMap()
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/eventlet/tpool.py", line 193, in doit
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     result = proxy_call(self._autowrap, f, *args, **kwargs)
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/eventlet/tpool.py", line 151, in proxy_call
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     rv = execute(f, *args, **kwargs)
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/eventlet/tpool.py", line 132, in execute
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     six.reraise(c, e, tb)
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/six.py", line 719, in reraise
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     raise value
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/eventlet/tpool.py", line 86, in tworker
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     rv = meth(*args, **kwargs)
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager   File "/home/starbops/nova-patched/.venv/lib/python3.9/site-packages/libvirt.py", line 4607, in getCPUMap
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager     raise libvirtError('virNodeGetCPUMap() failed')
2024-01-01 15:36:33.218 37484 ERROR nova.compute.manager libvirt.libvirtError: this function is not supported by the connection driver: node online CPU map not implemented on this platform

nova-compute will try to collect the information of the node it runs on, including the CPU count. It retrieves the info via libvirt APIs. However, this one, virNodeGetCPUMap() is not supported on FreeBSD platform.

$ pkg info libvirt
libvirt-9.10.0
Name           : libvirt
Version        : 9.10.0
Installed on   : Mon Dec  4 16:20:11 2023 UTC
Origin         : devel/libvirt
Architecture   : FreeBSD:14:amd64
Prefix         : /usr/local
Categories     : devel
Licenses       : LGPL3
Maintainer     : novel@FreeBSD.org
WWW            : https://libvirt.org/
Comment        : Toolkit to interact with virtualization capabilities
Options        :
        BHYVE          : on
        DOCS           : on
        LIBSSH         : on
        LIBSSH2        : on
        NLS            : on
        NSS            : off
        QEMU           : off
        READLINE       : on
        SASL           : off
        XEN            : off
        ZFS            : on
Shared Libs required:
        libxml2.so.2
        libssh2.so.1
        libssh.so.4
        libreadline.so.8
        libintl.so.8
        libgobject-2.0.so.0
        libgnutls.so.30
        libglib-2.0.so.0
        libgio-2.0.so.0
        libcurl.so.4
Shared Libs provided:
        libvirt.so.0
        libvirt-qemu.so.0
        libvirt-lxc.so.0
        libvirt-admin.so.0
Annotations    :
        FreeBSD_version: 1400097
        build_timestamp: 2023-12-03T15:54:50+0000
        built_by       : poudriere-git-3.3.99.20220831
        cpe            : cpe:2.3:a:redhat:libvirt:9.10.0:::::freebsd14:x64
        port_checkout_unclean: no
        port_git_hash  : 989615aa0f
        ports_top_checkout_unclean: no
        ports_top_git_hash: 87e4ed5241
        repo_type      : binary
        repository     : default
Flat size      : 39.9MiB
Description    :
A toolkit to interact with the virtualization capabilities of recent versions of
Linux, and other OSes.

libvirt provides:
* Remote management using TLS encryption and x509 certificates
* Remote management authenticating with Kerberos and SASL
* Local access control using PolicyKit
* Zero-conf discovery using Avahi multicast-DNS
* Management of virtual machines, virtual networks and storage
* Portable client API for Linux, Solaris and Windows

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions