| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-12-12 | |||
| 14:34:26 | sean-k-mooney | we start waiting for the event just before we call plug on the interface | |
| 14:34:44 | sean-k-mooney | for some neutron backend they send that event when we call bind | |
| 14:34:58 | sean-k-mooney | i assume this is ml2/ovs however correct? | |
| 14:35:15 | sean-k-mooney | that should not hit the race but i wonde if ther i a missed event in the logs | |
| 14:35:24 | mriedem | yes ovs | |
| 14:37:32 | sean-k-mooney | mriedem: http://logs.openstack.org/46/623246/3/check/nova-multiattach/efa830b/logs/screen-n-cpu.txt.gz?#_Dec_12_00_01_07_481084 | |
| 14:37:39 | mriedem | 019494),plugin='ovs',port_profile=VIFPortProfileOpenVSwitch,preserve_on_delete=False,vif_name='tap472ab433-bc') | |
| 14:37:39 | mriedem | Dec 11 23:56:11.855811 ubuntu-xenial-inap-mtl01-0001136812 nova-compute[29399]: INFO os_vif [None req-f43f3c35-dc0b-4aa4-bfd0-4046045b315e tempest-TaggedBootDevicesTest-250467933 tempest-TaggedBootDevicesTest-250467933] Successfully plugged vif VIFOpenVSwitch(active=False,address=fa:16:3e:fb:dd:9f,bridge_name='br-int',has_traffic_filtering=True,id=472ab433-bc18-41b5-85ae-009611117b70,network=Network(4988ef3d-6a8f-477f-b0a2-29 | |
| 14:37:39 | mriedem | we plug it here | |
| 14:38:20 | mriedem | hmm wtf | |
| 14:38:39 | mriedem | Dec 11 23:55:46.981194 ubuntu-xenial-inap-mtl01-0001136812 neutron-server[20899]: DEBUG neutron.notifiers.nova [-] Sending events: [{'tag': u'472ab433-bc18-41b5-85ae-009611117b70', 'name': 'network-changed', 'server_uuid': u'18e5987e-a535-4044-84aa-dd8f023cedcc'}] {{(pid=21001) send_events /opt/stack/new/neutron/neutron/notifiers/nova.py:245}} | |
| 14:38:39 | mriedem | i also see this right before that port is plugged | |
| 14:39:31 | mriedem | sean-k-mooney: that's a different port | |
| 14:39:35 | mriedem | the unplugged event | |
| 14:39:55 | sean-k-mooney | mriedem: yes i just noticed that | |
| 14:42:23 | mriedem | asking in -neutron | |
| 14:53:58 | frickler | nova stable cores: https://review.openstack.org/619254 is waiting for a second +2, if it gets that, I can start nagging mriedem about stable releases instead ;-) | |
| 15:07:52 | jangutter | mriedem: yonks ago I saw something similar that happened if the neutron-ovsdb linkage got busted. | |
| 15:09:31 | mriedem | Dec 11 23:56:12.725010 ubuntu-xenial-inap-mtl01-0001136812 neutron-openvswitch-agent[21879]: INFO neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [None req-cc26f856-2521-411e-ae10-34ad96b7c665 None None] Port 472ab433-bc18-41b5-85ae-009611117b70 was not found on the integration bridge and will therefore not be processed | |
| 15:09:31 | mriedem | jangutter: i did see this in the neutron agent logs | |
| 15:10:35 | jangutter | mriedem: there's some extra metadata added by libvirt that links the port uuid. years ago I saw neutron triggering off of that. | |
| 15:11:13 | adrianc | sean-k-mooney: OK, so apparently on my setup i need to unbind/bind the VF, taking down the interface is not sufficient. this may be NIC vendor specific, let me know if interface down works for you OR you need to rebind the VF to flush out the MAC from the source node | |
| 15:21:36 | sean-k-mooney | adrianc: rebinding the vf will be a problem if needed | |
| 15:22:03 | sean-k-mooney | nova doen not always have permissions to do that. | |
| 15:23:01 | mriedem | hello people - easy fix to get the postgresql job working again https://review.openstack.org/#/c/619061/ | |
| 15:23:22 | mriedem | cdent: ^ since you seem to care about pg | |
| 15:23:26 | mriedem | slaweq: you too ^ | |
| 15:23:41 | adrianc | sean-k-mooney: the fix should be in libvirt imo, once the guest is not on the machine, it should properly clean-up. however for the direct SRIOV you will not have this problem | |
| 15:24:07 | cdent | mriedem: it's less care about pg, more care about not-just-mysql | |
| 15:24:10 | cdent | but yeah, looking | |
| 15:24:17 | sean-k-mooney | adrianc: well libvirt or qemu but yes one of the two shoudl notify the pf to reset the vf | |
| 15:25:05 | sean-k-mooney | adrianc: yes direct mode should work as the vf will be reset when it detached form the guest kernel and released to the host kernel | |
| 15:25:09 | jangutter | sean-k-mooney, adrianc: I think qemu does a function-level-reset on the VF when doing iommu passthrough. | |
| 15:25:27 | sean-k-mooney | jangutter: on a live migration | |
| 15:25:34 | jangutter | sean-k-mooney, adrianc: and libvirt does driver binding and unbinding. | |
| 15:25:57 | sean-k-mooney | jangutter: in the macvtap case you do not bind the diriver to vfio-pci | |
| 15:26:09 | sean-k-mooney | jangutter: you leave it bound to the host kernel driver at all times | |
| 15:26:09 | slaweq | mriedem: it is this fix which will finally fix neutron pgsql periodic job, right? | |
| 15:26:23 | jangutter | sean-k-mooney: yep, but permission-wise, libvirt could bind/unbind it as a workaround. | |
| 15:26:46 | jangutter | sean-k-mooney: and generally, you _don't_ want to do a FLR on something bound to a driver. | |
| 15:26:53 | sean-k-mooney | jangutter: it could yes but it wont today meaning we would need a new libvirt release and need to check for it in the code | |
| 15:27:16 | jangutter | sean-k-mooney: yep, tell me about it, I know all about people wanting to propagate libvirt "fixes". | |
| 15:28:01 | sean-k-mooney | i think this would be somthing that the sriov nic agent could resonalby handel too | |
| 15:28:10 | sean-k-mooney | well maybe not | |
| 15:28:15 | sean-k-mooney | that could be racy | |
| 15:29:02 | sean-k-mooney | it would have to be nova/libvirt to avoid races with other vms booting | |
| 15:29:09 | adrianc | sean-k-mooney: there is no FLR involved during detach/attach, the driver unbinds from the guest, and binds on the host whether or not it triggers an FLR is something the driver decides AFAIK | |
| 15:29:39 | jangutter | adrianc: yep, FLR is mandatory on iommu passthrough I think, but not for driver bind/unbind | |
| 15:30:32 | sean-k-mooney | well it depend on if the vf is bound to say ixgbeVf when its detach or if it stays with vfio-pci | |
| 15:30:54 | jangutter | sean-k-mooney: yeah. | |
| 15:31:59 | adrianc | would have been easier if setting VF mac address via ip link on the VF idx would have synced the mac address on the corresponding VF netdev :) | |
| 15:32:00 | sean-k-mooney | in any case however in macvtap mode we aparent dont update the driver the vf is bound to or trigger a vf reset | |
| 15:32:33 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Add python 3.7 unit and functional tox jobs https://review.openstack.org/624055 | |
| 15:32:33 | sean-k-mooney | adrianc: that silly talk why would a hardware/driver implementer ever do a thing like that :P | |
| 15:32:34 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Replace ThreadPoolExecutor with GreenThreadPoolExecutor https://review.openstack.org/624740 | |
| 15:32:39 | gibi | cdent: ^^ | |
| 15:32:48 | cdent | roger | |
| 15:33:16 | mriedem | slaweq: yeah | |
| 15:33:22 | jangutter | sean-k-mooney, adrianc: years ago we had looked at how to propagate MAC config from host to the VF and the conclusion we came to was that at the FLR is the safest way to do so. I don't think there was an async event able to propagate that info from the device to the driver without either a reset or rebind. | |
| 15:33:42 | slaweq | mriedem: thx for taking care of it :) | |
| 15:33:47 | sean-k-mooney | adrianc: speacking of ip link ther eis no way to reset it via ip tools right. | |
| 15:34:17 | jangutter | sean-k-mooney, adrianc: the only way I know to trigger an FLR is via setpci... | |
| 15:35:02 | sean-k-mooney | jangutter: i was hoping there would be a standard sysfs file we could echo too but i guess not | |
| 15:35:18 | aspiers | mriedem: if I understand the code right, the config drive disk mapping is built alongside the other disk mappings prior to instance launch (even though the config drive itself seems to be built late via post_xml_callback). so it's not hotplugged post-launch. Also I think it will either use "ide" or "virtio" bus (depending on whether iso9660 or vfat) and therefore we don't anticipate any problems with | |
| 15:35:19 | aspiers | SEV. Nevertheless we're testing to make sure | |
| 15:35:22 | jangutter | sean-k-mooney: there might be these days, though. | |
| 15:35:40 | sean-k-mooney | jangutter: it would still likely be vendor specific | |
| 15:36:15 | jangutter | sean-k-mooney: very, I believe our driver only recently could propagate MAC on rebind. Previously you _had_ to get an FLR. | |
| 15:36:20 | sean-k-mooney | adrianc: im just getting around to setting up that test env now but i will try a few different things and let you know | |
| 15:37:20 | sean-k-mooney | should i put this in the spec by the way. im inclined to say no as this is too technical/hardware specific | |
| 15:37:31 | adrianc | sean-k-mooney: ack, let me know if you can find a nicer WA | |
| 15:38:01 | adrianc | well i dont think its related to the spec, its a long existing problem IMO and not related to live-migration | |
| 15:38:19 | sean-k-mooney | we need to adress this in the code obviously but i think code commetns/dev docs | |
| 15:38:47 | sean-k-mooney | adrianc: i guess you could consider it a cold migration bug | |
| 15:38:48 | adrianc | there are additional gaps with macVtap like multiple port binding so | |
| 15:40:38 | adrianc | sean-k-mooney: it can happen also without LM being involved, easiest is to boot a VM on node A delete and boot it on node B | |
| 15:41:02 | adrianc | the mac will be reused and you hit the issue | |
| 15:41:14 | sean-k-mooney | adrianc: reusing the same neutorn port so that the mac and vlan remain the same | |
| 15:41:49 | adrianc | adrianc: yes, using the same neutron port | |
| 15:42:13 | adrianc | sean-k-mooney: ^ | |
| 15:42:22 | sean-k-mooney | ya ok that is proably ground enought to just treat this as a seperate bug and maybe backport the fix | |
| 15:43:53 | openstackgerrit | Lee Yarwood proposed openstack/nova master: libvirt: Add workaround to cleanup instance dir during evac with rbd https://review.openstack.org/618478 | |
| 15:45:41 | lyarwood | mriedem / mdbooth / melwitt ; ^ thanks again for the reviews, I appreciate just how ugly this is but hopefully this is btw but with downstream customers asking for this to be fixed back in Newton I'm being forced into a corner here tbh. | |
| 15:46:02 | lyarwood | thanks weechat-- | |
| 15:46:53 | sean-k-mooney | lyarwood: what wrong with weechat++ | |
| 15:47:53 | lyarwood | ^ the above mess, I was trying to edit the line and it decided to send it out, fun times. | |
| 16:02:27 | mriedem | melwitt: did you see my question in your spec for configurable max volumes? https://review.openstack.org/#/c/597306/1/specs/stein/approved/conf-max-attach-volumes.rst@44 | |
| 16:05:01 | melwitt | mriedem: I did, sorry. the immediate answer was "not 100% sure, need to check my notes again". it was "fun" tracing it all and I can't remember whether bfv vs attach additional end up using the same code path that leads to the limit of 26. I need to double check it in order to reply and haven't gotten to it yet | |
| 16:09:09 | mriedem | ok, but i'm assuming even if it's not the same code path, bfv would need a check somewhere for the config option to limit the number of volumes attached to an instance during spawn | |
| 16:10:21 | mriedem | it might have to be here https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L1598 | |
| 16:10:34 | mriedem | or a new driver method called from _prep_block_devices | |
| 16:10:53 | mriedem | because you don't want to create or attach more than the limit before you get to driver.spawn just to have it fail and have to roll those all back | |
| 16:20:00 | melwitt | mriedem: yeah, I guess the context is in my WIP patch for the implementation I've put the check at a lower level where all of the code paths end up https://review.openstack.org/616777 there's a default impl in compute/utils that all drivers other than libvirt use, and libvirt has its own override | |
| 16:20:36 | melwitt | I don't have any func test coverage yet to verify it all works right, so I'm in process of writing those | |
| 16:20:53 | melwitt | but if you want to take a quick look to point out anything bad that jumps out, I'd appreciate that | |
| 16:27:24 | mriedem | yeah that won't cut it for bfv | |
| 16:27:27 | mriedem | i'll leave a comment | |
| 16:28:03 | melwitt | thanks | |
| 16:38:56 | openstackgerrit | Merged openstack/nova master: Drop pre-cellsv2 compat in compute API.get() https://review.openstack.org/615347 | |
| 16:53:46 | openstackgerrit | Chris Dent proposed openstack/os-resource-classes master: Sync STANDARDS with placement/nova rc_fields https://review.openstack.org/624370 | |