Hi, Ilya, Suppose you have a column which is a set with limited integers (suppose min: 0, max: 2), the following operation will generate a record in db file with 3 integers:
first, set column A to [0], then, set column A to [1,2], after that the column A is recorded as [0,1,2], as [0] diff [1,2] == [0, 1, 2]. Such a bug can be reproduced by a test suite below: AT_SETUP([ovsdb-server diff columns]) on_exit 'kill `cat *.pid`' AT_DATA([schema], [[{"name": "mydb", "tables": { "Root": { "columns": { "managers": { "type": { "key": {"type": "uuid", "refTable": "Manager"}, "min": 0, "max": "unlimited"}}}}, "Manager": { "columns": { "target": { "type": "string"}, "read_only": { "type": { "key": "boolean", "min": 0, "max": 1}}, "is_connected": { "type": { "key": "boolean", "min": 0, "max": 1}}}}, "ordinals": { "columns": { "number": {"type": { "key": {"type" : "integer"}, "min": 0, "max": 2}}, "name": {"type": "string"}}, "indexes": [["name"]]} }, "version": "5.1.3", "cksum": "12345678 9" } ]]) AT_CHECK([ovsdb-tool create db schema], [0], [ignore], [ignore]) AT_CHECK( [[ovsdb-tool transact db \ '["mydb", {"op": "insert", "table": "Root", "row": { "managers": ["set", [["named-uuid", "x"]]]}}, {"op": "insert", "table": "Manager", "uuid-name": "x", "row": {"target": "ptcp:0:127.0.0.1", "read_only": false}}]']], [0], [ignore], [ignore]) AT_CHECK([ovsdb-server --detach --no-chdir --log-file --pidfile --remote=db:mydb,Root,managers db], [0], [ignore], [ignore]) PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) AT_CHECK([ovsdb-client get-schema-version tcp:127.0.0.1:$TCP_PORT mydb], [0], [5.1.3 ]) AT_CHECK([ovsdb-client transact tcp:127.0.0.1:$TCP_PORT \ ['["mydb", {"op": "insert", "table": "ordinals", "row": {"name": "two", "number": 0}} ]']], [0], [stdout], [ignore]) AT_CHECK([ovsdb-client transact tcp:127.0.0.1:$TCP_PORT \ ['["mydb", {"op": "update", "table": "ordinals", "where": [["name", "==", "two"]], "row": {"number": ["set", [1,2]]}} ]']], [0], [stdout], [ignore]) AT_CHECK([ovs-appctl -t ovsdb-server exit]) AT_CHECK([ovsdb-server --detach --no-chdir --log-file --pidfile --remote=db:mydb,Root,managers db], [0], [ignore], [ignore]) OVSDB_SERVER_SHUTDOWN([" /No status column present in the Manager table/d "]) AT_CLEANUP when reboot ovsdb-server, it will warn in the log: 2023-07-21T12:43:55Z|00001|vlog|INFO|opened log file /root/ovs/tests/testsuite.dir/2044/ovsdb-server.log 2023-07-21T12:43:55Z|00002|ovsdb_server|ERR|syntax "["set",[0,1,2]]": syntax error: set must have 0 to 2 members but 3 are present -- hepeng _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev