| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-03-19 | |||
| 20:27:15 | mriedem | binding host and status changes on the port in there | |
| 20:28:25 | mriedem | which according to this: https://github.com/openstack/neutron/blob/f2dced777acb7d87dc7048c3efec59dadf37930d/neutron/notifiers/nova.py#L186 will trigger a network-vif-unplugged event | |
| 20:29:39 | sean-k-mooney2 | right so looking at that ports binding_details its an ovs vif with ovs_hybrid_plug": true so os-vif will plug the vif on the destination ovs during pre livemigrate and neutron will emit the vif plugged events as it wires them up | |
| 20:30:01 | mnaser | does anyone know if there's some sort of variable you can use in docs to output the current version/release | |
| 20:30:11 | mnaser | reason - https://docs.openstack.org/nova/queens/cli/nova-manage.html -- this doc and many others have old versions listed | |
| 20:30:21 | mnaser | i can update it manually but it'll probably be forgotten again :> | |
| 20:31:34 | mriedem | mnaser: https://review.openstack.org/#/c/553903/ | |
| 20:32:45 | mnaser | mriedem: oh well there you go, that's a solution | |
| 20:33:58 | sean-k-mooney2 | mriedem: ok so the vif plugged event is coming from the pre livemigrate when os-vif adds the port to ovs and the unplug event is coming form activateing the binding on the destenation host. is that the order it happens in | |
| 20:35:14 | openstackgerrit | Merged openstack/nova master: Don't filter out sibling sets with one core https://review.openstack.org/537361 | |
| 20:37:11 | mriedem | sean-k-mooney2: yes i think so, | |
| 20:37:25 | mriedem | sean-k-mooney2: i'm confused as to why neutron thinks the port is unbound though | |
| 20:37:34 | mriedem | this is on both the source and dest neutron agent | |
| 20:37:35 | mriedem | http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-agt.txt.gz#_Mar_19_14_25_08_821754 | |
| 20:37:38 | mriedem | http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/subnode-2/screen-q-agt.txt.gz#_Mar_19_14_25_09_150483 | |
| 20:38:33 | sean-k-mooney2 | subnode-2 is the source node correct | |
| 20:38:44 | mriedem | yes | |
| 20:38:59 | sean-k-mooney2 | this is where the vif is pulled on the destination in prelivemigrate http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-n-cpu.txt.gz#_Mar_19_14_25_03_105245 | |
| 20:41:35 | mriedem | this is where the source n-cpu changes the port binding host_id to the dest host http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/subnode-2/screen-n-cpu.txt.gz#_Mar_19_14_25_06_838681 | |
| 20:41:44 | mriedem | in q-svc, i see this http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-svc.txt.gz#_Mar_19_14_25_06_991106 | |
| 20:41:52 | mriedem | Device cd0afcf3-c654-488e-b578-6d3c45f3a5a5 not bound to the agent host ubuntu-xenial-rax-dfw-0003055550 | |
| 20:42:09 | mriedem | so i guess that's why the vif type is 'unbound'? | |
| 20:42:22 | mriedem | but i'm not sure why that is because we plugged the vif on the dest host before all that | |
| 20:48:04 | sean-k-mooney2 | well this is where we plug it on the destination in the q-agt log http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-agt.txt.gz#_Mar_19_14_25_03_126952 | |
| 20:49:08 | sean-k-mooney2 | and then right after it updates the vif_type to unbound http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/screen-q-agt.txt.gz#_Mar_19_14_25_04_008234 | |
| 20:49:50 | openstackgerrit | Merged openstack/nova master: Ensure emulator threads are always calculated https://review.openstack.org/537363 | |
| 20:50:13 | openstackgerrit | Merged openstack/nova master: [libvirt] Add _get_numa_memnode() https://review.openstack.org/529906 | |
| 20:50:41 | mriedem | sean-k-mooney2: hmm yeah wtf | |
| 20:50:46 | sean-k-mooney2 | so its the neutron agent on the destination that is seting the status to down and vif_type to unbound. | |
| 20:51:25 | sean-k-mooney2 | it kind of makes sense. at this point the vif is still bound on the host and we have not activated the vif on the dest but we just plugged it | |
| 20:51:29 | mriedem | this is all before nova hits the lifecycle post-copy event and switches the port binding, so presumably this already all happens today during live migration | |
| 20:51:57 | openstackgerrit | Ed Leafe proposed openstack/nova master: Address issues raised in adding member_of to GET /a-c https://review.openstack.org/554357 | |
| 20:51:59 | edleafe | efried: ^^ gift-wrapped just for you | |
| 20:52:58 | sean-k-mooney2 | mriedem: do we do the vif plugging in pre_livemigrate today or is it down after we bind the port on the destination after livemigration completes | |
| 20:53:34 | mriedem | the dest host plugs the vif in pre_live_migration today | |
| 20:53:55 | mriedem | source rpc calls to dest pre_live_migration, and then once that rpc call returns, the source starts live migrating the guest in the hypervisor | |
| 20:54:03 | sean-k-mooney2 | ok so ya we should be seeing the same bevavior. | |
| 20:54:09 | mriedem | this was part of the thing where the source host needs to wait for the vif plugged event from the dest | |
| 20:54:23 | mriedem | before it starts transferring the guest | |
| 20:54:30 | mriedem | i haven't coded that part up yet | |
| 20:55:15 | mriedem | for all i know, given https://review.openstack.org/#/c/553035/ - can we even reliably wait for vif-plugged on the source if the host binding hasn't changed? | |
| 20:55:28 | sean-k-mooney2 | when you call self.network_api.migrate_instance_finish(context, instance,...) does that activate the port binding on the dest | |
| 20:55:30 | mriedem | or will opendaylight never send a vif-plugged event in that case? | |
| 20:55:50 | mriedem | sean-k-mooney2: it switches the binding host_id yeah, sec | |
| 20:56:18 | mriedem | https://github.com/openstack/nova/blob/master/nova/network/neutronv2/api.py#L2577 | |
| 20:56:27 | mriedem | in this case, that host variable is the dest host | |
| 20:56:48 | mriedem | that's what we see here http://logs.openstack.org/71/551371/6/check/legacy-tempest-dsvm-multinode-live-migration/4d466b2/logs/subnode-2/screen-n-cpu.txt.gz#_Mar_19_14_25_06_838681 | |
| 20:56:52 | mriedem | on the source host | |
| 20:57:01 | sean-k-mooney2 | mriedem: im not sure if odl will remit the event but i dont think that would be an unreasonable expectation. | |
| 20:57:40 | mriedem | sean-k-mooney2: from what i remember of the discussion leading up to https://review.openstack.org/#/c/553035/ with mnaser, ODL will only emit events for host binding changes, not vif unplug/plug | |
| 20:58:24 | mriedem | which really kind of kills us as the consumer of this workflow... | |
| 20:58:45 | sean-k-mooney2 | yes and when we activate the binding for the dest that should be considered a binding change as we update the host_id in the port bindings_details field on the port | |
| 21:00:05 | mriedem | yeah, but the plan was to not start migrating the guest in the hypervisor until the source got the event that the plug, initiated from the dest, is done | |
| 21:00:45 | _ix | Good afternoon, folks. Can anyone explain the pipeline from the fine work that's going into nova and the end repositories at say http://mirror.centos.org/centos/7/cloud/x86_64/openstack-pike/ | |
| 21:01:14 | sean-k-mooney2 | mriedem: right so we might have to start the migrate on a timeout and have the event short circute it, instead of waiting | |
| 21:01:15 | mriedem | really kind of need an admin-only field on the port to tell clients, like nova, if we can expect vif plug events or not | |
| 21:02:03 | _ix | I'm only seeing latest as 16.0.3 in that repo -- is there a different repository that you mgith be able to recommend for 16.1.0 ? | |
| 21:02:10 | mriedem | sean-k-mooney2: we could, but then anyone using ODL is going to wait up to 5 minutes for an event that's not going to come | |
| 21:02:50 | mriedem | _ix: you could try asking in #openstack-rpm-packaging | |
| 21:03:03 | sean-k-mooney2 | mriedem: ill double check the odl code. ill be back in the office tomorrow so i can try and set up an odl environment | |
| 21:03:13 | mriedem | _ix: or maybe #rdo | |
| 21:03:34 | mriedem | sean-k-mooney2: ok for now i'm just going to neuter this lifecycle event callback code that calls migrate_instance_finish | |
| 21:05:02 | sean-k-mooney2 | well we can still activate the dest binding when we get the hyperviors event that it just paused the source and is about to unpause the dest right | |
| 21:05:20 | sean-k-mooney2 | we just dont wait for the vif plugged event | |
| 21:05:52 | mriedem | two separate issues, | |
| 21:06:11 | mriedem | i'm going to neuter the first right now because it's causing this vif unbound explosion in _post_live_migrate | |
| 21:06:32 | mriedem | the latter issue is not something we're hitting right now, but was in the plan as part of this spec | |
| 21:06:52 | sean-k-mooney2 | ah ok | |
| 21:17:48 | openstackgerrit | Merged openstack/nova master: Move placement exceptions into the placement package https://review.openstack.org/549862 | |
| 21:17:51 | _ix | mriedem: Thanks for the tips. | |
| 21:27:28 | jaypipes | phew, my brain is melting today... | |
| 21:38:28 | cdent | was it the videophone jaypipes ? | |
| 21:40:14 | edleafe | efried: ugh - I had all those changes, and then rebased poorly after the original member_of patch merged. Fixing... | |
| 21:41:01 | efried | edleafe: Here to keep you honest. I feel your rebase pain, homey. | |
| 21:42:02 | edleafe | efried: heh, trying to keep things straight while half-paying attention to meetings | |
| 21:45:58 | cdent | efried: "I have looked at this." beyond that and the typos, do you think I'm on the right track? | |
| 21:46:30 | efried | cdent: The unedited version was something like, "I have looked at this. I have no idea what I'm looking at, so I am abstaining from voting." | |
| 21:46:48 | cdent | ah, that makes a bit more sense | |
| 21:47:19 | efried | cdent: "...and the time it would take me to figure out what I'm looking at doesn't fit in my current budget (still ploughing through vacation backlog)." | |
| 21:47:42 | cdent | if/when you surface from that and you want a tour, let me know | |
| 21:48:11 | cdent | thanks for looking in any case, I'm always glad to have your proofing | |
| 22:08:13 | edleafe | efried: let | |
| 22:08:17 | edleafe | oops | |
| 22:08:23 | openstackgerrit | Ed Leafe proposed openstack/nova master: Address issues raised in adding member_of to GET /a-c https://review.openstack.org/554357 | |
| 22:08:32 | edleafe | efried: let's try this again ^^ | |
| 22:08:55 | efried | ack | |
| 22:09:40 | jaypipes | cdent: nah, trying to fix the nested providers alloc candidates stuff | |
| 22:19:08 | efried | mriedem: 1.19 was for bp placement-aggregate-generation. Gerrit likes to overwrite the topic for all patches when submitting a series, which is how 1.19 ended up in the whiteboard for https://blueprints.launchpad.net/nova/+spec/generation-from-create-provider. FTFY. | |
| 22:22:38 | efried | mriedem: You can mark https://blueprints.launchpad.net/nova/+spec/placement-aggregate-generation done too. | |
| 22:22:41 | mriedem | melwitt: totally random but i was just doing some blame game and came across https://review.openstack.org/#/c/377093/1/nova/rpc.py | |
| 22:22:55 | mriedem | melwitt: ever noticed that RequestContext(overwrite) kwarg is not used at all in that patch? | |
| 22:23:11 | mriedem | https://review.openstack.org/#/c/377093/1/nova/context.py@72 | |
| 22:24:19 | mriedem | efried: done | |
| 22:24:25 | efried | thx | |
| 22:25:31 | melwitt | mriedem: yeah, it's used in the base context class from oslo https://github.com/openstack/oslo.context/blob/a8d86df/oslo_context/context.py#L225 | |
| 22:26:22 | mriedem | oh i see | |
| 22:26:41 | melwitt | it's kind of unclear though, being lumped into **kwargs like that | |
| 22:26:47 | mriedem | have been trying to figure out wtf periodic tasks are running with a request id which is the same request id i'm tracking for an instance create operation | |
| 22:27:41 | melwitt | ah, okay. I'd like to know how that happens too | |
| 22:27:58 | mriedem | well, when the periodics run, they call get_admin_context | |