| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-09-30 | |||
| 17:46:12 | mriedem | if the cell that the instance is in is down, the host_status likely doesn't matter | |
| 17:46:16 | mriedem | you can't do anything with that instance | |
| 17:46:23 | mriedem | except maybe delete it | |
| 17:47:13 | mriedem | the whole point with 2.69 is return a minimal set of stuff based on what's in the API DB for the instance | |
| 17:47:24 | mriedem | not to return everything we possibly can | |
| 17:47:57 | mriedem | e.g. we could also proxy to cinder to get attached volume info but we're not going to do that (like the neutron api proxy call to get security groups) | |
| 17:48:49 | mriedem | gmann: for host_status this method won't work really https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/compute/api.py#L4881 | |
| 17:48:57 | gmann | yeah, it would not hurt to return. only difference will be GET and GET details response. Not sure is it worth to fix though. | |
| 17:49:11 | mriedem | instance.host wouldn't be set so at best we'd be returning NONE which is potentially not accurate - UNKNOWN would be more appropriate | |
| 17:49:29 | mriedem | if you're using 2.69+ and getting a repsonse from a down cell, there are already going to be a lot of differences | |
| 17:49:37 | mriedem | for which you need to account client-side | |
| 17:50:02 | mriedem | https://docs.openstack.org/api-guide/compute/down_cells.html gives the details on the fields that are returned | |
| 17:52:34 | sean-k-mooney | aspiers: commented on https://review.opendev.org/#/c/684825/4 over all this address the reported bug but it misses another edgecase where qemu virtio channeles are not handeled | |
| 17:53:09 | gmann | i see. then let's include in sample files as it is returned. | |
| 17:54:50 | mriedem | gmann: sorry, what is returned? | |
| 17:55:13 | mriedem | host_status nor security_groups are returned for GET /servers/{server_id} when the cell is down | |
| 17:55:51 | mriedem | show and detail are different in the down cell case b/c in the detail case we won't even get to https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/api/openstack/compute/views/servers.py#L146 because we will have already filtered out the instances from the down cells | |
| 17:55:57 | gmann | mriedem: yeah but 'security_groups' are returned in GET /servers/details case | |
| 17:56:10 | mriedem | not if the instance is in a down cell | |
| 17:56:16 | gmann | mriedem: due to this - https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/api/openstack/compute/views/servers.py#L410 | |
| 17:56:30 | mriedem | gmann: you will not get there with an instance from a down cell | |
| 17:56:37 | mriedem | the multi-cell instance lister code will filter out those results | |
| 17:56:45 | gmann | because for detail case it is added after show method return | |
| 17:57:11 | mriedem | ... | |
| 17:57:17 | mriedem | again, | |
| 17:57:28 | mriedem | GET /servers/detail will filter out instances from down cells | |
| 17:57:35 | mriedem | so we will not get to https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/api/openstack/compute/views/servers.py#L410 for instances from down cells | |
| 17:57:38 | mriedem | so i don't see the problem | |
| 17:58:14 | mriedem | oh i think i see | |
| 17:58:24 | mriedem | https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/api/openstack/compute/views/servers.py#L396 | |
| 17:58:27 | mriedem | self._list_view(self.show | |
| 17:58:29 | mriedem | but still, | |
| 17:58:39 | mriedem | instances from a down cell won't get that far | |
| 17:58:47 | mriedem | gmann: are you just basing this on code inspection? | |
| 17:59:30 | gmann | mriedem: this is from tests which I am not sure does actual down cell handling - https://review.opendev.org/#/c/684335/5/doc/api_samples/servers/v2.69/servers-details-resp.json | |
| 17:59:56 | gmann | so instance from down-cell will be there in GET detail case or not | |
| 18:00:08 | mriedem | will not | |
| 18:00:11 | gmann | *so not sure if instance | |
| 18:00:13 | gmann | ok | |
| 18:00:15 | mriedem | compute API get_all will filter those out | |
| 18:00:49 | mriedem | you would need to follow this thread https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/compute/api.py#L2760 | |
| 18:02:54 | gmann | but cell-down-support will be true for > 2.69 - https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/api/openstack/compute/servers.py#L329 | |
| 18:03:24 | gmann | then it will include the instances form down cell also | |
| 18:03:29 | mriedem | no | |
| 18:03:31 | mriedem | that's not what that means | |
| 18:03:39 | mriedem | you need to look at the InstanceLister code | |
| 18:03:45 | aspiers | sean-k-mooney: I've replied and emailed the SEV gurus to ask them | |
| 18:03:53 | aspiers | sean-k-mooney: I would prefer to deal with that in a follow-up though | |
| 18:04:14 | aspiers | especially considering we don't actually know for sure yet it's an issue | |
| 18:04:32 | sean-k-mooney | yep we could | |
| 18:04:56 | sean-k-mooney | the code as written should be correct and adress the current bug | |
| 18:05:09 | mriedem | gmann: in here https://github.com/openstack/nova/blob/961c2945491ebcea3cf1cb175a06d057155aa5a5/nova/compute/multi_cell_list.py#L414 | |
| 18:05:17 | sean-k-mooney | but i think we should file a bug for the qemu-channel too | |
| 18:05:42 | sean-k-mooney | aspiers: if ye file a bug for it im +1 i just dont want to loose track of it | |
| 18:05:57 | sean-k-mooney | aspiers: we can always close it as invalid if its not required | |
| 18:06:17 | sean-k-mooney | aspiers: did ye try to boot a vm with a spice console and sev? | |
| 18:06:19 | aspiers | sean-k-mooney: I'll wait until the gurus respond, they're normally very fast and that can potentially save me the effort of filing | |
| 18:06:26 | aspiers | sean-k-mooney: yes I booted with spice fine | |
| 18:06:37 | aspiers | or at least I'm pretty sure | |
| 18:06:46 | aspiers | I tried a lot of different combos, can't remember all the details | |
| 18:07:07 | aspiers | definitely saw one minor virtio device without iommu | |
| 18:07:10 | aspiers | and it didn't crash | |
| 18:07:39 | aspiers | in fact I think I checked about that with our guru and he said don't worry about it... think it was mouse or USB input of some kind | |
| 18:09:17 | aspiers | heading off now o/ | |
| 18:09:26 | sean-k-mooney | aspiers: its used for spices usb fowradign support that allows usb devices to be hotpluged at runtime | |
| 18:09:41 | sean-k-mooney | without requireing libvirt to modify the xml | |
| 18:09:57 | sean-k-mooney | i belive it also allows spcie to do remote hotpug | |
| 18:10:22 | sean-k-mooney | e.g. a local usb to a remove vm like RDP does with drives and printers | |
| 18:15:50 | gmann | mriedem: thanks. that param in multi cell control only exception or skip to prepare the minimum response in APi view. | |
| 18:18:44 | gmann | we need to mock the same in sample tests also. | |
| 18:21:28 | mriedem | gmann_afk: ok. there are samples for 2.69 which use a down cell fixture so maybe something is just missing from that, idk. | |
| 18:56:41 | openstack | Launchpad bug 1781286 in OpenStack Compute (nova) "CantStartEngineError in cell conductor during reschedule - get_host_availability_zone up-call" [Medium,Triaged] | |
| 18:56:41 | mriedem | dansmith: maybe we should finally fix this :) https://bugs.launchpad.net/nova/+bug/1781286 | |
| 18:57:03 | mriedem | i think it's just a matter of shoving the AZ into the Selection object that we pass around in conductor | |
| 18:58:05 | mriedem | tricky thing is functional testing since we don't have a great way to poison conductor on a reschedule to not hit the API DB | |
| 18:58:39 | dansmith | ack | |
| 18:59:01 | dansmith | mriedem: in your reply you said cern is running without a superconductor.. you just mean their cell conductors have api creds right? | |
| 18:59:13 | mriedem | yeah | |
| 18:59:16 | mriedem | but, | |
| 18:59:28 | mriedem | i don't think they make a distinction between a top and cell level conductor | |
| 18:59:30 | dansmith | because unless I'm missing something, you can't not have superconductors, as you need something listening on the conductor topic that isn't going to be confused for cell traffic | |
| 19:00:18 | dansmith | I guess you could have your apis set to penalize one cell's conductors to do the super work, if that made sense in your topology (i.e. one big cell and a bunch of smaller ones or something) | |
| 19:00:19 | mriedem | hmm, i just assumed they were doing whatever devstack does for singleconductor | |
| 19:00:25 | mriedem | which still has cell0 and cell1 | |
| 19:00:35 | mriedem | right, that's what i'm assuming cern does | |
| 19:00:43 | dansmith | well, if you do, then cell1 ends up doing all the work for cell2 for example | |
| 19:00:45 | mriedem | or just a handful of big conductor | |
| 19:00:57 | mriedem | we could ask them but no one in channel | |
| 19:01:21 | dansmith | for a deployment tool, they'd have to have some way of letting you pick which cell should be burdened with the extra work | |
| 19:01:25 | dansmith | which seems less than ideal to me | |
| 19:03:15 | mriedem | https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/convert-consoles-to-objects.html | |
| 19:03:15 | mriedem | as for the console proxy auth stuff, | |
| 19:03:25 | mriedem | "instead we will resolve the cell database issue by running console proxies per cell instead of global to a deployment, such that the cell database is local to the console proxy" | |
| 19:03:30 | mriedem | i couldn't find that in our docs | |
| 19:03:35 | mriedem | which seems...bad | |
| 19:03:46 | mriedem | like it should be in https://docs.openstack.org/nova/latest/user/cellsv2-layout.html | |
| 19:03:47 | mriedem | melwitt: ^? | |
| 19:03:55 | mriedem | did the console proxy per cell thing get into the docs? | |
| 19:04:19 | dansmith | yeah, I couldn't either, which is why I punted to her | |
| 19:04:39 | mriedem | nothing here either https://docs.openstack.org/nova/latest/admin/remote-console-access.html | |