On Thu, Dec 1, 2022 at 3:58 PM Vladislav Odintsov <[email protected]> wrote: > > Hi, > > is it possible to consider any of the problems written below and here [0] for > the possible fixes to be included in upcoming OVN/OVS releases?
Hi, I didn't get a chance to look at the patches. But if some of them are fixing any issues, we can definitely backport them, I'd suggest removing the RFC tag and reposting the patches. Thanks Numan > > Thanks. > > 0: > https://patchwork.ozlabs.org/project/ovn/cover/[email protected]/ > > Regards, > Vladislav Odintsov > > > On 24 Nov 2022, at 20:57, Anton Vazhnetsov <[email protected]> wrote: > > > > Hi, Terry! > > > > In continuation to our yesterday’s conversation [0], we were able to > > reproduce the issue with KeyError. We found that the problem is not > > connected with ovsdb-server load but it appears when the ovsdb-server > > schema is converted online (it even doesn’t matter whether the real ovs > > schema is changed) while the active connection persists. > > Please use next commands to reproduce it: > > > > # in terminal 1 > > > > ovsdb-tool create ./ovs.db /usr/share/ovn/ovn-nb.ovsschema > > ovsdb-server --remote punix://$(pwd)/ovs.sock $(pwd)/ovs.db -vconsole:dbg > > > > > > # in terminal 2. run python shell > > python3 > > # setup connection > > import ovsdbapp.schema.ovn_northbound.impl_idl as nb_idl > > from ovsdbapp.backend.ovs_idl import connection > > > > remote = "unix:///<path to ovs.sock>" > > > > def get_idl(): > > """Connection getter.""" > > > > idl = connection.OvsdbIdl.from_server(remote, "OVN_Northbound", > > leader_only=False) > > return nb_idl.OvnNbApiIdlImpl(connection.Connection(idl, 100)) > > > > idl = get_idl() > > > > > > # in terminal 1 > > ovsdb-client convert unix:$(pwd)/ovs.sock /usr/share/ovn/ovn-nb.ovsschema > > > > # in terminal 2 python shell: > > idl.ls_add("test").execute() > > > > > > We get following traceback: > > > > Traceback (most recent call last): > > File > > "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/connection.py", > > line 131, in run > > txn.results.put(txn.do_commit()) > > File > > "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/transaction.py", > > line 143, in do_commit > > self.post_commit(txn) > > File > > "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/transaction.py", > > line 73, in post_commit > > command.post_commit(txn) > > File > > "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/command.py", > > line 94, in post_commit > > row = self.api.tables[self.table_name].rows[real_uuid] > > File "/usr/lib64/python3.6/collections/__init__.py", line 991, in > > __getitem__ > > raise KeyError(key) > > KeyError: UUID('0256afa4-6dd0-4c2c-b6a2-686a360ab331') > > > > In ovsdb-server debug logs we see that update2 or update3 messages are not > > sent from server in response to client’s transaction, just reply with > > result UUID: > > 2022-11-24T17:42:36Z|00306|poll_loop|DBG|wakeup due to [POLLIN] on fd 18 > > (///root/ovsdb-problem/ovs.sock<->) at lib/stream-fd.c:157 > > 2022-11-24T17:42:36Z|00307|jsonrpc|DBG|unix#5: received request, > > method="transact", > > params=["OVN_Northbound",{"uuid-name":"row03ef28d6_93f1_43bc_b07a_eae58d4bd1c5","table":"Logical_Switch","op":"insert","row":{"name”:"test"}}], > > id=5 > > 2022-11-24T17:42:36Z|00308|jsonrpc|DBG|unix#5: send reply, > > result=[{"uuid":["uuid","4eb7c407-beec-46ca-b816-19f942e57721"]}], id=5 > > > > We checked same with ovn-nbctl running in daemon mode and found that the > > problem is not reproduced (ovsdb-server after database conversion sends out > > update3 message to ovn-nbctl daemon process in response to transaction, for > > example ovs-appctl -t <nbctl daemon socket> run ls-add test-ls): > > 2022-11-24T17:54:51Z|00623|jsonrpc|DBG|unix#7: received request, > > method="transact", > > params=["OVN_Northbound",{"uuid-name":"rowcdb152ce_a9af_4761_b965_708ad300fcb7","table":"Logical_Switch","op":"insert","row":{"name":"test-ls"}},{"comment":"ovn-nbctl: > > run ls-add test-ls","op":"comment"}], id=5 > > 2022-11-24T17:54:51Z|00624|jsonrpc|DBG|unix#7: send notification, > > method="update3", > > params=[["monid","OVN_Northbound"],"00000000-0000-0000-0000-000000000000",{"Logical_Switch":{"0b147f2c-248d-496a-b718-a5328d3c2995":{"insert":{"name":"test-ls"}}}}] > > 2022-11-24T17:54:51Z|00625|jsonrpc|DBG|unix#7: send reply, > > result=[{"uuid":["uuid","0b147f2c-248d-496a-b718-a5328d3c2995"]},{}], id=5 > > > > So it seems that the problem is in python-ovs, not in ovsdb-server. > > > > Do you have any ideas what can be a reason for such behaviour? > > > > 0: > > https://review.opendev.org/c/openstack/ovsdbapp/+/865454/comments/674c57e6_3849591b > > > > Regards, Anton. > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
