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

VM fails to start with external provider network #873

Open
Yuliya-H opened this issue Jul 13, 2023 · 1 comment
Open

VM fails to start with external provider network #873

Yuliya-H opened this issue Jul 13, 2023 · 1 comment
Labels

Comments

@Yuliya-H
Copy link

Affected version

  • oVirt Engine: 4.5.5-0.master.20230317225744.el8
  • Host OS Variant: RHEL - 8.6 - 1.el8
  • VDSM version: 4.50.3.4-1.el8

Describe the bug
External provider network is successfully added to oVirt. Test connection is passing.
Appropriate network with subnet was created in Neutron and was imported into oVirt.
When starting the VM with that network attached, the next errors can be seen:

2023-07-13 05:16:30,954-04 ERROR [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (EE-ManagedThreadFactory-engine-Thread-78395) [25fb8aeb-9cfa-49e7-b824-024e9f669325] EVENT_ID: USER_FAILED_RUN_VM(54), Failed to run VM test-neutron-net  (User: admin@ovirt@internalkeycloak-authz).
2023-07-13 05:16:30,957-04 INFO  [org.ovirt.engine.core.bll.RunVmCommand] (EE-ManagedThreadFactory-engine-Thread-78395) [25fb8aeb-9cfa-49e7-b824-024e9f669325] Lock freed to object 'EngineLock:{exclusiveLocks='[124afed3-dda0-48a7-9d15-5fdf00eff2d3=VM]', sharedLocks=''}'
2023-07-13 05:16:30,957-04 ERROR [org.ovirt.engine.core.bll.RunVmCommand] (EE-ManagedThreadFactory-engine-Thread-78395) [25fb8aeb-9cfa-49e7-b824-024e9f669325] Command 'org.ovirt.engine.core.bll.RunVmCommand' failed: EngineException: (Failed with error Cannot deserialize value of type java.lang.String from Object value (token `JsonToken.START_OBJECT`)
 at [Source: (org.jboss.resteasy.client.core.BaseClientResponse$InputStreamWrapper); line: 1, column: 982] (through reference chain: com.woorea.openstack.quantum.model.Ports["ports"]->java.util.ArrayList[0]->com.woorea.openstack.quantum.model.Port$Binding["binding:vif_details"]->java.util.LinkedHashMap["bound_drivers"]) and code 5050)

Tcp dump from neutron host , shows that it sends the requested data:

{
      "id": "c448772a-88fd-475b-ad03-31ac6992100e",
      "name": "octavia-listen-port-ctrl-1",
      "network_id": "7537bbb7-3bec-4e24-adb1-8f0ba7da1d05",
      "tenant_id": "4f8de5df864546a3aa5bd41b597084b4",
      "mac_address": "fa:16:3e:b5:12:ba",
      "admin_state_up": true,
      "status": "ACTIVE",
      "device_id": "",
      "device_owner": "Octavia:health-mgr",
      "fixed_ips": [
        {
          "subnet_id": "0b616072-e15b-4e92-8c46-23305b82d881",
          "ip_address": "[10.1.0.141](https://10.1.0.141/)"
        }
      ],
      "allowed_address_pairs": [],
      "extra_dhcp_opts": [],
      "security_groups": [
        "9c9a653d-751e-43ed-8c1e-8f377e4ff087"
      ],
      "description": "",
      "binding:vnic_type": "normal",
      "binding:profile": {},
      "binding:host_id": "ctrl-1",
      "binding:vif_type": "ovs",
      "binding:vif_details": {
        "connectivity": "l2",
        "port_filter": true,
        "ovs_hybrid_plug": true,
        "datapath_type": "system",
        "bridge_name": "br-int",
        "bound_drivers": {
          "0": "openvswitch"
        }
      },
      "port_security_enabled": true,
      "tags": [],
      "created_at": "2023-07-10T13:04:53Z",
      "updated_at": "2023-07-10T13:05:01Z",
      "revision_number": 4,
      "project_id": "4f8de5df864546a3aa5bd41b597084b4"
    }

Expected behavior
VM should start.

Any idea what can be the reason of this fail and how to fix this?

@Yuliya-H Yuliya-H added the bug label Jul 13, 2023
@Yuliya-H
Copy link
Author

After some more researches got clear that the issue is caused by newly added parameter here:
openstack/neutron-lib@c26573f

oVirt doesn't expect nested dict parameter: ( but expects string parameters such as other values of 'binding:vif_details' object:)

Here what it receives:

"binding:vif_details": {
        "connectivity": "l2",
        "port_filter": true,
        "ovs_hybrid_plug": true,
        "datapath_type": "system",
        "bridge_name": "br-int",
        "bound_drivers": {
          "0": "openvswitch"
        }

And here is the code in oVirt quantum models (openstack-java-sdk-quantum-model):

@JsonProperty("binding:vif_details")
        private Map<String, String> vifDetails;

This should be fixed on oVirt side.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant