Earlier  
Posted Nick Remark
#openstack-nova - 2019-07-19
15:34:21 sean-k-mooney actully it look like dansmith didnt review that spec but i know we spoke to him about it
15:35:35 sean-k-mooney anyway for sriov live migration since it never worked before we have a hard check in the conductor
15:35:47 sean-k-mooney and fail if both nodes are not knew enough
15:36:13 sean-k-mooney since live migration wiht hugepages is a thing we support for ovs-dpdk we did not want to break it by blocking it
15:36:52 openstackgerrit Merged openstack/nova master: Bump the openstackdocstheme extension to 1.20 https://review.opendev.org/671694
15:37:48 alex_xu I guess the only reason, the user know they have same type machine, and the instances won't break with pinning to same pcpu
15:37:54 sean-k-mooney alex_xu: uncontidionally blocking old to new migration would be a regression.
15:38:06 alex_xu ah..
15:38:22 sean-k-mooney well if the instance is not pinned but just has hugepages we dont want to break that
15:38:33 alex_xu I see the reason now
15:38:37 artom alex_xu, yeah, I think that's explicitly called out somewhere: NUMA LM is only "guaranteed" to work if you're migrating to an "empty" identical machine, identically configured,
15:39:27 alex_xu got it
15:40:20 sean-k-mooney in the hugepage case if there are not enoguht free spawning the qemu instace fail on the dest and we abort the migration before we even pause the vm on the source
15:41:02 sean-k-mooney the same is true if the cores dont exist on the dest
15:41:22 sean-k-mooney so the only issue that is not caght by that is two vms being pinned to the same host
15:41:27 sean-k-mooney * core
15:41:48 alex_xu can we check the src and dst service version in the conductor?
15:42:14 openstackgerrit Artom Lifshitz proposed openstack/nova master: libvirt: move checking CONF.my_ip to init_host() https://review.opendev.org/671471
15:42:18 sean-k-mooney we can but why would we
15:42:22 alex_xu emm...I guess we need another param for the rpc
15:42:36 artom alex_xu, that's what I had at some point, Dan talked me out of it
15:42:53 sean-k-mooney we need the data that is pass back from can live migrate on dest
15:42:59 artom dansmith, efried ^^ (the CONF.my_ip to init_host() thing)
15:43:01 sean-k-mooney to be able to generate the updated xml
15:43:04 efried sean-k-mooney: Is https://review.opendev.org/#/c/638680/ still waiting on https://review.opendev.org/#/c/670189/ ?
15:43:45 sean-k-mooney kind of. im not changeing the public interface of the function it calls
15:44:03 sean-k-mooney but i suspect that if i chekcout that patch locally it will still expode
15:44:23 sean-k-mooney i can check that quickly.
15:46:37 efried artom: would you mind adding a teeny unit test that asserts _check_my_ip is called during init_host?
15:48:53 artom efried, ack, makes sense
15:49:25 efried artom: I recognize that a unit test for init_host as a whole is missing, and would be an appropriate add, but unrelated...
15:49:58 artom efried, hrmm, yeah, went looking, didn't find anything
15:50:04 efried yeah
15:50:08 artom So, maybe as a separate fup patch on top?
15:50:25 artom The full unit test, I mean
15:50:35 efried sure, that would be great, though I would also just not notice if it never happened
15:50:44 efried There are lots of gaps in unit test in libvirt/test_driver
15:50:49 efried lots
15:51:28 artom My thinking it, given how much I'll have to mock to just assert this one thing being called, might as well do the full thing
15:51:40 artom *is
15:51:41 sean-k-mooney efried: its not failing because my kernel does not support sev. so https://review.opendev.org/#/c/638680/27/nova/virt/libvirt/host.py@1066 prevent the call to get_domain_capablities
15:52:20 efried artom: There are other tests that call init_host but don't mock a zillion things. I didn't look too deeply into how they're doing that, but...
15:53:03 efried probably because of FakeLibvirtDriver
15:53:24 artom Ah, indeed
15:53:31 efried naw, even the ones that use real LibvirtDriver with FakeVirtAPI
15:53:39 efried so, it should be possible to do it without too much mocking.
15:54:38 sean-k-mooney if i comment out the if i get this trace back
15:54:40 sean-k-mooney http://paste.openstack.org/show/754594/
15:55:11 efried though that leads me to wonder how you're getting away with not mocking netifaces.interfaces() and .ifaddresses()
15:55:33 artom get_machines_ips gets mocked out entirely
15:55:34 efried artom: Is your test actually running netifaces.interfaces() on whatever system you're invoking it on??
15:55:47 efried yeah, I mean all the other tests that invoke init_host() :)
15:56:00 artom Oh, hah
15:56:05 artom I guess they do?
15:56:22 efried that's... not great
15:56:39 efried unpredictable results on linux, sure failure on other platforms, nah?
15:56:48 artom It's supposed to be cross-platform
15:56:50 artom But yeah
15:56:54 efried Not that I would really expect test_driver to work on another platform anyway, but...
15:57:04 sean-k-mooney artom: it should not be actully calling it however
15:57:27 efried so perhaps you need to fixture out get_machine_ips (or netifaces.interfaces) at a higher level
15:57:41 sean-k-mooney you shoudl be able to set up a mock in the setup function once
15:57:52 artom Yep
15:57:54 artom ;_:
15:58:05 artom And here I was thinking I'd get to do a pure removal patch :(
15:58:21 efried sorry artom. Your karma ran over your dogma.
15:58:51 artom Is that like my kar running over my dog, just with my ma involved?
16:00:27 efried just so
16:03:08 efried sean-k-mooney: I may need some help, or you should bring in a SME, reviewing that get_dowain_capabilities patch. kashyap?
16:05:17 sean-k-mooney sure. i could harden it more then i did but that at least fixes the orignial issue
16:05:56 sean-k-mooney im still not catching the libvirt exection if we ligitetly misconfigur the config
16:07:00 sean-k-mooney but we wont explode any more with the defaults
16:07:52 sean-k-mooney efried: do you know if aspires is still working on openstack?
16:08:08 sean-k-mooney i have not seen them involded in the sev work lately
16:08:09 efried I haven't seen him in quite a while, but I hope so.
16:08:14 efried yeah
16:08:24 openstackgerrit Artom Lifshitz proposed openstack/nova master: libvirt: move checking CONF.my_ip to init_host() https://review.opendev.org/671471
16:08:52 sean-k-mooney maybe i should add Boris Bobrov to the review too since they seam to have taken over the sev stuff
16:11:33 efried artom: That rev wfm. Just one other thing: do functional tests have the possibility of hitting netifaces now?
16:12:03 artom OK, this isn't a rabbit whole anywhere, it's the pit of hell
16:12:18 artom *hole
16:12:26 artom efried, but yeah, they do, good thought
16:12:56 artom Maybe right up in nova/test.py?
16:13:09 efried artom: do any func tests use the real libvirt driver?
16:13:14 efried if they use fake, this is n/a
16:13:30 efried no, I don't want a libvirt-specific fixture in nova/test.py
16:13:33 artom They use the fake libvirt API, but real driver IIRC, no?
16:13:53 efried (don't tell me if there are already libvirt-isms dirtying up the base class)
16:14:09 efried artom: I don't know, I'm still pretty green on all this libvirt stuff.
16:14:11 sean-k-mooney artom: i dont think so
16:14:40 sean-k-mooney the unit test in generall dont use the drivers at all
16:14:48 sean-k-mooney the functional test defualt to the fake dirver
16:14:58 sean-k-mooney execpt the function test under the libvirt folder
16:15:10 sean-k-mooney which do as you said
16:15:22 sean-k-mooney e.g. fake libvirt api + real libvirt driver
16:16:00 sean-k-mooney you could add a test in here somewhare https://github.com/openstack/nova/tree/master/nova/tests/functional/libvirt
16:16:01 artom efried, well, wait a second, we had that before, no?
16:16:20 efried had what before?
16:16:26 artom Any migration test that didn't mock out get_host_ip_addr
16:16:33 artom It ended up calling down to netifaces eventually

Earlier   Later