| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-03-15 | |||
| 20:57:11 | bauzas | in Essex, it was terribly necessary | |
| 20:57:40 | bauzas | but now, we are in a far better place, but at least we should mimic what we merged for the move operations | |
| 20:57:53 | bauzas | ie. having a possible target with a force flag | |
| 20:58:24 | bauzas | which would then verify the filters if the target is set without force | |
| 20:58:34 | bauzas | or totally bypass the scheduler if force | |
| 20:58:55 | mriedem | so, i'm going to just start with a code comment in the request spec object | |
| 20:59:04 | mriedem | so when i look at this in a year, i won't have to do all of the detective work again | |
| 20:59:59 | bauzas | fine by me | |
| 21:04:41 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add a note about force_hosts only ever having a single value https://review.openstack.org/446175 | |
| 21:04:42 | mriedem | there you go ^ | |
| 21:04:49 | openstackgerrit | Roman Dobosz proposed openstack/nova-specs master: Provide detailed error information for placement API https://review.openstack.org/418393 | |
| 21:06:09 | mriedem | ok, well, back to figuring out how i can mock the scheduler to send build requests to certain hosts in order | |
| 21:07:28 | bauzas | melwitt: https://review.openstack.org/#/c/446175/1 could be worth of interest | |
| 21:07:51 | bauzas | mriedem: what's your concern ? | |
| 21:08:06 | mriedem | bauzas: i'm writing a functional test to recreate https://review.openstack.org/#/c/444106/ | |
| 21:08:07 | bauzas | mriedem: you want the scheduler to return you a specific destination ? | |
| 21:08:21 | mriedem | i have 2 hosts, i want the scheduler to send them in order | |
| 21:10:34 | mriedem | i think i can just use the disk weigher and fake it out | |
| 21:13:50 | mriedem | oh now i see a bug in the docs | |
| 21:15:28 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Fix the help for the disk_weight_multiplier option https://review.openstack.org/446177 | |
| 21:16:31 | bauzas | mriedem: the scheduler is only returning one host, so 2 calls one after the other ? | |
| 21:17:21 | mriedem | bauzas: i need the test to make the scheduler put the server on the hosts in order, where the first host will fail during driver.spawn which would normally trigger a retry to the 2nd host | |
| 21:17:30 | mriedem | i've got 2 hosts in the test | |
| 21:17:45 | mriedem | i want to trick the scheduler into picking the hosts in order | |
| 21:17:52 | mriedem | so i really just need it to pick the bad one first | |
| 21:18:06 | mriedem | i guess maybe it doesn't matter which order as long as i can keep track of the first host that's called | |
| 21:18:18 | mriedem | i'll just do that | |
| 21:19:05 | bauzas | I see | |
| 21:21:32 | bauzas | mriedem: tbh, just asks the scheduler for one host, kill the spawn and then the reschedule will put that host in the retry list | |
| 21:22:02 | bauzas | in case retry doesn't work, then you'll get the first node | |
| 21:22:07 | mriedem | the scheduler will try to send it back to the same host? | |
| 21:22:40 | bauzas | yup, because the claim will be reversed | |
| 21:23:33 | bauzas | well, there is some random | |
| 21:23:52 | mriedem | ok, so i'm going to try and test this in the non-crazy way | |
| 21:24:02 | mriedem | which is if i have 2 hosts and the first fails, i expect it to go to the 2nd host | |
| 21:24:14 | mriedem | see _add_retry_host in the scheduler utils | |
| 21:24:19 | mriedem | that's why i thought it worked this way | |
| 21:24:41 | bauzas | you can trick the scheduler | |
| 21:24:43 | mriedem | ah RetryFilter | |
| 21:24:59 | bauzas | yeah | |
| 21:25:22 | bauzas | that's why we had NoValidHosts for a spawn issue | |
| 21:25:32 | bauzas | now, it's a separate exception | |
| 21:25:57 | bauzas | but yeah, if we retry and we don't have enough computes, then the RetryFilter will return 0 hosts | |
| 21:26:51 | bauzas | as I said, you can trick what the scheduler returns by avoiding random choice if host_subset_size opt is having a 1 value | |
| 21:27:48 | bauzas | which is the default | |
| 21:28:04 | bauzas | so, that's why the scheduler always returns the same compute | |
| 21:29:33 | bauzas | mriedem: FWIW, I'm tempted to add a section in https://etherpad.openstack.org/p/BOS-Nova-brainstorming saying 'add your name if you want to go to the Summit but still waits for your management" :p | |
| 21:30:06 | mriedem | bauzas: that kind of passive aggressiveness is reserved for midwesterners in the US | |
| 21:30:24 | mriedem | i'm also setting host_subset_size=2 | |
| 21:30:29 | mriedem | i'm setting all the things | |
| 21:30:39 | bauzas | if so, you'd random between two hosts | |
| 21:31:15 | mriedem | but the RetryFilter, which is enabled by default, should filter out the first failed host | |
| 21:31:28 | mriedem | anyway, i'll just get this going and see | |
| 21:33:39 | bauzas | mriedem: sure but if we don't have the retry dict, then you could miss the problem | |
| 21:34:00 | bauzas | what you want to cover | |
| 21:47:20 | edleafe | jaypipes: want me to fix the pep8 issue on https://review.openstack.org/441544 ? | |
| 21:47:45 | jaypipes | edleafe: lol, pls do. :) | |
| 21:47:52 | edleafe | k | |
| 21:48:14 | jaypipes | edleafe: serves me right for not tox -epep8'ing. | |
| 21:49:39 | openstackgerrit | Ed Leafe proposed openstack/nova master: virt: implement get_inventory() for Ironic https://review.openstack.org/441544 | |
| 21:49:47 | edleafe | jaypipes: fixed ^^ | |
| 21:50:24 | jaypipes | cheers, I wallaby'd it. | |
| 22:02:33 | openstackgerrit | Rafael Folco proposed openstack/nova master: DELETE all inventory for a resource provider https://review.openstack.org/416669 | |
| 22:08:07 | jaypipes | mriedem, dansmith, melwitt: one of you want some review bait? :) https://review.openstack.org/#/c/444497/ | |
| 22:14:55 | openstackgerrit | Sujitha proposed openstack/nova master: Add description to policies in admin_password.py https://review.openstack.org/443957 | |
| 22:15:14 | openstackgerrit | Sujitha proposed openstack/nova master: Add description to policies in agents.py https://review.openstack.org/445208 | |
| 22:15:25 | openstackgerrit | Sujitha proposed openstack/nova master: Add description to policies in aggregates.py https://review.openstack.org/445230 | |
| 22:15:44 | openstackgerrit | Sujitha proposed openstack/nova master: Add description to policies in assisted_volume_snapshots.py https://review.openstack.org/445238 | |
| 22:32:38 | mriedem | jaypipes: no more for me today | |
| 22:32:50 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add a functional regression/recreate test for bug 1671648 https://review.openstack.org/446209 | |
| 22:32:50 | openstack | bug 1671648 in OpenStack Compute (nova) "Instances are not rescheduled after deploy fails" [High,In progress] https://launchpad.net/bugs/1671648 - Assigned to Shunli Zhou (shunliz) | |
| 22:32:50 | mriedem | melwitt: here is that functional regression test for the retry bug ^ | |
| 22:35:40 | melwitt | mriedem: cool, will check it out | |
| 22:45:18 | melwitt | jaypipes: +W | |
| 23:12:17 | mriedem1 | aha, the chance scheduler doesn't set filter limits | |
| 23:12:22 | mriedem1 | b/c it doesn't do filtering | |
| 23:12:58 | mriedem | and the scheduler filter uses RequestSpec.from_primitives which defaults 'limits' to {} | |
| 23:13:06 | melwitt | mriedem: ah, right. need to self.flags for filterscheduler | |
| 23:13:28 | mriedem | i don't want to use the filter scheduler actually, | |
| 23:13:31 | dansmith | melwitt: were you going to split up the third quota patch at all? | |
| 23:13:36 | mriedem | i started with that and the default enabled filters kicked out my hosts | |
| 23:13:50 | dansmith | I've just been going back and forth between a real file and a test file for a while, | |
| 23:14:08 | dansmith | and I think it should be easy to cleave off some large related chunks purely by tagging files that go together | |
| 23:14:16 | dansmith | is there any reason to keep this monolithic? | |
| 23:14:41 | melwitt | no, other than I didn't do much thinking about how to logically split it into smaller chunks | |
| 23:14:58 | melwitt | I had a hell of a time just getting it to work, so it stayed monolithic | |
| 23:15:16 | dansmith | lemme see if I can split off some chunks that look obvious to me | |
| 23:16:06 | melwitt | thanks. suggestions on how to split it would be appreciated | |
| 23:17:09 | melwitt | mriedem: I thought I had seen an example of a func test that used filterscheduler but I'm not finding anything so far | |
| 23:17:55 | melwitt | oh, I was grepping for the wrong thing "FilterScheduler". it looks like this to configure self.flags(driver='filter_scheduler', group='scheduler') | |
| 23:20:50 | melwitt | and I just read back and saw you don't want the filter scheduler. nevermind | |
| 23:23:13 | mriedem | right, filter scheduler is the default | |
| 23:23:31 | mriedem | but it has a bunch of filters enabled by default, so i'd have to wittle that list of filters down to what works for this test, which might just be the RetryFilter, | |
| 23:23:39 | mriedem | i'm just trying to get the base things working | |
| 23:24:59 | melwitt | mriedem: well, you can self.flags the enabled filters too. so maybe just put RetryFilter in there by itself | |
| 23:25:22 | mriedem | yeah i thought about that, | |
| 23:25:23 | melwitt | if the bug is about something that RetryFilter needs to populate, I mean | |
| 23:25:34 | melwitt | if it's unrelated, then you don't need filter scheduler | |
| 23:25:36 | mriedem | RetryFilter doesn't populate the thing, | |
| 23:25:40 | mriedem | it checks the populated value | |