Dear OVS developers,

I hope this message finds you well. We have encountered a specific issue within 
ovs.db while attempting to update a specific row in the database and need your 
expertise to resolve it.
The weird thing about this issue is that the outcome is not consistent as it 
sometimes seems to does update (db_set) the IDL Row, but sometimes raises an 
exception as stated below.

As you can see we try to update both the name and chassis_name for a 
Gateway_Chassis entry however it seems that sometimes the chassis_name is 
getting discarded at the end of the stack trace (when the ValueError is raised).
Is there a constraint in terms of custom indexing that I have to be aware of 
when trying to update this row, or could this be a bug?

2023-11-09 10:02:50,928 - INFO - Updating Gateway_Chassis 
d745107c-e9aa-4e28-be70-b9a7bc948946 with {'name': 
'lrp-755153cd-38a0-4fc1-b666-4348df547010_c3be3', 'chassis_name': 'c3be3'}

2023-11-09 10:02:50,931 - ERROR - 
Gateway_Chassis(uuid=UUID('d745107c-e9aa-4e28-be70-b9a7bc948946'), 
name='lrp-755153cd-38a0-4fc1-b666-4348df547010_c3bc3', priority=0, 
external_ids={}, chassis_name='', options={}) not in list
Traceback (most recent call last):
  File "/app/generators/endpoints.py", line 101, in db_dummy_update_specific_row
    api_idl.db_set(table, db_row['_uuid'], 
**field_updates).execute(check_error=True)
  File 
"/usr/local/lib/python3.11/site-packages/ovsdbapp/backend/ovs_idl/command.py", 
line 49, in execute
    with self.api.transaction(check_error, log_errors, **kwargs) as t:
  File "/usr/local/lib/python3.11/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/usr/local/lib/python3.11/site-packages/ovsdbapp/api.py", line 114, in 
transaction
    with self.create_transaction(
  File "/usr/local/lib/python3.11/site-packages/ovsdbapp/api.py", line 71, in 
__exit__
    self.result = self.commit()
                  ^^^^^^^^^^^^^
  File 
"/usr/local/lib/python3.11/site-packages/ovsdbapp/backend/ovs_idl/transaction.py",
 line 64, in commit
    raise result.ex
  File 
"/usr/local/lib/python3.11/site-packages/ovsdbapp/backend/ovs_idl/connection.py",
 line 118, in run
    txn.results.put(txn.do_commit())
                    ^^^^^^^^^^^^^^^
  File 
"/usr/local/lib/python3.11/site-packages/ovsdbapp/backend/ovs_idl/transaction.py",
 line 92, in do_commit
    command.run_idl(txn)
  File 
"/usr/local/lib/python3.11/site-packages/ovsdbapp/backend/ovs_idl/command.py", 
line 176, in run_idl
    self.set_column(record, col, val)
  File 
"/usr/local/lib/python3.11/site-packages/ovsdbapp/backend/ovs_idl/command.py", 
line 62, in set_column
    setattr(row, col, idlutils.db_replace_record(val))
  File "/usr/local/lib/python3.11/site-packages/ovs/db/idl.py", line 1399, in 
__setattr__
    idx.remove(self)
  File "/usr/local/lib/python3.11/site-packages/ovs/db/custom_index.py", line 
66, in remove
    self.values.remove(self.index_entry_from_row(row))
  File 
"/usr/local/lib/python3.11/site-packages/sortedcontainers/sortedlist.py", line 
2041, in remove
    raise ValueError('{0!r} not in list'.format(value))
ValueError: Gateway_Chassis(uuid=UUID('d745107c-e9aa-4e28-be70-b9a7bc948946'), 
name='lrp-755153cd-38a0-4fc1-b666-4348df547010_c3bc3', priority=0, 
external_ids={}, chassis_name='', options={}) not in list


Your guidance on this matter would be greatly appreciated.

Thank you,
Bram
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to