Hide Forgot
Created attachment 1137326 [details] neutron server log and engine log Description of problem: [Neutron] - When engine allocate new port it's generate a host value that cause the binding:vif_type to binding_failed. Engine generates wrong host id value and because of that the binding:vif_type is failed --> vega05.qa.lab.tlv.redhat.com-937e64 instead of --> vega05.qa.lab.tlv.redhat.com - The value of the binding is not only the host name but: host.getHostName() + "-" + DigestUtils.md5Hex(host.getId().toByteArray()).substring(0, 6) When creating a port with correct host name, binding succeed: - Wrong host_id value --> [root@localhost ~(keystone_admin)]# neutron port-show badf795b-415b-4f9d-b6c0-aaf7a45e567d +-----------------------+-----------------------------------------------------------------------------------------------------+ | Field | Value | +-----------------------+-----------------------------------------------------------------------------------------------------+ | admin_state_up | True | | allowed_address_pairs | | | binding:host_id | vega05.qa.lab.tlv.redhat.com-937e64 | | binding:profile | {} | | binding:vif_details | {} | | binding:vif_type | binding_failed | | binding:vnic_type | normal - Correct host_id value --> [root@localhost ~(keystone_admin)]# neutron port-show 5c454e58-b119-48f1-94bf-1bb4ade52472 +-----------------------+-----------------------------------------------------------------------------------------------------+ | Field | Value | +-----------------------+-----------------------------------------------------------------------------------------------------+ | admin_state_up | True | | allowed_address_pairs | | | binding:host_id | vega05.qa.lab.tlv.redhat.com | | binding:profile | {} | | binding:vif_details | {"port_filter": true, "ovs_hybrid_plug": true} | | binding:vif_type | ovs | | binding:vnic_type | normal Version-Release number of selected component (if applicable): 3.6.3.4-0.1.el6.noarch How reproducible: 100 Steps to Reproduce: 1. Install external provider(neutron osp 8) in rhev 2. Import neutron network and run VM with it 3. Check the server.log, the network status in neutron and the port status. Actual results: All networks that 'ovirt' owns are DOWN and the binding:vif_type is binding_failed VM can't get ip from neutron's dhcp Expected results: Engine should generate the correct host_id when allocating new ports, so the binding:vif_type will be 'ovs'
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions
Michael, would you attach neutron.conf of the said host? ovirt-host-deploy.log may also be helpful.
Created attachment 1142065 [details] neutron conf
moving to 4.0, as this most probably affects only our generic network provider, not the existing 3.6 neutron integration.
This was discovered by QE while certifying OSP 8 on 3.6. Therefore this affects 3.6 as well. Why was this re-targeted then?
the trailing hash is an intentional addition, that is accompanied with a compatible configuration in neutron.conf. in 4.0, for generic external providers, we do not configure the host and should use its default fqdn hostname.
Moving from 4.0 alpha to 4.0 beta since 4.0 alpha has been already released and bug is not ON_QA.
Readding to 3.6 to back port once we have it merged in 4.0, so we can certify OSP 8 certain flows for 3.6 as well.
Verification procedure. To verify this bug, please also check (besides checking that the port is UP) if the request to Openstack Neutron contains the correct string. You can check this using the Neutron mock. After adding a port (or starting a vm with such), observe the log of the mock. It will report the data received from the engine: PUT: /v2.0/ports/port_id_2 Body: { "port" : { "binding:host_id" : "192.168.120.20-1ae73b", "security_groups" : null } } The binding:host_id must have the hash added if the host had Neutron installed automatically when added to engine, or must not otherwise.
Verified on - 3.6.8-0.1.el6