Bug 2122765

Summary: tripleo validator "nfv-ovsdpdk-zero-packet-loss-check" fails when non DPDK instances present
Product: Red Hat OpenStack Reporter: Juan Pablo Marti <jmarti>
Component: openstack-tripleo-validationsAssignee: Jiri Podivin <jpodivin>
Status: CLOSED ERRATA QA Contact: nlevinki <nlevinki>
Severity: medium Docs Contact:
Priority: medium    
Version: 16.2 (Train)CC: cfields, jjoyce, jmarti, jpodivin, jschluet, slinaber, tvignaud
Target Milestone: z4Keywords: Bugfix, Triaged
Target Release: 16.2 (Train on RHEL 8.4)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-validations-11.6.1-2.20220921004739.61366bc.el8ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-12-07 19:24:09 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 Juan Pablo Marti 2022-08-30 17:56:08 UTC
Description of problem:
When you have non DPDK instances hosted in ComputeOvsDPDK nodes (instances with no numatune, vcpupin, emulatorpin or hugepages settings in their domain xml content), the validator fails with an error (see Actual results section).

Version-Release number of selected component (if applicable):
RHOSP 16.2.2

How reproducible:
From undercloud in an environment containing ComputeOvsDPDK nodes with non DPDK instances hosted in them.

Steps to Reproduce:
1. openstack tripleo validator run --validation nfv-ovsdpdk-zero-packet-loss-check --inventory <PATH_TO_STATIC_INVENTORY>
2. openstack tripleo validator show run <UUID_OF_THE_FAILED_RUN>

Actual results:
(undercloud) [stack@undercloud-162 tripleo-validations]$ openstack tripleo validator run --validation nfv-ovsdpdk-zero-packet-loss-check --inventory ../inventory.yaml             
+--------------------------------------+------------------------------------+--------+----------------+----------------------------+-------------------+-------------+             
| UUID                                 | Validations                        | Status | Host_Group     | Status_by_Host             | Unreachable_Hosts | Duration    |             
+--------------------------------------+------------------------------------+--------+----------------+----------------------------+-------------------+-------------+             
| 5c4b00ff-c5e6-4870-9b6b-91910e254674 | nfv-ovsdpdk-zero-packet-loss-check | FAILED | ComputeOvsDpdk | overcloud-computeovsdpdk-0 |                   | 0:00:23.333 |             
+--------------------------------------+------------------------------------+--------+----------------+----------------------------+-------------------+-------------+             
One or more validations have failed.
(undercloud) [stack@undercloud-162 tripleo-validations]$ openstack tripleo validator show run 5c4b00ff-c5e6-4870-9b6b-91910e254674                                                 
{
    "hosts": {
        "overcloud-computeovsdpdk-0": {
            "_ansible_no_log": false,
            "action": "community.general.xml",
            "changed": false,
            "failed": true,
            "invocation": {
                "module_args": {
                    "add_children": null,
                    "attribute": null,
                    "backup": false,
                    "content": "attribute",
                    "count": false,
                    "input_type": "yaml",
                    "insertafter": false,
                    "insertbefore": false,
                    "namespaces": {},
                    "path": null,
                    "pretty_print": false,
                    "print_match": false,
                    "set_children": null,
                    "state": "present",
                    "strip_cdata_tags": false,
                    "value": null,
                    "xmlstring": "<domain type='kvm'>\n  <name>instance-00000079</name>\n  <uuid>72a030b2-a9b7-49eb-96a4-62dd750248ee</uuid>\n  <metadata>\n    <nova:instance xmlns:nova=\"http://openstack.org/xmlns/libvirt/nova/1.0\">\n      <nova:package version=\"20.6.2-2.20220112164912.8906554.el8ost\"/>\n      <nova:name>snaptest</nova:name>\n      <nova:creationTime>2022-08-05 21:43:26</nova:creationTime>\n      <nova:flavor name=\"m1.tiny.nopinning\">\n        <nova:memory>512</nova:memory>\n        <nova:disk>16</nova:disk>\n 
      <nova:swap>0</nova:swap>\n        <nova:ephemeral>0</nova:ephemeral>\n        <nova:vcpus>1</nova:vcpus>\n      </nova:flavor>\n      <nova:owner>\n        <nova:user uuid=\"73c9b9103b0d48b5b585a96f9749608b\">admin</nova:user>\n        <nova:project uuid=\"494f402ffa4a4f39b73a5ae5c04e4b3d\">admin</nova:project>\n      </nova:owner>\n      <nova:root type=\"image\" uuid=\"939a1f94-2acf-4dc7-a637-8974916153a2\"/>\n    </nova:instance>\n  </metadata>\n  <memory unit='KiB'>524288</memory>\n  <currentMemory unit='KiB'>524288</currentMemory>\n  <vcpu placement='static' cpuset='0-1,20-21'>1</vcpu>\n  <cputune>\n    <shares>1024</shares>\n  </cputune>\n  <sysinfo type='smbios'>\n    <system>\n      <entry name='manufacturer'>Red Hat</entry>\n      <entry name='product'>OpenStack Compute</entry>\n      <entry name='version'>20.6.2-2.20220112164912.8906554.el8ost</entry>\n      <entry name='serial'>72a030b2-a9b7-49eb-96a4-62dd750248ee</entry>\n      <entry name='uuid'>72a030b2-a9b7-49eb-96a4-62dd750248ee</entry>\n      <entry name='family'>Virtual Machine</entry>\n  
 </system>\n  </sysinfo>\n  <os>\n    <type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type>\n    <boot dev='hd'/>\n    <smbios mode='sysinfo'/>\n  </os>\n  <features>\n    <acpi/>\n    <apic/>\n  </features>\n  <cpu mode='host-model' check='partial'>\n    <topology sockets='1' dies='1' cores='1' threads='1'/>\n  </cpu>\n  <clock offset='utc'>\n    <timer name='pit' tickpolicy='delay'/>\n    <timer name='rtc' tickpolicy='catchup'/>\n    <timer name='hpet' present='no'/>\n  </clock>\n  <on_poweroff>destroy</on_poweroff>\n  <on_reboot>restart</on_reboot>\n  <on_crash>destroy</on_crash>\n  <devices>\n    <emulator>/usr/libexec/qemu-kvm</emulator>\n    <disk type='file' device='disk'>\n      <driver name='qemu' type='qcow2' cache='none'/>\n      <source file='/var/lib/nova/instances/72a030b2-a9b7-49eb-96a4-62dd750248ee/disk'/>\n      <target dev='vda' bus='virtio'/>\n      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>\n    </disk>\n    <controller type='usb' index='0' model='piix3-uhci'>\n      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>\n    </controller>\n    <controller type='pci' index='0' model='pci-root'/>\n    <interface type='vhostuser'>\n      <mac address='fa:16:3e:43:1e:3b'/>\n      <source type='unix' path='/var/lib/vhost_sockets/vhu14db8539-cc' mode='server'/>\n      <model type='virtio'/>\n      <driver rx_queue_size='1024' tx_queue_size='1024'/>\n      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>\n    </interface>\n    <serial type='pty'>\n      <log file='/var/lib/nova/instances/72a030b2-a9b7-49eb-96a4-62dd750248ee/console.log' append='off'/>\n      <target type='isa-serial' port='0'>\n        <model name='isa-serial'/>\n      </target>\n    </serial>\n    <console type='pty'>\n      <log file='/var/lib/nova/instances/72a030b2-a9b7-49eb-96a4-62dd750248ee/console.log' append='off'/>\n      <target type='serial' port='0'/>\n    </console>\n    <input type='tablet' bus='usb'>\n      <address type='usb' bus='0' port='1'/>\n    </input>\n    <input type='mouse' bus='ps2'/>\n    <input type='keyboard' bus='ps2'/>\n    <graphics type='vnc' port='-1' autoport='yes' listen='172.17.200.46'>\n      <listen type='address' address='172.17.200.46'/>\n    </graphics>\n    <video>\n      <model type='cirrus' vram='16384' heads='1' primary='yes'/>\n      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>\n    </video>\n    <memballoon model='virtio'>\n      <stats period='10'/>\n      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>\n    </memballoon>\n    <rng model='virtio'>\n      <backend model='random'>/dev/urandom</backend>\n      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>\n    </rng>\n  </devices>\n</domain>",                                    
                    "xpath": "/domain/numatune/memory"
                }
            },
            "msg": "Xpath /domain/numatune/memory does not reference a node!"
        }
    },
    "name": "Get instance numa node from xml string",
    "status": "FAILED"
}

Expected results:
Validation SUCCEED or FAILED just in the final task.

Additional info:

Comment 15 errata-xmlrpc 2022-12-07 19:24:09 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 (Release of components for Red Hat OpenStack Platform 16.2.4), 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/RHBA-2022:8794