| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-06-07 | |||
| 14:37:38 | mriedem | i was going to say we don't need a release note for a virt driver interface change, | |
| 14:37:42 | mriedem | but if we're backporting... | |
| 14:38:17 | mriedem | we did this recently for an ironic driver related fix and handled a TypeError in the backportable version and removed it in a follow up on master | |
| 14:39:04 | mriedem | https://github.com/openstack/nova/blob/stable/rocky/nova/compute/manager.py#L7648 | |
| 14:39:13 | mriedem | given that, we may want to follow the same pattern here | |
| 14:39:29 | mriedem | it is admittedly bending over backward for out of tree drivers which is being exceedingly nice | |
| 14:40:19 | artom | Wait, won't that leave vm_instance unset and blow up later? | |
| 14:40:52 | artom | Oh, actually no. | |
| 14:41:15 | artom | vm_power_state will be unset, but it's only used in an if | |
| 14:41:35 | artom | OK, I'll do something similar when I backport | |
| 14:41:39 | mriedem | for your change it would mean adding a try/except TypeError around the call to finish_revert_migration and if we get a TypeError, call again without the vifs_already_plugged kwarg | |
| 14:41:51 | mriedem | when you backport? if we do this, you'd do it on master, | |
| 14:41:57 | mriedem | and then follow up with a patch to remove that handling | |
| 14:42:06 | mriedem | otherwise your backport has new extra logic in it which sucks to review | |
| 14:42:25 | artom | Oh yeah *facepalm* | |
| 14:42:44 | artom | Why remove on master though? | |
| 14:43:11 | artom | That same method signature TypeError thing can also happen with oot drivers on master, no? | |
| 14:43:16 | artom | If they're really slow to update | |
| 14:44:54 | sean-k-mooney | artom: we have customers still running kilo | |
| 14:45:14 | sean-k-mooney | artom: i assume those customers are also slow to update there out of tree stuff | |
| 14:45:27 | artom | I doubt any of our customer have oot drivers :) | |
| 14:45:37 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Stop passing 'kwargs' to 'rebuild_instance' https://review.opendev.org/651312 | |
| 14:45:38 | openstackgerrit | Stephen Finucane proposed openstack/nova master: filters: Stop handling cells v1 https://review.opendev.org/651314 | |
| 14:45:38 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Stop passing 'delete_type' to 'terminate_instance' https://review.opendev.org/651313 | |
| 14:45:39 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Add reno for removed cells v1 policies https://review.opendev.org/662031 | |
| 14:45:39 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Remove nova.compute.*API() shims https://review.opendev.org/660527 | |
| 14:45:40 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Ensure controllers all call super https://review.opendev.org/660950 | |
| 14:45:40 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Remove 'InstanceUnknownCell' exception https://review.opendev.org/662411 | |
| 14:46:04 | sean-k-mooney | well not any that we support in anycase | |
| 14:47:33 | efried | I know for sure PowerVM oot driver is in production for real customers | |
| 14:48:10 | efried | if you change the virt driver interface on stable, they'll need to patch. | |
| 14:48:10 | bauzas | artom: cool with me | |
| 14:48:29 | artom | efried, right, I'm sure they exist, just most likely not among our customers | |
| 14:48:42 | mriedem | artom: with your upstream hat on, you shouldn't care about your downstream customers and OOT issues | |
| 14:49:02 | mriedem | iow, saying "our customers won't care" isn't a valid reason to not do it | |
| 14:49:11 | efried | artom: "our" meaning RH? | |
| 14:49:18 | mriedem | the upstream argument would be, "oot? f'em" | |
| 14:49:23 | mriedem | efried: yes | |
| 14:50:01 | efried | I don't know what qualifies as a RH "customer", but the products that are based on the oot PowerVM driver are packaged as some form of RH distribution. | |
| 14:50:15 | efried | so whoever's using them is a RH "customer" in some capacity. | |
| 14:50:15 | bauzas | mriedem: okay, I was thinking we could be good citizens and notify OOT maintainers, like asked in https://review.opendev.org/#/c/589085/ | |
| 14:50:40 | bauzas | anyway, I need to leave | |
| 14:51:30 | stephenfin | Who's a good person to review resize flow bugfixes? https://review.opendev.org/#/c/662522/ | |
| 14:52:10 | mriedem | stephenfin: i want to say alex_xu already had a bug / patch for that | |
| 14:52:15 | mriedem | but you'd have to ask him | |
| 14:52:36 | mriedem | stephenfin: gibi: i changed those notification sample resize reschedule tests to move the patching out of the side effect method, the diff is in here https://review.opendev.org/#/c/660774/4/nova/tests/functional/notification_sample_tests/test_instance.py | |
| 14:52:38 | artom | mriedem, efried, yeah, I meant our = RH, but... I'm saying I'll do the nice things for oot drivers in my patch, as just replying to sean-k-mooney that RH customers are most likely *not* among those affected | |
| 14:52:47 | mriedem | it's not a ton better, but it's different so see what you think | |
| 14:54:27 | mriedem | https://review.opendev.org/#/c/620874/ | |
| 14:55:27 | mriedem | stephenfin: -1 on your fix for the same reason i -1'ed alex_xu's change | |
| 14:56:00 | mriedem | sean-k-mooney: heh you even said, "this is a provisional +1 as i think this is correct assumeing we confirm the request_spec is not saved in its modifed form." | |
| 14:56:15 | mriedem | dangerous to +1 before you know that to be true | |
| 14:57:35 | sean-k-mooney | mriedem: i suspected it was true because we had whitebox test that were passing that implied the request spec was updated correctly on compute node but yes you are right i should have checked it end ot end first before +1 | |
| 14:57:52 | stephenfin | mriedem: Yeah, we were trying to figure out if it was saved anywhere but I haven't been able to trace a save on the request_spec anywhere | |
| 14:58:05 | stephenfin | Is there any reason we need to persist the request_spec on the object, tbh? | |
| 14:58:07 | mriedem | it's very clearly saved in the conductor | |
| 14:58:09 | stephenfin | *numa_topology | |
| 14:58:46 | mriedem | https://github.com/openstack/nova/blob/master/nova/conductor/manager.py#L367 | |
| 14:58:56 | mriedem | ^ is where i spend a good deal of my time fixing regressions | |
| 14:59:16 | mriedem | https://review.opendev.org/#/q/topic:bug/1669054+(status:open+OR+status:merged) | |
| 14:59:49 | mriedem | https://review.opendev.org/#/q/topic:bug/1830747+(status:open+OR+status:merged) | |
| 14:59:54 | stephenfin | I saw that, but that's only for cold migrations? | |
| 15:00:04 | mriedem | resize and cold migrate are the same flow stephen | |
| 15:00:20 | stephenfin | oh yeah | |
| 15:00:22 | sean-k-mooney | mriedem: so my original asstetion that we should use the temporay mutation context manager or somthing similar is proably correct? | |
| 15:01:06 | mriedem | sean-k-mooney: correct you're right on the money here https://review.opendev.org/#/c/662522/1/nova/compute/api.py@3562 | |
| 15:01:59 | mriedem | right on the MOONEY | |
| 15:02:00 | mriedem | get it?! | |
| 15:02:28 | sean-k-mooney | hehe i should frame that and put it on my wall | |
| 15:02:44 | mriedem | get a bad ass trucker hate made out of it | |
| 15:02:49 | sean-k-mooney | "mriedem: said i was right about somthing" :) | |
| 15:02:59 | mriedem | you're right about lots of things | |
| 15:04:01 | sean-k-mooney | :) ok so it should be a fairly simple fix so are you ok to proceed with stephens version or alex's | |
| 15:04:27 | mriedem | they are both broken | |
| 15:04:29 | mriedem | equally | |
| 15:04:43 | mriedem | i've duplicated stephen's bug against alex's since alex's came first, | |
| 15:04:48 | mriedem | but alex seems to have abandoned his change effectively | |
| 15:05:05 | mriedem | by "simple fix" you mean shove the new numa topology into the migration contexT? | |
| 15:05:48 | mriedem | i'm not sure we'd need to do that if we can, on revert, build the old numa topology from the old flavor that is in the migration context before we drop the migration context | |
| 15:08:43 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Remove 'ComputeManager._reschedule' https://review.opendev.org/660774 | |
| 15:08:49 | mriedem | gibi: stephenfin: ^ updated i'll +W | |
| 15:09:08 | sean-k-mooney | by simpel fix i ment we jsut need to reset the change state on the field so that it does not get saved when the condoctor calls save. | |
| 15:09:39 | gibi | mriedem: +2, thanks | |
| 15:10:24 | mriedem | sean-k-mooney: but we actually do need to persist the new numa topology on the request spec for any subsequent move operations | |
| 15:10:58 | sean-k-mooney | mriedem: yes but we update it on the compute host | |
| 15:10:59 | mriedem | otherwise i can (1) create my server with flavor1 and numa1, (2) resize to flavor2/numa2, confirm, (3) cold migrate and now i'm scheduling with flavor1's numa1 | |
| 15:11:06 | mriedem | sean-k-mooney: the request spec? | |
| 15:11:15 | mriedem | that would be an up-call... | |
| 15:11:25 | mriedem | that also doesn't solve your revert problem | |
| 15:11:58 | sean-k-mooney | ya we i think recalualate the numa toplogy in the driver and store it in the ... instance not he request spec never mind | |
| 15:12:24 | sean-k-mooney | so ya we need to actuly save it and then revert it | |
| 15:12:29 | stephenfin | sean-k-mooney: Definitely? I know we used to mess with it in the filters https://github.com/openstack/nova/blob/master/nova/scheduler/filters/numa_topology_filter.py#L61-L68 | |
| 15:15:06 | sean-k-mooney | well see the fact the numa_fit_instance_to_host fucntion modifes the request sepc is what made me suspect this would get updated by the compute node if we booted sucessfuly | |
| 15:15:24 | sean-k-mooney | but honestly we need 1 trace teh code and two test it locally to confirm | |
| 15:15:27 | stephenfin | We probably don't want to persist that change though, in any case | |
| 15:16:32 | sean-k-mooney | proably. the compute node really should not need to modify the request_spec | |
| 15:16:50 | sean-k-mooney | well in this instance | |
| 15:16:51 | mriedem | the compute service should never be saving changes to the RequestSpec, ever, since it's an up-call to the API DB | |
| 15:16:57 | mriedem | dansmith: agree with me here? ^ | |
| 15:17:24 | mriedem | stephenfin: as i explained above, the RequestSpec.numa_topology is used in the scheduler so yes it needs to be persisted for subsequent move operations, | |