| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2024-07-29 | |||
| 12:46:09 | sean-k-mooney | which is why we did not add the alias field to them | |
| 12:46:21 | sean-k-mooney | now we can just do that and that will fix the current bug | |
| 12:46:45 | sean-k-mooney | we could also fix this in other ways | |
| 12:47:06 | sean-k-mooney | without a repoducer its hard to prevent a futrue regressions | |
| 12:47:21 | kashyap | Yeah, I see that bit - that we don't support detach/attach mdevs to a running domain. | |
| 12:47:38 | kashyap | I agree; repro will help here, and you've asked as much on the review | |
| 12:48:03 | sean-k-mooney | so the fact we dont supprot it is just an aside, its why we didnt think it was required when we started using the aliases | |
| 12:48:10 | sean-k-mooney | if we fix this by adding the filed | |
| 12:48:31 | sean-k-mooney | then we have a wackamole problem fo doing this for each possibel object that could be returened | |
| 12:48:52 | sean-k-mooney | if we fix this but only checking the aliase if the object has one then we fix it for all device types | |
| 12:49:28 | sean-k-mooney | in the previous case of a PF it was correct to add teh alias filed because we do supprot attaching/detaching those to a running guest | |
| 12:49:44 | sean-k-mooney | so there patch is not wrong jsut incompelte | |
| 12:50:24 | sean-k-mooney | kashyap: is this somehting your interested in fixing? | |
| 12:51:03 | sean-k-mooney | i was trying to highlight it to bauzas in case they wanted to fix it or where seeign it in there mtty serise | |
| 12:51:20 | kashyap | sean-k-mooney: I'm not sufficiantly clued into it; I was just curious based on your remark here. (Reading back your comments) | |
| 12:51:34 | kashyap | Hmm, you do raise a good point on the whack-a-mole problem of each object | |
| 12:51:50 | kashyap | Pff; I'd probably not risk to introduce new regressions at this stage, and given capacity. | |
| 12:51:56 | sean-k-mooney | ah ok, so the underliying problem is we actully woudl ideally have a new api call in libvirt | |
| 12:52:05 | kashyap | Hmm, really? | |
| 12:52:19 | kashyap | Ah, "ideally", you said. What's the current API call? | |
| 12:52:38 | sean-k-mooney | ya so ideally libvirt would have an api to get a domain device element given an alias | |
| 12:52:52 | sean-k-mooney | since it does not we get all the devices and do the filtering ourselves | |
| 12:54:25 | kashyap | Let me check on #virt (OFTC) if they're open to it | |
| 12:54:34 | sean-k-mooney | so this is where the actly bug is in nova https://github.com/openstack/nova/blob/master/nova/virt/libvirt/guest.py#L419 | |
| 12:54:53 | sean-k-mooney | dev.alias is only in some of our devices not all | |
| 12:55:14 | sean-k-mooney | so we coudl fix it in the base clase we use or we shoudl do a hasattr check before using it | |
| 12:55:40 | kashyap | Do we know a list of devices that libvirt _does_ return here? | |
| 12:56:18 | sean-k-mooney | its all devices in the domain after we parse it | |
| 12:56:25 | sean-k-mooney | https://github.com/openstack/nova/blob/master/nova/virt/libvirt/guest.py#L419-L452 | |
| 12:56:47 | kashyap | I'm looking at get_all_devices() | |
| 12:57:41 | sean-k-mooney | so we could fix this by adding alias to https://github.com/openstack/nova/blob/master/nova/virt/libvirt/config.py#L3000 | |
| 12:58:13 | sean-k-mooney | these are not really object returned form libvirt | |
| 12:58:20 | sean-k-mooney | they are our config objects | |
| 12:58:29 | sean-k-mooney | we construct them form parsing the xml | |
| 12:58:56 | sean-k-mooney | but we check the libvirt pyton binding before doing this to see if there was a fucntion we could use more directly and didnt find one at the time | |
| 12:59:24 | sean-k-mooney | what we would do ideally is just as libvirt for the singel device element based on the alias | |
| 13:00:08 | sean-k-mooney | instead of pulling the entire domain. and parsing out all the devics to try and find the specific one | |
| 13:02:16 | kashyap | Yeah, I know these (the config.py stuff) are all libvirt guest-config classes. | |
| 13:02:35 | kashyap | Maybe you want to summarize / copy paste your comment from here on the change for the record. | |
| 13:03:11 | sean-k-mooney | not really :) i could but since they have abandoned it i feel like they are nto going to work on it any more | |
| 13:03:20 | sean-k-mooney | so i wanted to see if one of use wanted to pick it up | |
| 13:03:39 | sean-k-mooney | kashyap: im expectign bauzas mtty patches to repodcue this | |
| 13:03:55 | sean-k-mooney | so as part of using mtty to test in the gate we will likely need to fix this anyway | |
| 13:03:56 | kashyap | You think so? | |
| 13:04:01 | kashyap | Got a link? | |
| 13:04:48 | sean-k-mooney | so if this is failing the way they reported it woudl cause volume detach to fail if libvirt report mdevs | |
| 13:05:03 | sean-k-mooney | so i woudl expect the volume tempest test to be failin on https://review.opendev.org/q/topic:%22mtty_support%22 | |
| 13:06:26 | sean-k-mooney | the fact it does not makes me want the repodcures even more | |
| 13:06:48 | sean-k-mooney | oh... | |
| 13:07:06 | sean-k-mooney | ok so i wonder if this only failes if you have both a vgpu and a cinder volume | |
| 13:07:11 | kashyap | Hmm | |
| 13:07:12 | sean-k-mooney | on the same vm | |
| 13:08:22 | sean-k-mooney | we dont have result anymore but it did actully fail | |
| 13:08:24 | sean-k-mooney | https://zuul.opendev.org/t/openstack/build/42a251fe1d174a2abef7016b96fe0dc4 | |
| 13:10:46 | kashyap | Ohh, so the vGPU + Cinder volume is the combo | |
| 13:14:28 | opendevreview | Merged openstack/nova stable/2024.1: Remove AMI snapshot format special case https://review.opendev.org/c/openstack/nova/+/924982 | |
| 13:21:43 | sean-k-mooney | kashyap: i think so but again they didnt provide a clear repoducer in the bug so its hard to tell exactly | |
| 13:21:50 | sean-k-mooney | but i think that has to be the case looking at the code | |
| 13:22:09 | sean-k-mooney | we are looping over the devices in the guest domain and the error is in the mdev class | |
| 13:22:21 | sean-k-mooney | so it must only be an issue when comibining both features | |
| 13:22:34 | sean-k-mooney | which would expliain why we dont see this today | |
| 13:30:59 | dansmith | sean-k-mooney: gibi: I thought we were into "written by a core, backported by a core, can be single-vote-landed by a core" on stable now | |
| 13:31:44 | sean-k-mooney | dansmith: i guess, it does not come up often | |
| 13:32:12 | sean-k-mooney | but in either case i was going to proxy your/my +2 by end of day if noone else said go for it | |
| 13:34:22 | dansmith | ack | |
| 13:45:09 | opendevreview | Rajesh Tailor proposed openstack/nova master: Fix KeyError on assisted snapshot call https://review.opendev.org/c/openstack/nova/+/900783 | |
| 13:57:06 | opendevreview | Rajesh Tailor proposed openstack/nova master: Handle InstanceExists exception for duplicate instance https://review.opendev.org/c/openstack/nova/+/860938 | |
| 14:00:39 | elodilles | sean-k-mooney: i'm OK to propose stable releases anytime & i don't have any important backport on my radar | |
| 14:04:37 | sean-k-mooney | elodilles: bauzas asked me to include https://review.opendev.org/c/openstack/nova/+/924514 and its backports | |
| 14:05:06 | sean-k-mooney | i think we can include https://review.opendev.org/c/openstack/nova/+/923689 also on 2024.1 | |
| 14:06:03 | elodilles | ACK, I'll wait for them then o/ | |
| 14:06:10 | bauzas | cool | |
| 14:07:45 | sean-k-mooney | elodilles: i have not realy looked at the older branch contet much | |
| 14:07:58 | sean-k-mooney | i do see some nice to haves so i may do some stable review today | |
| 14:08:17 | sean-k-mooney | but i dont see anythign super urgent | |
| 14:09:08 | elodilles | ACK, i'll check them too | |
| 14:34:37 | bauzas | sean-k-mooney: can you summarize the mdev issue you said ? | |
| 14:34:51 | bauzas | -ETOOMUCHCONTENTTODIGEST | |
| 14:35:35 | bauzas | fwiw, I need to resume my mtty series now that devstack supports 24.04 | |
| 14:36:58 | sean-k-mooney | bauzas: it appears that if a gues has an mdev and a cinder volume we cant detach t he cinder volume because the get_device_by_alis code cant hanel the fact that we dont have an aias field in the class that modeles the mdev device in the guest xml | |
| 14:37:10 | sean-k-mooney | i.e. you cant detach a cinder volume for a guest with a vgpu | |
| 14:37:34 | sean-k-mooney | we can fix that in the way propsoed in the patch but it missed the underly ing bug and did not include a repoducer | |
| 14:37:53 | bauzas | i see | |
| 14:38:06 | sean-k-mooney | the underlying bug is the get_device_by_alias code assumes all geust devices have an alias filed | |
| 14:38:18 | bauzas | so people need to rebuild the instance with a flavor without VGPU first before detaching | |
| 14:38:19 | sean-k-mooney | so we shoudl fix that | |
| 14:38:29 | bauzas | agreed | |
| 14:38:47 | bauzas | is this https://review.opendev.org/c/openstack/nova/+/925037 ? | |
| 14:38:49 | sean-k-mooney | bauzas: they might just need to stop the instnace | |
| 14:39:01 | sean-k-mooney | yep | |
| 14:39:13 | sean-k-mooney | that patch will work but it does not have enouch test coverage | |
| 14:39:30 | sean-k-mooney | and as i said the bug is reallly here https://github.com/openstack/nova/blob/7a7427691e0bd4818bb7a2c5f5371e0244addbbb/nova/virt/libvirt/guest.py#L419 | |
| 14:40:03 | bauzas | the real problem is that we didn't had any functest for that | |
| 14:40:06 | sean-k-mooney | that if assumes all devices in get_all_devices will have an alias field | |
| 14:40:19 | bauzas | because mdev support predates alias | |
| 14:40:24 | sean-k-mooney | yep | |
| 14:40:33 | sean-k-mooney | so ideally we woudl create a fucntional repoducer | |
| 14:40:35 | bauzas | but when we merged aliases series, we created a regression | |
| 14:40:48 | bauzas | yup | |
| 14:40:52 | bauzas | we need a functtest | |