ovdb connections fail. out-of-sync with ovs library

Bug #2029420 reported by surlyjake
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
New
Undecided
Unassigned

Bug Description

steps to reproduce:
1. Follow documentation for establishing an ovsdb connection to a bridge https://docs.openstack.org/os-ken/latest/library_ovsdb_manager.html?highlight=ovsdb. save example file as ovsdb-test.py

2. execute venv/bin/osken-manager.py ovsdb-test.py

Expected output:
MyApp Ken app should log
'New OVSDB connection from system-id=....., address=....'

Actual Output:

yieldd an error when the bridge connects:

Listening on 0.0.0.0:6640 for clients
hub: uncaught exception: Traceback (most recent call last):
  File "/home/ubuntu/venv/lib/python3.8/site-packages/os_ken/lib/hub.py", line 69, in _launch
    return func(*args, **kwargs)
  File "/home/ubuntu/venv/lib/python3.8/site-packages/os_ken/services/protocols/ovsdb/manager.py", line 145, in _start_remote
    app = client.RemoteOvsdb.factory(sock, client_address,
  File "/home/ubuntu/venv/lib/python3.8/site-packages/os_ken/services/protocols/ovsdb/client.py", line 329, in factory
    system_id = discover_system_id(idl)
  File "/home/ubuntu/venv/lib/python3.8/site-packages/os_ken/services/protocols/ovsdb/client.py", line 125, in discover_system_id
    idl.run()
  File "/home/ubuntu/venv/lib/python3.8/site-packages/ovs/db/idl.py", line 432, in run
    self.send_cond_change()
  File "/home/ubuntu/venv/lib/python3.8/site-packages/ovs/db/idl.py", line 642, in send_cond_change
    if not self._session.is_connected() or self._request_id is not None:
AttributeError: 'Idl' object has no attribute '_request_id'

versions:
os-ken==2.6.0
ovs==3.1.2

This appears to be related to wrapping of the OVS library's Idl class in os_ken/services/protocols/ovsdb/client.py. The ovs library Idl class has been updated and the Ken-wrapped class isn't compatible with changes to the OVS Idl class.

Here are some issues related to incompatabilities between the ryu/ken idl wrapper and upstream ovs codebase which have been reported against the Ryu codebase prior to the os-ken fork which :
1. https://github.com/faucetsdn/ryu/issues/146
2. https://github.com/faucetsdn/ryu/issues/157
3. https://<email address hidden>/msg08158.html

Workarounds:
downgrading to ovs version 2.10 appears to work at least as far as establishing the ovsdb initial connection.
  pip install ovs=2.10

Tags: os-ken
description: updated
tags: added: os-ken
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.