| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-03-26 | |||
| 18:01:27 | dansmith | mriedem: that text implies NoValidHost if we can't find RPs with the traits requested, which is even less obvious about why it's failing | |
| 18:01:51 | efried | mriedem: TBC, I think we agree it was a miss that this issue wasn't considered one way or another in that traits review. We're kind of post-morteming what we *should* have done there. | |
| 18:02:12 | dansmith | well, fwiw, I had been assuming what our docs say, which is placement goes first | |
| 18:02:17 | efried | s/glean RP UUIDs/glean aggregate UUIDs for those RPs/ | |
| 18:02:38 | cdent | Is there a reason we can't assume placement goes first? | |
| 18:03:05 | cdent | I mean can we decide today that's how it is going to be? | |
| 18:03:21 | dansmith | or acknowledge that we already did? :) | |
| 18:03:21 | mriedem | efried: eh? if placement 1.17 isn't available for required traits in a flavor, i think we should fail | |
| 18:03:52 | cdent | dansmith: well, sure, yeah | |
| 18:04:18 | efried | mriedem: That seems like a reasonable decision to me. I wasn't necessarily advocating for anything else, just pointing out that there are other options. | |
| 18:04:28 | efried | ableit sucky ones. | |
| 18:04:28 | dansmith | efried: BS you were too :) | |
| 18:04:48 | efried | dansmith: Well I certainly was advocating for that in the case of your patch. | |
| 18:04:49 | dansmith | <efried>Whoah. Yes, we do, every time. | |
| 18:04:52 | dansmith | ^ | |
| 18:04:56 | dansmith | heh, okay | |
| 18:05:12 | efried | dansmith: Yeah, that was before I realized we had screwed the pug on the traits one. | |
| 18:05:33 | mriedem | for the traits one, the pug needed to get laid imo | |
| 18:05:44 | mriedem | not every case is a fallback situation | |
| 18:05:53 | dansmith | right | |
| 18:05:59 | efried | I (now) agree with that. | |
| 18:06:53 | efried | But dansmith I'm still needing to be told that it won't represent a regression if we go the failure path in the agg filtering case. | |
| 18:07:22 | efried | Like, does an existing flavor in an existing cloud quit working because we made this path fail (if they don't have recent placement)? | |
| 18:07:32 | dansmith | az is per user request | |
| 18:07:41 | dansmith | nothing to do with flavor | |
| 18:07:43 | dansmith | in this case | |
| 18:07:57 | efried | same thing as far as I'm concerned. Clouds have scripts. Or orchestrators, or whatever. That expect it to work a certain way. | |
| 18:08:31 | efried | If we put a real stake in the ground about upgrading placement first, it's moot. We can rip out the existing 406 code, never have to implement it again going forward. | |
| 18:08:32 | dansmith | okay I'm not sure what you're looking for here | |
| 18:08:53 | dansmith | efried: as mriedem said, I'm not opposed to all failback code | |
| 18:09:05 | dansmith | by any means, but this one has no legit alternate path imho | |
| 18:09:06 | efried | I would love to see us say placement must always be upgraded first. I just wasn't aware that was even a possibility. | |
| 18:09:18 | dansmith | for example, | |
| 18:09:37 | dansmith | the compute code paths may be able to tolerate older or newer placement because they're mostly just massaging data into the right format, | |
| 18:09:48 | dansmith | and we changed POST (or GET) once already and meh they can handle it | |
| 18:09:58 | dansmith | but this is more than just format and it's something the scheduler is hard depending on | |
| 18:10:27 | dansmith | so, I can use 1.17 if no aggregates are required, and only request 1.21 if they are, if you think that's better, but I don't think falling back to 1.17 is a thing for this | |
| 18:10:38 | dansmith | so we'll tolerate older placement if we don't need it, | |
| 18:10:50 | dansmith | although that just means the operator says "half these requests work, wtf?" | |
| 18:11:06 | dansmith | and, I think if we're going to do any of that, we need a real grenade test where the service is left unupgraded | |
| 18:11:10 | dansmith | otherwise we have nfi if it works or not | |
| 18:11:23 | jaypipes | -1 just because efried just said "screwed the pug" | |
| 18:11:36 | efried | I was wondering when you would catch up with that. | |
| 18:12:45 | efried | dansmith: My concern is this: will there be some script "out there" that says "do this AZ thing" that works on Queens, and then when they upgrade to Rocky, that same script will no longer work IF they're downlevel placement. | |
| 18:13:10 | dansmith | efried: yeah and I don't see that as a problem | |
| 18:13:13 | efried | And if the answer is yes, are we accepting that and our response would be "go upgrade placement" | |
| 18:13:16 | dansmith | efried: if the rule is placement goes first | |
| 18:13:38 | dansmith | efried: any idea how much will break if you upgrade nova-compute and nothing else? | |
| 18:13:57 | efried | dansmith: Then w00t and let's update the docs (mandatory) and let's rip out all the fallback code (optional) and let's forget anyone ever mentioned a grenade test. | |
| 18:14:19 | efried | dansmith: And in this case, use 1.21 and be done. | |
| 18:14:38 | efried | dansmith: Although actually it'll be 1.2x whenever the list-of-tuples business is approved and written. | |
| 18:14:49 | sean-k-mooney | efried: well if you boot a vm via horizon i think it forces you to specify an availablity zone so if nova has a hard dependcy on 1.21 for AZs to work that would break horizon booted vms if you did not upgrade placement | |
| 18:14:54 | dansmith | efried: see, I don't think that's the way to go.. using 1.21 means every time I need to bump the level for g-a-c, I have to go fix all the other code in that file which is perfectly fine with 1.1 | |
| 18:15:07 | dansmith | efried: that's the whole point of microversions, as I see it.. that you don't need to do that | |
| 18:15:19 | efried | dansmith: I'm talking about using 1.2x for just this method, not for the whole file. | |
| 18:15:20 | dansmith | efried: you opt into new features (and maintenance) on a per-call basis as you need it | |
| 18:15:26 | dansmith | efried: ack, okay | |
| 18:15:49 | efried | dansmith: But I *am* saying the fallback code elsewhere in the file (two places, I think) becomes dead and can be removed. | |
| 18:15:49 | jaypipes | right, exactly. | |
| 18:16:03 | dansmith | jaypipes: who are you agreeing with? | |
| 18:16:08 | jaypipes | dansmith: you. | |
| 18:16:16 | jaypipes | "you opt in ..." | |
| 18:16:18 | dansmith | jaypipes: okay I'm totes confused about where you sit on this then ;) | |
| 18:16:23 | efried | I was agreeing with that too. So everybody agrees. | |
| 18:16:58 | jaypipes | dansmith: I guess my butt hurts from the fence. | |
| 18:18:14 | jaypipes | dansmith: on the one hand I don't want to *always* force users to upgrade placement first when it's not necessary to. on the other hand, I see the futility of operators upgrading nova-scheduler first, placement second and having a time when some requests involving AZs suddenly start failing. | |
| 18:18:56 | jaypipes | dansmith: I was referring to sitting on the fence, there... | |
| 18:19:02 | jaypipes | in case that wasn't obvious ;) | |
| 18:19:08 | dansmith | jaypipes: yeah, and I also don't think operators are at all complaining about having a clear order of services for upgrades | |
| 18:19:08 | sean-k-mooney | jaypipes: well we would only be frocing them to upgrade placement first if they need a placement feature in nova | |
| 18:19:37 | jaypipes | dansmith: ok, then I'm cool with all of this, then. :) | |
| 18:19:46 | jaypipes | carry on. | |
| 18:19:47 | dansmith | aight | |
| 18:19:56 | jaypipes | sorry for being dense. | |
| 18:20:08 | sean-k-mooney | dansmith: well from an install tool poing of view ya most installers would perfer to always have a clear order of operations even if it wasnt strictly required. | |
| 18:20:31 | efried | jaypipes: Ugh, why is maxlength for a RP name 200? (As opposed to 255, like for trait and RC?) | |
| 18:20:43 | dansmith | sean-k-mooney: in the early days of making nova upgrade smoothly, that was the #1 request.. "just tell me which order and I'll do it." | |
| 18:21:03 | jaypipes | efried: UGH. Why would you need an rp name longer than 200 characters. UGH! | |
| 18:21:31 | efried | jaypipes: Sorry, the ugh was because inconsistent with trait/RC. | |
| 18:21:39 | sean-k-mooney | dansmith: i think that is still the case although "keep it running without any downtime magically while i upgrade" may have over taken it | |
| 18:21:48 | jaypipes | efried: no idea | |
| 18:22:19 | efried | cdent: any idea? | |
| 18:23:27 | sean-k-mooney | efried: its saves you half a KB per RP? do you have a reason to have a name over 200 | |
| 18:23:51 | cdent | well, rp name came first, so I reckon it was arbitrary decision at the time and then when custom traits and resource classes came along people expressed concern about wanting to make them super long and 255 some some random compromise. AKA: I don't think there were _reasons_ as such | |
| 18:24:06 | efried | sean-k-mooney: No. I'm writing code to sanitize RP/RC/trait names and the inconsistency is gonna make me write >1 method instead of just 1. | |
| 18:24:47 | sean-k-mooney | efried: or jsut assume make 200 for all names | |
| 18:25:29 | sean-k-mooney | there is no harm in makeing it a 255 lenght however you would need a sql schema update which likely is not worth it for this allow | |
| 18:25:43 | cdent | ? | |
| 18:25:58 | melwitt | tssurya: hey, thanks for bringing up the user_id column in instance_mappings table thing. I agree it should be a separate spec to handle the "quota when cell-down" issue. I have an old spec for it that I can resurrect. my spec will depend on yours because I also need the queued_for_delete column | |
| 18:27:05 | tssurya | melwitt: okay, :) I guess we can co-ordinate on this then, I will let you know as soon as I put up a spec for it then. | |
| 18:27:27 | melwitt | tssurya: cool, thank you :) | |
| 18:27:38 | efried | cdent: Not quite. I was reviewing 520313 which has code that will wind up sending down an RP name that will fail - https://review.openstack.org/#/c/520313/23/nova/tests/unit/virt/xenapi/test_driver.py@443. Letting the API fail in this case will be worse than suboptimal, because by the time that happens, we're outside of where virt can do anything about it. | |
| 18:27:58 | efried | cdent: This isn't the first time I've seen a need for a method to "slugify" a placement identifier, so I thought I would write it. | |
| 18:28:01 | tssurya | melwitt: the only concern I have is that at the PTG, we discussed that we would not use placement and do a solution of allowing the users to create VMs if they don't have any in the down cell | |
| 18:28:07 | cdent | efried: I was teasing | |
| 18:28:12 | cdent | gentle ribbing and all that | |
| 18:28:38 | melwitt | tssurya: you mean disallowing? | |
| 18:28:38 | tssurya | melwitt: however if we are going to use placement, then this changes things i guess | |
| 18:28:47 | efried | cdent: It's a valid concern that you should check me on constantly, even though (or perhaps especially because) you and I fundamentally disagree on whether such pre-optimizations are desirable. | |
| 18:29:02 | efried | cdent: But in this case, it's more than that. | |