After I commit review, I got gate-nova-python34 FAILURE in following log file
http://logs.openstack.org/19/201019/1/check/gate-nova-python34/1e74b65/console.html
The assert meessages are
AssertionError: Expected call: instance_extra_update_by_uuid(<nova.context.RequestContext object at 0x7fb95f499dd8>, 'fake-uuid', {'numa_topology': '{"nova_object.version": "1.1", "nova_object.name": "InstanceNUMATopology", "nova_object.changes": ["cells", "instance_uuid"], "nova_object.data": {"cells": [{"nova_object.version": "1.2", "nova_object.name": "InstanceNUMACell", "nova_object.changes": ["memory", "id", "cpuset"], "nova_object.data": {"pagesize": null, "cpu_pinning_raw": null, "cpu_topology": null, "id": 0, "cpuset": [0], "memory": 128}, "nova_object.namespace": "nova"}, {"nova_object.version": "1.2", "nova_object.name": "InstanceNUMACell", "nova_object.changes": ["memory", "id", "cpuset"], "nova_object.data": {"pagesize": null, "cpu_pinning_raw": null, "cpu_topology": null, "id": 1, "cpuset": [1], "memory": 128}, "nova_object.namespace": "nova"}], "instance_uuid": "fake-uuid"}, "nova_object.namespace": "nova"}'})
2015-07-13 07:28:22.759 | Actual call: instance_extra_update_by_uuid(<nova.context.RequestContext object at 0x7fb95f499dd8>, 'fake-uuid', {'numa_topology': '{"nova_object.version": "1.1", "nova_object.name": "InstanceNUMATopology", "nova_object.changes": ["cells", "instance_uuid"], "nova_object.data": {"cells": [{"nova_object.version": "1.2", "nova_object.name": "InstanceNUMACell", "nova_object.changes": ["memory", "cpuset", "id"], "nova_object.data": {"pagesize": null, "cpu_pinning_raw": null, "cpu_topology": null, "id": 0, "cpuset": [0], "memory": 128}, "nova_object.namespace": "nova"}, {"nova_object.version": "1.2", "nova_object.name": "InstanceNUMACell", "nova_object.changes": ["memory", "cpuset", "id"], "nova_object.data": {"pagesize": null, "cpu_pinning_raw": null, "cpu_topology": null, "id": 1, "cpuset": [1], "memory": 128}, "nova_object.namespace": "nova"}], "instance_uuid": "fake-uuid"}, "nova_object.namespace": "nova"}'})
You can notice the difference of these two value are "nova_object.changes" in cells object. They have same element with different order.
This is because of the order of _changed_fields was not always same. Therefore the two value's order are different.
But python27 will not had this problem. Because of when we want to get object's change, those changes will been save in set and finally return it.
Python27's set collection will sort content, but python34 wouldn't.
http:// logstash. openstack. org/#eyJzZWFyY2 giOiJtZXNzYWdlO lwiQXNzZXJ0aW9u RXJyb3I6IEV4cGV jdGVkIGNhbGw6IG luc3RhbmNlX2V4d HJhX3VwZGF0ZV9i eV91dWlkXCIiLCJ maWVsZHMiOltdLC JvZmZzZXQiOjAsI nRpbWVmcmFtZSI6 ImN1c3RvbSIsImd yYXBobW9kZSI6Im NvdW50IiwidGltZ SI6eyJmcm9tIjoi MjAxNS0wNy0wMVQ xMzo0MToxNSswMD owMCIsInRvIjoiM jAxNS0wNy0xM1Qx Mzo0MToxNSswMDo wMCIsInVzZXJfaW 50ZXJ2YWwiOiIwI n0sInN0YW1wIjox NDM2Nzk1MTQ3NTc 5LCJtb2RlIjoiIi wiYW5hbHl6ZV9ma WVsZCI6IiJ9
seems only once occur? is it because some incorrect setting ? or a new patch on related area?
seems 2015-02-03 15:38:53 is the later modify of the function?