Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
starbops opened this issue Jan 1, 2024 · 0 comments
Open

Comments

@starbops
Copy link
Member

starbops commented Jan 1, 2024

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     : [email protected]
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant