| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-03-14 | |||
| 17:25:51 | sean-k-mooney | jaypipes: proably i am just skimming the scoll back now | |
| 17:26:00 | cdent | cfriesen: ah, sorry, I had misunderstood which "we" you meant :) | |
| 17:26:07 | sean-k-mooney | i was in meeting all day up until this point | |
| 17:27:02 | jaypipes | cfriesen: a single nova boot request is only handled by a single worker, no? the case you're worrying about is multiple clients calling nova boot with the same server group. | |
| 17:27:44 | jaypipes | cfriesen: as for the NUMA issues, I don't think that changing to multiple workers will make a difference in the number of retries that happen. | |
| 17:27:59 | sean-k-mooney | jaypipes: or perhaps the nova multi boot support we you say boot x instance of y flavour on network z ? | |
| 17:28:22 | jaypipes | sean-k-mooney: I don't understand how that's relevant? | |
| 17:28:39 | jaypipes | sean-k-mooney: that would be handled in a single thread. | |
| 17:29:04 | jaypipes | sean-k-mooney: the only situation cfriesen is worried about is when multiple nova boot requests involving the same server group were executed simultaneously. | |
| 17:29:12 | sean-k-mooney | jaypipes: i was wondering if that was a single boot request form the api point of view or x independet ones and a client feature | |
| 17:29:35 | jaypipes | sean-k-mooney: a single nova boot is a single thread of execution. | |
| 17:30:47 | sean-k-mooney | jaypipes: ya that makes sense. and nova boot --min 3 --max 3 --server-group... is considered a singel boot request | |
| 17:31:32 | sean-k-mooney | jaypipes: so the only race would be if two client tried to boot servers in the same group concureently without the server group already having running instances | |
| 17:32:17 | jaypipes | sean-k-mooney: yes, that is considered a single boot request. | |
| 17:33:51 | jaypipes | sean-k-mooney: almost. the only race is two clients concurrently attempting to add instances to the same server group (regardless of whether the server group has members). and that is a situation I find pretty rare and not worth shooting the rest of the world in the foot for. | |
| 17:35:26 | cfriesen | jaypipes: the scenario I'm worried about is where two instances race to schedule and get put onto the same compute node, but then one of them claims a mix of resources that causes the other to fail it's resource allocation. With a single sched worker this is less likely (though still possible). | |
| 17:35:57 | jaypipes | cfriesen: unless those are NUMA resources, it's not possible to do that. | |
| 17:36:01 | mriedem | arvindn05: ok what's up | |
| 17:36:21 | cfriesen | jaypipes: yes, numa resources. CPUs, hugepages, PCI devices with strict affinity | |
| 17:37:22 | mriedem | arvindn05: oh i'll read your replies | |
| 17:37:37 | cfriesen | I'm totally fine with the change to enable multiple workers, I just thing we might want to mention in the release notes that it could increase races in some cases. | |
| 17:39:17 | bauzas | jaypipes: cfriesen: I'm totally up for deprecating https://developer.openstack.org/api-ref/compute/#create-multiple-servers y'know | |
| 17:39:28 | melwitt | mriedem: on this bp, when you say you'd like to see the proposed code for deleting a server, did you mean you want to wait for proposed code before approving the bp? https://blueprints.launchpad.net/nova/+spec/add-server-group-remove-member-notifications | |
| 17:39:31 | bauzas | it creates more problems than it solves | |
| 17:39:56 | cfriesen | jaypipes: for server groups there's also the case where you resize/migrate/evacuate instances in a server group at the same time, or at the same time a new instance is created. I don't think we have late validation for all those scenarios. | |
| 17:40:11 | bauzas | and when you say --min 1 --max 5, you'd expect that if you have room for 1, then only one would be created and 4 in ERROR, but that's not the case | |
| 17:40:13 | cfriesen | bauzas: me too. :) but last time I brought it up people wanted to keep it. | |
| 17:40:27 | mriedem | melwitt: kind of yeah | |
| 17:40:29 | bauzas | because min/max are only relevant wrt quotas | |
| 17:40:34 | cfriesen | bauzas: actually I'd expect that 1 would be created and the other 4 would be like they never existed | |
| 17:40:42 | arvindn05 | mriedem: thanks....any questions for me? | |
| 17:40:46 | bauzas | cfriesen: that's absolutely not the current behaviour | |
| 17:40:54 | melwitt | mriedem: okay, I'm cool with that. just wanted to make sure I understood | |
| 17:41:00 | cfriesen | bauzas: I know, but it should be given how it's documented in the API | |
| 17:41:01 | mriedem | arvindn05: not yet, still reading | |
| 17:41:17 | bauzas | the current behaviour is that if you asked for 10 instances but your quota only tells 2 left, then it will just check that | |
| 17:41:25 | arvindn05 | mriedem: great....just let me know when you have questions. | |
| 17:41:27 | bauzas | but honestly, who cares ? | |
| 17:41:34 | mriedem | bauzas: heh "Error handling for multiple create is not as consistent as for single server create, and there is no guarantee that all the servers will be built. This call should generally be avoided in favor of clients doing direct individual server creates." | |
| 17:41:39 | mriedem | so actually, | |
| 17:41:49 | mriedem | concurrent creates is actually a problem for the affinity scenarios | |
| 17:41:58 | mriedem | but not a single multi-create request | |
| 17:42:02 | mriedem | damned if you do, damned if yo udon't | |
| 17:42:28 | bauzas | I'm just saying that the "minimum" value is useless | |
| 17:42:46 | bauzas | you ask for a max of 10, the scheduler will try to find you room for 10, or kick all of them | |
| 17:42:53 | mriedem | maybe we should amend that to say, "unless of course you're creating servers in a server group, then because of race issues we have'nt fixed yet, you should use multi-create" | |
| 17:43:04 | cfriesen | bauzas: and it shouldn't kick all of them if some of them pass | |
| 17:43:21 | bauzas | cfriesen: I'm not sure | |
| 17:43:29 | bauzas | cfriesen: it's a capacity problem | |
| 17:43:37 | cfriesen | bauzas: the user has said "give me as many instances as you can, up to a max of 10" | |
| 17:43:39 | bauzas | and we shouldn't leak the capacity to the user | |
| 17:43:42 | mriedem | how is the min useless? give me at least 2, but 10 if you can | |
| 17:43:55 | bauzas | mriedem: the "if you can" is only quota-wise | |
| 17:44:04 | cfriesen | bauzas: no, it's in the boot request | |
| 17:44:31 | bauzas | cfriesen: but the info we give to the scheduler is "how many the user asked" | |
| 17:44:45 | bauzas | cfriesen: not "how many the user is agreeing to only have" | |
| 17:44:55 | mriedem | also depends on the port quota, don't forget | |
| 17:45:04 | bauzas | yeah | |
| 17:45:05 | cfriesen | bauzas: I totally agree it's all messed up. but the API describes it as the min/max nubmer of servers to be created | |
| 17:45:15 | bauzas | the API docs are wrong | |
| 17:45:28 | cfriesen | the API docs are by definition correct, the implementation is wrong. :) | |
| 17:45:49 | cfriesen | the user wants at least 2 and at most 10 instances. If the quota is 4, we should give them 4 | |
| 17:45:54 | bauzas | that's an interesting PoV | |
| 17:45:56 | cfriesen | If we can only schedule 3, we should give them 3 | |
| 17:46:08 | mriedem | i'm pretty sure we've said in the past that the docs don't define the api | |
| 17:46:11 | dansmith | cfriesen: I think the actual behavior, which people may have built dependencies on, is the canonical thing | |
| 17:46:13 | mriedem | the current behavior defines the api | |
| 17:46:16 | dansmith | right | |
| 17:46:16 | mriedem | right | |
| 17:46:18 | mriedem | right | |
| 17:46:21 | dansmith | right | |
| 17:46:22 | melwitt | right | |
| 17:46:23 | mriedem | right | |
| 17:46:24 | bauzas | right | |
| 17:46:26 | bauzas | right | |
| 17:46:28 | bauzas | right | |
| 17:46:42 | dansmith | (man we're dorks) | |
| 17:46:43 | mriedem | remember the docs of yore for the compute api were written by people that didn't actually code up nova api | |
| 17:46:57 | melwitt | I think we've said in the past that it makes more sense for the --min to be honored if we can but if we change that, we have to do it with a microversion | |
| 17:46:58 | mriedem | and until sdague lifted them in tree they were all sorts of wrong | |
| 17:47:02 | mriedem | and still are in parts | |
| 17:47:25 | bauzas | anyway, time to say goodbye | |
| 17:47:33 | mriedem | adieu | |
| 17:47:36 | cfriesen | have fun | |
| 17:48:05 | bauzas | "adieu" has a very strong meaning of a final goodbye :) | |
| 17:48:13 | bauzas | I just hope to be back in 5 days :) | |
| 17:48:14 | cfriesen | au revoir | |
| 17:49:22 | cfriesen | for what it's worth, it seems odd to say that nobody can trust our published API specification, and instead they have to observe the current behaviour. | |
| 17:50:16 | cfriesen | but I get the argument about people already depending on the current behaviour | |
| 17:54:11 | melwitt | I wonder if it only behaves that way for quota. like, what happens if you do --min 2 --max 10 and there's only compute capacity for 2. I wonder if that would pass scheduling and give back only 2 instances | |
| 17:54:13 | dansmith | cfriesen: I think it's odd to say that we'd jump through hoops which might be very difficult to implement something the way someone guessed it may have worked long ago | |
| 17:54:40 | dansmith | ...just because they put that in a doc | |
| 17:55:04 | mriedem | arvindn05: ok thanks for the clarifications. replies inline for what i'd like to see changed, but it should be trivial | |
| 17:55:36 | mriedem | cfriesen: if the docs are inaccurate, let's clean up the docs | |
| 17:55:46 | mriedem | coincidentally i was just looking at https://bugs.launchpad.net/nova/+bug/1684261 again | |
| 17:55:47 | openstack | Launchpad bug 1684261 in OpenStack Compute (nova) "AggregateImagePropertiesIsolation example doesn't actually indicate how it works" [Low,Confirmed] | |
| 17:56:44 | arvindn05 | mriedem: awesome...will review them and let you know | |
| 17:57:05 | mriedem | would be really nice if someone would take on fixing the doc for that filter | |
| 17:58:48 | arvindn05 | mriedem: sure. Updating the docs should be straitforward...will look into it | |
| 17:59:02 | mriedem | famous, last, words | |