Hello everyone!

I found an issue during testing with the OVN-IC daemon. I noticed that
applications that interact with python-idl show an error when deleting
datapath_binding when the table index changes.

We can see the error in the logs below:

2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection [-]
Datapath_Binding(uuid=UUID('498e66a2-70bc-4587-a66f-0433baf82f60'),
tunnel_key=16711683, load_balancers=[], external_ids={}) not in list:
ValueError: Datapath_Binding(uuid=UUID('498e66a2-70bc-4587-a66f-0433baf82f60'),
tunnel_key=16711683, load_balancers=[], external_ids={}) not in list
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection Traceback (most recent call last):
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/connection.py",
line 110, in run
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection     self.idl.run()
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/ovs/db/idl.py", line 465, in run
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection
self.__parse_update(msg.params[2], OVSDB_UPDATE3)
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/ovs/db/idl.py", line 924, in
__parse_update
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection     self.__do_parse_update(update,
version, self.tables)
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/ovs/db/idl.py", line 964, in
__do_parse_update
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection     changes =
self.__process_update2(table, uuid, row_update)
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/ovs/db/idl.py", line 991, in
__process_update2
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection     del table.rows[uuid]
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/ovs/db/custom_index.py", line 102, in
__delitem__
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection     index.remove(val)
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/ovs/db/custom_index.py", line 66, in
remove
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection
self.values.remove(self.index_entry_from_row(row))
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection   File
"/usr/lib/python3/dist-packages/sortedcontainers/sortedlist.py", line
2015, in remove
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection     raise ValueError('{0!r} not in
list'.format(value))
2024-05-27 09:49:38.779 23596 ERROR
ovsdbapp.backend.ovs_idl.connection ValueError:
Datapath_Binding(uuid=UUID('498e66a2-70bc-4587-a66f-0433baf82f60'),
tunnel_key=16711683, load_balancers=[], external_ids={}) not in list
2024-05-27 09:49:38.779 23596 ERROR ovsdbapp.backend.ovs_idl.connection


The complete logs showing the creation, update of the tunnel_key and
deletion of the datapath_binding can be accessed at [1].

Basically the problem occurs because of the tunnel_key update when we
create a transit-switch. If the table did not have this index the problem
would not be observed.

This issue affects applications such as: neutron-server,
neutron-ovn-metadata-agent, and everyone that monitors the Datapath_Binding
table via python-idl.

I've already talked to Ilya Maximets in the openvswitch IRC channel and the
issue seems to be in the row updating process: python/ovs/db/idl.py.

Kind regards,
Roberto


[1] https://paste.openstack.org/show/bqLA7nxfk2C6loD5YlY1/

-- 




_‘Esta mensagem é direcionada apenas para os endereços constantes no 
cabeçalho inicial. Se você não está listado nos endereços constantes no 
cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa 
mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas estão 
imediatamente anuladas e proibidas’._


* **‘Apesar do Magazine Luiza tomar 
todas as precauções razoáveis para assegurar que nenhum vírus esteja 
presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por 
quaisquer perdas ou danos causados por esse e-mail ou por seus anexos’.*



_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to