ovsvapp agent not starting due to TypeError: unhashable type: 'list'

Bug #1793105 reported by marafet cristian
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
networking-vsphere
New
Undecided
Unassigned

Bug Description

Hello,

I am trying to setup an Openstack Queens with multi-hypervisor environment (KVM + ESXi).
I have been following the OVSvAPP solution described in https://wiki.openstack.org/wiki/Neutron/Networking-vSphere.

The problem is that I cannot get past this error no matter what type of OVSvAPP config, the devstack installation fails when trying to start-up the OVSvAPP agent, below is the error log:
stack@ovsvapp:~$ python /usr/local/bin/neutron-ovsvapp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ovsvapp_agent.ini
/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
  """)
INFO neutron.common.config [-] Logging enabled!
INFO neutron.common.config [-] /usr/local/bin/neutron-ovsvapp-agent version 13.0.0.0rc2.dev121
DEBUG neutron.common.config [-] command line: /usr/local/bin/neutron-ovsvapp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ovsvapp_agent.ini {{(pid=1754) setup_logging /opt/stack/neutron/neutron/common/config.py:103}}
INFO networking_vsphere.service [-] Loading agent: networking_vsphere.agent.ovsvapp_agent.OVSvAppAgent.
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.network.Network'>> rbac-policy before_create 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.network.Network'>> rbac-policy before_update 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.network.Network'>> rbac-policy before_delete 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.qos.policy.QosPolicy'>> rbac-policy before_create 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.qos.policy.QosPolicy'>> rbac-policy before_update 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG neutron_lib.callbacks.manager [-] Subscribe: <bound method DeclarativeObject.validate_rbac_policy_change of <class 'neutron.objects.qos.policy.QosPolicy'>> rbac-policy before_delete 55550000 {{(pid=1754) subscribe /usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py:48}}
DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn n=1 command(idx=0): BridgeExistsCommand(name=br-int) {{(pid=1754) do_commit /usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:84}}
DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Transaction caused no change {{(pid=1754) do_commit /usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:121}}
DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn n=1 command(idx=0): DbAddCommand(column=protocols, record=br-int, values=(['OpenFlow10', 'OpenFlow11', 'OpenFlow12', 'OpenFlow13', 'OpenFlow14'],), table=Bridge) {{(pid=1754) do_commit /usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:84}}
ERROR ovsdbapp.backend.ovs_idl.transaction [-] Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/connection.py", line 99, in run
    txn.results.put(txn.do_commit())
  File "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py", line 86, in do_commit
    command.run_idl(txn)
  File "/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 151, in run_idl
    idlutils.db_replace_record(value))
  File "/usr/local/lib/python2.7/dist-packages/ovs/db/idl.py", line 897, in addvalue
    column_value.add(key)
TypeError: unhashable type: 'list'

Devstack local.conf used :

[root@ovsvapp2 git]# cat /opt/stack/devstack/local.conf
[[local|localrc]]
GIT_BASE=${GIT_BASE:-https://git.openstack.org}
enable_plugin networking-vsphere https://github.com/openstack/networking-vsphere
OVSVAPP_MODE=agent
Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovsvapp
OVSVAPP_VCENTER_IP=10.10.5.152
<email address hidden>
OVSVAPP_VCENTER_PASSWORD=Changeme
OVSVAPP_ESX_HOSTNAME=10.10.5.153
OVSVAPP_CLUSTER_DVS_MAPPING=TOCVCD01/tocesx01.emslabw3.local/Cluster:DSwitch2
OVSVAPP_TENANT_NETWORK_TYPES=vxlan
OVSVAPP_LOCAL_IP=10.10.5.170
OVSVAPP_PHYSICAL_BRIDGE=br-ethx
OVSVAPP_PHYSICAL_INTERFACE=ens192
OVSVAPP_BRIDGE_MAPPINGS=physnet1:br-ethx
OVSVAPP_TRUNK_INTERFACE=ens256
TUNNEL_BRIDGE=br-tun
SECURITY_BRIDGE=br-sec
OVSVAPP_SECURITY_BRIDGE_MAPPINGS=br-sec:ens256
OVSVAPP_AGENT_BINARY=/usr/local/bin/neutron-ovsvapp-agent
OVSVAPP_CONF_FILENAME=ovsvapp_agent.ini
VMWARE_DVS_UPLINK_MAPPING=physnet2:DSwitch-DVUplinks-115
VMWARE_DVS_ENABLE_SG=True
VMWARE_DVS_FW_DRIVER=networking_vsphere.agent.firewalls.vcenter_firewall.DVSFirewallDriver
disable_service q-agt

Latest openvswitch-2.9.0 and ovsdbapp 0.10.1 used.
Please note that the protocols can be added manually like below command:
ovs-vsctl set bridge br-int protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14.

I don’t think the VAPP ML2 config is in anyway affecting this error, since it’s reproduceable with : python /usr/local/bin/neutron-ovsvapp-agent (without referencing the config).

Hope that you can help .

Regards,
Cristian

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.