Earlier  
Posted Nick Remark
#openstack-nova - 2019-07-23
17:46:38 efried mriedem: Yeah, no doubt it's a useful test, I just wasn't sure if it needed to block artom's patch, which is closer to mergeable.
17:46:38 mriedem i have heard "oh for pete's sakes" from this old woman in a hospital waiting room at least a few times
17:46:44 mriedem and "thank you kindly" from an old man
17:46:51 mriedem the muzak, it's.....killing me
17:47:16 mriedem efried: it's not needed to block his patch, he rebased it though
17:47:19 mriedem i'm completely innocent
17:50:55 jamesdenton hey sean-k-mooney - if you get a chance, can you take a peek at https://bugs.launchpad.net/os-vif/+bug/1837252?
17:50:56 openstack Launchpad bug 1837252 in neutron "IFLA_BR_AGEING_TIME of 0 causes flooding across bridges" [Undecided,Incomplete]
17:52:07 artom efried, yeah, I don't mind being on top, it keeps me honest
17:52:22 efried ight, np
17:52:33 artom efried, that being said, if we can use that as an excuse to marshal attention to mriedem's patch, I'd be cool with that ;)
17:52:57 efried that has more or less happened, viz. this conversation.
17:53:05 artom #winning
17:59:03 sean-k-mooney jamesdenton: yes ill take a look now just finishing a patch
17:59:15 jamesdenton great, thank you!
18:00:45 sean-k-mooney jamesdenton: as far as i am aware the aging behavior is quite old. we recently ported it to use pyroute two to set it instead of brctl but i dont think we change the behaivor in stien
18:01:01 sean-k-mooney that said we can always make this configurable.
18:01:19 sean-k-mooney ill take a look at the code and see why we orginially set this
18:03:30 aspiers hey sean-k-mooney I think found an issue
18:04:06 jamesdenton configurable could be ok. creating a bridge manually with brctl results in a 300 sec aging timer. And looking at some older environments, this appears to be the case as well. thanks for looking
18:05:00 aspiers sean-k-mooney: fakelibvirt returns capabilities for other architectures like mips
18:05:11 aspiers sean-k-mooney: but your patch doesn't provide a default machine type for those
18:05:47 aspiers so we get a few None keys in dict returned by get_domain_capabilities
18:07:27 sean-k-mooney jamesdenton: it looks like it was previously commented out https://github.com/openstack/os-vif/blob/stable/ocata/vif_plug_linux_bridge/linux_net.py#L132
18:07:59 sean-k-mooney aspiers: i know that is not an issue
18:08:08 sean-k-mooney i have mips installed locally
18:08:39 sean-k-mooney i didnt add an example for mip to force it t use the dynamic version which is used for x86_64
18:09:15 sean-k-mooney aspiers: we really should not be provideing default machine types in nova IMO, instead we should leave libvirt choose the defualt
18:10:01 jamesdenton sean-k-mooney even as recently as Rocky, it looks like. undocumented comment. love it.
18:10:46 sean-k-mooney ya so this looks like it was an unitntional change. ill see if there is a commit that warrented it.
18:11:18 sean-k-mooney jamesdenton: i know that shaid wanted to set it to 0 for a live migration edge cases at one point
18:11:35 sean-k-mooney that might be valid for ovs hybrid plug
18:11:43 sean-k-mooney but for linux bridge
18:11:55 sean-k-mooney i think we should rever back to the default
18:12:02 jamesdenton agreed.
18:15:08 jamesdenton sean-k-mooney Using common code now? See OVS https://github.com/openstack/os-vif/blob/stable/rocky/vif_plug_ovs/linux_net.py#L180 vs LXB https://github.com/openstack/os-vif/blob/stable/rocky/vif_plug_linux_bridge/linux_net.py#L148
18:15:08 sean-k-mooney jamesdenton: this was the patch that changed it originally https://github.com/openstack/os-vif/commit/fa4ff64b86e6e1b6399f7250eadbee9775c22d32#diff-f55bc78ffb4c10000bbf81b88bf68673
18:16:23 sean-k-mooney ya we are using common code now and i did ovs first so i guess we ended up with the ovs default
18:16:37 jamesdenton makes sense
18:16:45 sean-k-mooney ok ill go fix this shortly and we can get this backported
18:16:50 jamesdenton thank you
18:17:05 sean-k-mooney thanks for reporting it. ill update the bug
18:17:10 jamesdenton right on
18:17:27 aspiers sean-k-mooney: which bit of libvirt provides defaults? caps or domcaps or something else?
18:18:02 aspiers sean-k-mooney: I guess /domainCapabilities/machine ?
18:18:36 aspiers oh no, that's dependent on the API parameter
18:19:20 aspiers although I now remember that the CLI supported a default and the API didn't which was a bug they fixed after I reported it
18:19:26 aspiers amazing how much I forgot in a month :-/
18:22:13 sean-k-mooney aspiers: ya so how i have re written it we now pass none to the libvirt python bindings and libvirt interally select a machine type and we parse it from the result
18:22:28 sean-k-mooney aspiers: i can add mips and other example if you like
18:22:51 sean-k-mooney its just another contstant in the fake data file
18:24:06 sean-k-mooney aspiers: i personally think however that we might want to allow passing the arch and or machine type to the funtion have it lookup the value form libvirt if its not already cached
18:24:35 sean-k-mooney but i currently dont have a usecase where that is strictly needed
18:24:50 sean-k-mooney which is why i havent changed it
18:28:41 mriedem efried: i saw your questions on https://review.opendev.org/#/c/665138/
18:28:59 mriedem i put a bunch of notes on it - i think it's correct for a narrow window, but i'd like to see a functional test as well
18:29:12 mriedem it's basically https://review.opendev.org/#/c/641806/ but revert instead of confirm
18:35:58 efried mriedem: did you see the func test I tried to write?
18:36:22 efried https://review.opendev.org/#/c/665253/
18:36:53 efried which I suspect was totally stolen from the one you mention
18:38:32 mriedem no i didn't
18:39:08 mriedem might want to compare your test to what my scenario is in the commit message on the other patch
18:55:39 aspiers sean-k-mooney: I finally found it https://www.mail-archive.com/libvir-list@redhat.com/msg182746.html
18:55:50 aspiers https://github.com/libvirt/libvirt-python/commit/5004b4ad532ffa93ed4b62c8021eaa9210855209
18:58:09 sean-k-mooney aspiers: ah ok so we need to libvirt-python version to be bumped to 5.3
18:58:34 aspiers sean-k-mooney: http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-04-26.log.html#t2019-04-26T11:30:18
18:59:17 sean-k-mooney aspiers: ya that vaguely rings a bell
18:59:25 aspiers sean-k-mooney: IIUC the workaround was to explicitly pass None to the API
18:59:44 aspiers We don't want to introduce a dependency on newer libvirt-python unless we really have to
19:00:14 sean-k-mooney if explctily passing none works then we dont need too
19:00:25 sean-k-mooney that is what we are doing in my current patch
19:00:27 aspiers right
19:00:45 aspiers but still the nested dict gets broken
19:01:42 sean-k-mooney how so?
19:02:02 sean-k-mooney i never allow a key or value to be none in the current code
19:02:08 aspiers 'ppc': {'None': <nova.virt.libvirt.config.LibvirtConfigDomainCaps object at 0x7f243d3ec7b8>}
19:02:19 aspiers I see entries like that in the domcaps dict
19:02:24 aspiers using your patch
19:02:27 sean-k-mooney that should not happen maybe i missed something
19:02:48 aspiers there is no guarantee that machine_type is not None
19:02:55 aspiers since you removed the "or 'q35'"
19:03:07 sean-k-mooney i was depending on qemu not returing none
19:03:33 sean-k-mooney we cant just default to q35 but we can register default for as many acrhs as we care to support
19:03:33 aspiers where is it supposed to be getting the default from?
19:04:03 aspiers it's currently None for mips, mipsel, and ppc
19:04:56 sean-k-mooney https://review.opendev.org/#/c/670189/4/nova/virt/libvirt/host.py@763
19:05:09 sean-k-mooney we use the value we got back from libvirt as the key
19:05:20 aspiers back from which libvirt call?
19:05:34 sean-k-mooney getDomainCapabilities
19:05:35 aspiers getCapabilities or getDomainCapabilities?
19:06:16 aspiers OK I'll try to track it down
19:06:21 sean-k-mooney so if we dont have a defualt for the arch we call getDomainCapabilities with machine_type=None
19:07:28 aspiers right and then look at the machine type which was returned in the XML
19:07:33 sean-k-mooney then i added https://review.opendev.org/#/c/670189/4/nova/virt/libvirt/config.py@132 to parse the machine type and store it in the object
19:08:08 sean-k-mooney ya so i was assuming that there would aways be a machine type returned in the xml
19:08:21 aspiers I think there is
19:08:40 sean-k-mooney Maybe we are getting the default from https://review.opendev.org/#/c/670189/4/nova/virt/libvirt/config.py@121
19:09:24 sean-k-mooney that would cause it to be none if we did not get a machine type in the xml
19:09:40 sean-k-mooney i could just skip storing it if we get none back
19:10:18 aspiers yeah but I'm not yet convinced that's the issue

Earlier   Later