Earlier  
Posted Nick Remark
#openstack-nova - 2018-03-19
20:27:09 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_374523
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

Earlier   Later