| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-01-12 | |||
| 16:40:03 | mriedem | np | |
| 16:42:50 | mnestratov | mriedem: thanks for fixing the review for us ) | |
| 16:47:01 | mdbooth | artom: It occurs to me that we don't call _build_device_metadata often enough | |
| 16:47:31 | mdbooth | We need to call it every time we regenerate libvirt domain xml, because all hw address will change every time we do that | |
| 16:52:52 | openstackgerrit | Matt Riedemann proposed openstack/nova: WIP: Make unit tests work with os-vif 1.4.0 https://review.openstack.org/419558 | |
| 16:52:55 | mriedem | dansmith: jaypipes: i've got a problem with ^ because of http://paste.openstack.org/show/594736/ | |
| 16:53:16 | mriedem | i'm backporting the VIFHostUser object to 1.0 but it's nested 'network' object isn't getting backported recursively | |
| 16:53:25 | mriedem | well, i think it's trying, but there is no rule for it | |
| 16:54:08 | mriedem | i do see this though https://github.com/openstack/os-vif/blob/1.4.0/os_vif/objects/network.py#L51 | |
| 16:55:08 | openstackgerrit | Davanum Srinivas (dims) proposed openstack/nova: [WIP][py35] Trying to get cinder+rally working https://review.openstack.org/419476 | |
| 16:57:39 | dtp | dansmith | |
| 16:58:48 | dansmith | dtp | |
| 16:59:10 | dansmith | mriedem: is it calling super in make compatible? | |
| 16:59:19 | mriedem | dansmith: yup | |
| 16:59:25 | dtp | do i understand your comment on https://review.openstack.org/#/c/418141 that instead of relying on the mapping being there, we need to rely instead on cells.enable setting? | |
| 16:59:29 | mriedem | looks like _obj_relationships_for doesn't have a manifest on the thing i'm backporting | |
| 16:59:34 | dansmith | mriedem: does the manifest call for the older version/ | |
| 17:00:01 | mriedem | where does the manifest get set on the object? | |
| 17:00:19 | mriedem | oh i see it doesn't have a manifest | |
| 17:00:29 | mriedem | so it tries to use the old school self.obj_relationships[field] | |
| 17:00:33 | dansmith | dtp: which comment? | |
| 17:00:35 | mriedem | and we don't have a rule for it | |
| 17:00:45 | dtp | dansmith the commit message at the top | |
| 17:00:46 | dansmith | mriedem: yeah, manifest is just passed into the call, not stored anywhere | |
| 17:01:38 | dansmith | dtp: we need to ignore the fact that the mapping is in place, if we're still on cellsv1, so that we don't bypass the replication and go straight to the cell database, which might have not-yet-replicated stuff in it | |
| 17:01:59 | dtp | ok, thank you | |
| 17:02:19 | mriedem | ok so i need to call obj_make_compatible_from_manifest() instead and provide my own manifest on how to handle this nested field? | |
| 17:02:23 | dansmith | dtp: cells.enable is really cellsv1.enable | |
| 17:02:42 | dtp | yeah i have that burned to my brain roms :D | |
| 17:02:47 | dtp | +1! | |
| 17:02:59 | dansmith | mriedem: https://github.com/openstack/nova/blob/master/nova/tests/unit/objects/test_objects.py#L886-L956 | |
| 17:03:14 | mdbooth | artom: Replied. | |
| 17:10:13 | edleafe | Can someone explain the failure here: http://logs.openstack.org/51/416751/6/check/gate-nova-tox-db-functional-ubuntu-xenial/fec7ddc/testr_results.html.gz | |
| 17:10:38 | edleafe | It seems all the tests passed, but the returncode was 1 | |
| 17:11:41 | mriedem | edleafe: this looks odd http://logs.openstack.org/51/416751/6/check/gate-nova-tox-db-functional-ubuntu-xenial/fec7ddc/console.html#_2017-01-12_15_25_20_540113 | |
| 17:11:47 | mriedem | 2017-01-12 15:25:20.506 4337 INFO nova.osapi_compute.wsgi.server [req-471b1e60-9717-479e-a053-06834d8fe63f fake fake - - -] (4337) wsgi exited, is_accepting=True | |
| 17:12:12 | jaypipes | mriedem: lookin... | |
| 17:13:31 | edleafe | mriedem: odd is a good word | |
| 17:18:30 | jaypipes | mriedem: ah, yeah... I ran into similar recently when trying to add a UUID field to the NUMACell object. Objects that had their versions changed but never got an obj_make_compatible() method run into this failure. To fix, you need to manually set the obj_relationships class attribute on the object in osvif :( | |
| 17:18:46 | mriedem | what's really crazy, | |
| 17:19:08 | mriedem | when this test was added to nova https://review.openstack.org/#/c/334048/11/nova/tests/unit/network/test_os_vif_util.py@575 | |
| 17:19:13 | jaypipes | mriedem: we aren't yet sending osvif objects over the wire, though, so it may be we could do a hack of the object manifests with dansmith's help? | |
| 17:19:31 | mriedem | it's setting the vif_name which passed even though vif_name wasn't a field on that type in os-vif 1.3.0 which is what we were testing against | |
| 17:19:51 | mriedem | so...i guess when the test converts it to a primitive, | |
| 17:19:59 | mriedem | because vif_name wasn't a 'registered' field it just excluded it? | |
| 17:20:05 | mriedem | so the equality check was ok? | |
| 17:20:50 | mriedem | if that's the case, i'm not sure why vif_name isn't showing up on the actual object when we do the compare with os-vif 1.4.0 http://logs.openstack.org/21/418421/4/check/gate-cross-nova-python27-db-ubuntu-xenial/376a0f3/console.html#_2017-01-11_10_21_37_885392 | |
| 17:21:34 | jaypipes | mriedem: vif_name is a field: https://github.com/openstack/os-vif/blob/master/os_vif/objects/vif.py#L65 | |
| 17:21:37 | mriedem | jaypipes: these have obj_make_compatible methods | |
| 17:21:43 | dansmith | jaypipes: obj_relationships should not be used anymore | |
| 17:21:48 | jaypipes | https://github.com/openstack/os-vif/blob/master/os_vif/objects/vif.py#L77 | |
| 17:21:53 | mriedem | jaypipes: vif_name wasn't a field in VIFHostUser until 1.1 | |
| 17:22:04 | jaypipes | dansmith: yeah, I know, but I found no other way to fix that bug. | |
| 17:22:05 | mriedem | and ^ was just released in os-vif 1.4.0 | |
| 17:22:07 | jaypipes | mriedem: ah.' | |
| 17:22:20 | mriedem | https://review.openstack.org/#/c/390225/7/os_vif/objects/vif.py | |
| 17:22:53 | jaypipes | mriedem: you sure about that? https://github.com/openstack/os-vif/commit/11af752a5af8a58a4f8fd5af196d1fce7729463d | |
| 17:22:59 | jaypipes | mriedem: shows added in 2015. | |
| 17:23:26 | mriedem | jaypipes: on which object? | |
| 17:23:34 | mriedem | we're not dealing with vif generic or bridge, | |
| 17:23:37 | mriedem | it's VIFHostUser | |
| 17:23:44 | mriedem | see https://review.openstack.org/#/c/390225/7/os_vif/objects/vif.py | |
| 17:24:07 | mriedem | that adds the vif_name field to VIFHostUser and bumps it's version to 1.1, and that change is released in os-vif 1.4.0, which is now breaking nova unit tests | |
| 17:24:17 | mriedem | http://logs.openstack.org/21/418421/4/check/gate-cross-nova-python27-db-ubuntu-xenial/376a0f3/console.html#_2017-01-11_10_21_37_885392 | |
| 17:24:33 | mriedem | because vif_name is in our expected object on the nova side, but it's not in the actual obj we're getting from os-vif for some reason | |
| 17:25:27 | jaypipes | mriedem: hmm, yes, you're totally correct. | |
| 17:25:47 | mriedem | even though both primitives are showing | |
| 17:25:48 | mriedem | 'versioned_object.name': 'VIFVHostUser', | |
| 17:25:52 | mriedem | 'versioned_object.version': '1.1'} | |
| 17:25:54 | jaypipes | yup you're right. | |
| 17:26:32 | jaypipes | mriedem: weird... I wonder how https://github.com/openstack/os-vif/commit/345ff074b5dadc965b2298583124f32fc29dd2e4#diff-a2fd3d05a3b0a72438d0399e19c04469R152 ever worked then? | |
| 17:27:06 | mriedem | well that seems straight forward | |
| 17:28:09 | jaypipes | mriedem: sorry, I mean how the nova side didn't break when that was merged... | |
| 17:28:24 | mriedem | you mean when vif_name didn't exist in VIFHostUser? | |
| 17:28:38 | mriedem | i assume because it's not a registered field so the obj_to_primitive() ignored the field | |
| 17:28:42 | mriedem | so it wasn't in the primitive | |
| 17:28:47 | mriedem | you can set random attributes on versioned objects | |
| 17:28:58 | dansmith | correct | |
| 17:29:06 | mriedem | but the only thing that goes into the primitive is the fields | |
| 17:29:17 | mriedem | which in VIFHostUser 1.0 when that test was written didn't have a vif_name field | |
| 17:29:24 | jaypipes | that are in the manifest for that version, yes. | |
| 17:29:24 | mriedem | so it wouldn't be in the primitive and the nova test passed | |
| 17:29:47 | mriedem | unless i'm mistaken there isn't a manifest used in any of these tests | |
| 17:33:35 | mriedem | i think i have an easier fix than what i was trying | |
| 17:33:41 | jaypipes | mriedem: so I'm looking at that output in the console log from the unit test failure. really weird that the actual object has a version of 1.1 but doesn't include the vif_name field... | |
| 17:34:14 | jaypipes | mriedem: I mean, version 1.1 added the vif_name field and nothing else, no? so if it knows of the 1.1 object version, there should be a vif_name field. | |
| 17:34:32 | mriedem | jaypipes: right | |
| 17:34:38 | mriedem | i don't get that at all | |
| 17:35:11 | mriedem | unless it's somehow thinking it needs to backport to 1.0 for some reason | |
| 17:35:18 | mriedem | but i don't see anything telling it to do that | |
| 17:38:57 | openstackgerrit | Matt Riedemann proposed openstack/nova: Make unit tests work with os-vif 1.4.0 https://review.openstack.org/419558 | |
| 17:39:00 | mriedem | so ^ should fix the nova test, but i'm kind of worried about what's actually going on on the os-vif side | |
| 17:40:59 | openstackgerrit | OpenStack Proposal Bot proposed openstack/nova: Updated from global requirements https://review.openstack.org/415978 | |
| 17:41:25 | jaypipes | mriedem: will try to look into this further in a bit. have meetings currently.. | |
| 17:41:35 | mriedem | ok, i'm going to get some lunch | |
| 17:54:38 | armax | mriedem: hi | |
| 17:54:47 | armax | mriedem: do you happen to know if these types of errors are expected? | |
| 17:54:49 | armax | http://logs.openstack.org/08/418108/4/gate/gate-tempest-dsvm-neutron-src-neutron-lib-ubuntu-xenial/dafcfca/logs/screen-n-cpu.txt.gz?level=TRACE#_2017-01-12_16_59_40_818 | |
| 17:55:06 | armax | or maybe jaypipes? | |
| 17:56:27 | dansmith | armax: they are early in the run yeah | |