Friday, 2018-08-24

*** ChanServ has quit IRC01:00
*** ChanServ has joined #openstack-placement01:04
*** barjavel.freenode.net sets mode: +o ChanServ01:04
*** mriedem_afk has quit IRC01:05
*** Nel1x has joined #openstack-placement01:28
*** dansmith has quit IRC01:49
*** dansmith has joined #openstack-placement01:51
*** lei-zh has joined #openstack-placement02:01
*** Nel1x has quit IRC02:28
*** nicolasbock has quit IRC02:28
*** dims has quit IRC02:28
*** Nel1x has joined #openstack-placement02:30
*** nicolasbock has joined #openstack-placement02:30
*** dims has joined #openstack-placement02:30
*** openstack has joined #openstack-placement13:23
*** ChanServ sets mode: +o openstack13:23
openstackgerritBalazs Gibizer proposed openstack/nova-specs master: Add subtree filter for GET /resource_providers  https://review.openstack.org/59523613:24
cdentgiblet: ^^ that hacks tox.ini to make it possible to isntall placement from github. The problem I was experiencing before is that installs from git require pip directly, not whatever is installing nova itself (which I've noted in the updated commit message)13:24
*** openstackstatus has joined #openstack-placement13:25
*** ChanServ sets mode: +v openstackstatus13:25
gibletcdent: thanks13:26
gibletcdent: I'm pulling it down to play with it13:26
cdentyay!13:27
cdentI changed the reference to my branch, rather than the pull request so that edleafe's repo can fluctuate as required13:27
cdentseems to be running okay in the gate (at least for functional). gonna run out for a bit13:33
openstackgerritStephen Finucane proposed openstack/nova master: api: Remove unnecessary default parameter  https://review.openstack.org/56445113:50
*** efried_afk is now known as efried14:16
*** efried is now known as senhor_granhular14:24
senhor_granhularleakypipes, giblet: Diacritics not allowed in nicknames, so I had to go with Portuguese.14:25
leakypipesheh :)14:32
giblet:)14:33
senhor_granhularleakypipes, giblet: Responded.14:36
*** senhor_granhular is now known as fried_rice14:37
fried_riceleakypipes: Not having caught up with emails yet, did you give further thought to the refresh-in-reshaper-flow issue we started talking about yesterday?14:37
gibletfried_rice: thanks14:39
fried_ricelemme know if makes no sense14:39
fried_riceEasy +A: https://review.openstack.org/#/c/595453/14:39
gibletfried_rice: easily approved :)14:41
fried_ricethanks giblet14:41
gibletfried_rice: and your comment about non-granula group totally make sense14:42
fried_ricephew14:42
*** ttsiouts has quit IRC14:46
fried_ricegiblet: Your +2 on the bottom patch is useful, because 2x+2 all the way up the series will be our signal to remove the -2 and merge.14:57
mriedemi suppose that's my cue to review the rest of the series now14:59
gibletfried_rice: if you agree to do the doc change in a followup then I plug my +2 back15:01
fried_ricegiblet: Sure thing.15:01
gibletfried_rice: I've plugged the +2 back15:03
fried_ricegiblet: thx15:03
cdentour testing infrastructure is working against the kind of abuse I'm trying to do at the moment. I guess that's good most of the time.15:05
*** ttsiouts has joined #openstack-placement15:07
fried_ricegiblet, leakypipes: Why no +W on https://review.openstack.org/#/c/584598/ ? Is it because of the spurious random -1?15:09
edleafecdent: Which files do we need to preserve in the current nova/api/openstack directory?15:10
cdentedleafe: none, just the placement directory and below15:11
edleafecdent: thanks. Wasn't sure if we needed the wsgi stuff15:11
cdentno, placement has its own (simpler) stuff15:11
edleafekewl15:11
cdentokay, I just got a devstack working off that trimmed nova repo. nova-placement-api is using the placement repo code, but presenting itself as a nova thing15:13
cdentgonna create some servers, make sure that's all happy, and then switch over to a placement-api using the same db15:14
mriedemfried_rice: cdent: giblet: leakypipes: correct me if i'm wrong, but there is a behavior change in the RT with https://review.openstack.org/#/c/584598/ which has gone unnoticed15:15
mriedemexcept maybe by the wily ying wang15:15
cdentmriedem, fried_rice : how errors and return values are handled in the RT is a complete black hole for me :(15:16
fried_riceheh15:17
mriedemcdent: you were +1 on the change so i called you out15:17
mriedemwith the others15:17
fried_riceIf mriedem's comments are accurate, I really effed up. Because I fully intended to make that particular code path backward compatible other than the log msg15:17
cdentmriedem: haven't you figured out by now that my +1 means "I'm happy to see this fail later"?15:17
fried_ricelooking closer...15:17
mriedemcdent: i assume that's a joke15:18
fried_riceah, mriedem, I think you may have missed the `or {}` in the original.15:18
mriedemwell f me sideways15:18
* fried_rice looks up straight jackets again15:19
mriedem+W15:19
mriedemsorry15:19
cdentmriedem: well, more accurately: of the things I have experience in, this does not offend my sensibilities, and I trust the other people who have already reviewed.15:19
cdentbut also: I'm okay with bugs leaking through some of the time: they are the grist in the mill that keeps people coming back15:19
mriedemhttps://bugs.launchpad.net/nova/15:20
mriedem1                            →               75                          of             804             results15:20
mriedem...15:20
cdent:)15:20
mriedemhalf that shit is probably bugs in havana anyway15:20
cdentseveral conflicting forces at work15:20
*** nicolasbock has joined #openstack-placement15:21
fried_ricefwiw, I think "of the things I have experience in, this does not offend my sensibilities, and I trust the other people" is a reasonable review strategy, and is why we require multiple +2s to merge a thing.15:21
gibletmriedem: to be honest. We I now went back to look at your comment I did not noticed the or {}15:21
fried_ricemriedems of the world notwithstanding, it is unreasonable to expect even an illustrious core to understand all the implications of every change before approving it.15:22
giblets/we/when/15:22
mriedemfried_rice: that's why i only +1ed this https://review.openstack.org/#/c/592285/15:23
openstackgerritClaudiu Belu proposed openstack/nova master: hyper-v: autospec classes before they are instantiated  https://review.openstack.org/34221115:23
fried_riceheh, and why I avoided it entirely15:23
openstackgerritClaudiu Belu proposed openstack/nova master: WIP: replace spec with autospec  https://review.openstack.org/55729915:23
fried_ricebecause I figure I should understand at least *some* part of it before voting.15:24
leakypipesfried_rice: sorry, was grabbing lunch. I decided to back off and propose a patch in the future that shows what I was talking about.15:25
mriedemlike me reviewing new powervm features...15:25
leakypipesfried_rice: on the refresh-in-reshaper tihng15:25
leakypipesthing15:25
mriedemsspd viao wtf15:25
fried_riceleakypipes: Roger, saw that comment, looking forward to seeing what you come up with :)15:25
edleafecdent: I changed the extract script to move n/a/o/placement to placement/api instead of the placmeent directory. What about the test directories? Should n/t/u/a/o/placement be p/t/u/api or just p/t/unit?15:27
cdentedleafe: latter. unless you have an N package somewhere in the "real" code that name shouldn't show up in the tests?15:28
leakypipesfried_rice: also, on cdent's API patch, I'm cool addressing that one race condition at a later time.15:28
leakypipesfried_rice: it would be super rare anyway and not something I'm too concerned about15:29
edleafeI was writing a little search/replace thing to change the pathing, and stumbled upon that difference15:29
cdent"little search/replace thing"++15:29
fried_riceI guess I would expect things under p/t/u/api to be testing the API, which would really be /f/ tests not /u/ tests. So I'd be in favor of nixing /api on the /u/ side.15:31
cdentfried_rice: the strategy I have in my head is it's all "api" unless otherwise specified15:33
cdentas that maps to what was already in place15:33
fried_ricesure, makes sense.15:33
cdentalso, it _might_ help us keep placement a thing with only one long running service15:33
fried_riceI guess PlacementDirect would be non-api?15:33
*** giblet is now known as giblet_off15:34
cdentwhen I say "all api" I mean there is no api directory15:34
cdentso everything just does where it aligns with the existing package hierarchy15:34
cdentso sincer direct.py is top level, so would its tests15:34
cdentedleafe: does all that correspond with your thinking?15:37
edleafeHmmm... then why the need for placement/api for the current n/a/o/placement stuff, instead of just moving it to placement/ ?15:39
cdentthat's what I'm saying there shouldn't be any 'api' directory anywhere15:40
cdentthe contents of n/a/o/placement is what becomes $repo/placement15:40
cdentI wrote that on https://etherpad.openstack.org/p/placement-extraction-file-notes line 25 ish. did you see that?15:41
edleafeI've read that a bunch of times along with other stuff. I'm getting confused; hence the clarification request15:42
cdentI'm okay with there being a subdir there as it might be tidier (thus it being "up for debate" on the etherpaf). What do people thin15:42
edleafeIn my first push, placement/ had 3 subdirs: api/, db/, and tests/15:43
edleafeSo cut that down to just the latter two?15:43
cdentI think so, yeah, assuming you're not counting policies, schemas, handlers (and other?) dirs in that "two"?15:44
edleafewell yeah, after the stuff in api/ is moved down15:45
*** ttsiouts has quit IRC15:46
cdentI feel like maybe I'm still not understanding you but I guess it will all become clear in the next example and we can continue to iterate15:51
edleafeNo, I think we're on the same page15:52
*** tssurya has quit IRC15:54
fried_riceIs any of this repathing instrumental to getting things working, or could it maybe be done in a subsequent change set after the repo is seeded?15:54
fried_ricenot advocating, just asking.15:54
fried_riceI guess you're having to determine paths for everything and change import lines anyway.15:55
mriedemfried_rice: so in https://review.openstack.org/#/c/584599/ why did you change over the heal_allocations CLI but not the other usage in compute and conductor?15:57
mriedemassuming b/c it was the only user of include_generation=True?15:57
fried_ricemriedem: Because the heal allocations one was the only one using the new microversion at the time15:57
fried_riceyes15:57
fried_ricethe other changeovers were going to be pretty complicated, IIRC, and I wanted to stay focused on what was needed for the reshaper series.15:58
fried_riceand do the others "later"15:58
mriedemsure15:58
mriedemjust checking15:58
fried_ricehence the implicit TODO in the commit msg https://review.openstack.org/#/c/584599/21//COMMIT_MSG@2315:58
fried_riceand in the code https://review.openstack.org/#/c/584599/21/nova/scheduler/client/report.py@153915:59
mriedemyes yes15:59
fried_ricesorry, not trying to be defensive, just double checking myself15:59
mriedemconsider me bludgeoned15:59
fried_ricedredging up memories from way back when I wrote this.15:59
mriedemi have some comments on the heal_allocations part of it, but haven't posted yet15:59
fried_riceack15:59
fried_riceknowing that you're reviewing the series, I wasn't planning to lift the bottom -2 until you're done.16:00
mriedemyeah hopefully will be done today16:01
cdentfried_rice: if we want to be able to do testing with nova.api.openstack.placement.handler and handler.placement potentially being in the same python space (as I'm doing right now) then we need to repath things16:01
cdentsorry handler.placement -> placement.handler16:01
mriedemfried_rice: ok comments inline on that one16:03
mriedemnote the risk of putting a release name in a commit message near a release boundary :)16:03
fried_ricedid that happen? oops16:04
mriedemso it looks like you've got -1s to address on the next patch after this, so might as well respin that commit message when you rebase and i'll fast approve16:05
fried_ricemriedem: ack.16:07
fried_ricethough I'm not completely sure about the -1s above <== giblet_off leakypipes16:08
mriedemdid we say everything must be down during reshape runs? if so, that kind of breaks rolling upgrades right?16:11
mriedemdansmith: ^16:11
dansmithI'm not sure what you mean,16:12
mriedemhttps://review.openstack.org/#/c/584648/20/nova/scheduler/client/report.py16:12
dansmithobviously placement can't be down so I don't really get it16:13
dansmithI'm focusing on something else right now so I can't grok all that at the moment16:13
openstackgerritStephen Finucane proposed openstack/nova master: doc: Note NUMA topology requirements for numa-aware-vswitches  https://review.openstack.org/59639316:14
cdentIs that maybe about FFU and the direct interface, which is only a sometime, not all the time16:16
cdentfried_rice ^ ?16:16
fried_riceI thought placement offline was the whole reason we did PlacementDirect16:18
openstackgerritMerged openstack/nova stable/rocky: Correct the release notes related to nova-consoleauth  https://review.openstack.org/59589016:18
openstackgerritMerged openstack/nova master: tests: Move mocking to setUp  https://review.openstack.org/59580216:18
mriedemwell we have 2 upgrade scenarios,16:18
fried_riceBut I think maybe we did say we would allow reshape to happen on compute startup.16:18
mriedemfirst start of compute with the new code which is an online upgrade16:18
fried_riceyeah, that would be the second one?16:18
mriedemcompute fails to start if reshape fails16:18
mriedemFFU is the offline one16:19
mriedemlike how we migrated ironic flavors16:19
fried_riceokay. And in either case, is it possible for a partial-evacuate scenario to exist?16:19
mriedemwe did the ironic flavor migration online during n-cpu start and had the offline option via nova-manage16:19
mriedemsure16:19
fried_riceokay. Then I guess we need to handle that case. How?16:19
mriedemi've got 1000 hosts, 3 failed and i evacuated from them. then i upgrade to stein.16:20
mriedemi left some comments - as gibi said, i'm not entirely sure it will ruin anything, but i'm not that far ahead in the series to know16:20
fried_ricebutbut, don't the evacuated thingies get purged before we get here?16:20
mriedemwhen we reshape, aren't we only reshaping things for the root provider in the tree which is going to be the current node i'm on - specifically speaking for the libvirt and xen drivers16:21
mriedemso if there are other providers in the tree i probably don't even care about those16:21
mriedemso it depends on how this is used i guess https://review.openstack.org/#/c/584648/20/nova/scheduler/client/report.py@205516:22
leakypipesfried_rice: my -1 on that patch is because by adding the sharing pool to the ptree before passing it to update_provider_tree() you are populating a record in the ProviderTree for the shared storage pool. And I wanted to functionally test the scenario when that would *not* be populated in the ProviderTree and when an allocation involving that shared storage pool popped up, that the ProviderTree would "fill in" the missing sharing provider16:22
leakypipesrecord.16:22
fried_riceYou're talking about specific known cases of reshape that will be happening in Stein. In the future, a provider tree may need to be reshaped to a different provider tree shape. This needs to be made to work for both.16:22
mriedemthe RPs per consumer could be more than just the $nodename RP16:22
mriedemwe know of 2 cases where the RPs can be other than $nodename: 1) sharing providers - which we don't support yet and (2) evacuated-from nodes16:23
mriedemright?16:23
fried_riceleakypipes: You mean the ssp doesn't exist before we reshape?16:23
leakypipesfried_rice: doesn't exist in the compute node's ProviderTree cache, yes.16:23
fried_riceright, that's what I'm doing.16:23
mriedemmaybe assert what you expect is being setup?16:24
mriedemfor clarity?16:24
alex_xuleakypipes: fried_rice cdent, our team is working on nvdimm device. but we face the fragmentation issue, looking for some help from your guys. The case is just if you already have 2gb allocated in the middle of 10gb device, you can't allocate the rest 8gb, since the device required contiguous space. Pretty sure we can't modify inventory after claim just like fpga and gpu case. so appreciate help16:24
alex_xume on some idea16:24
leakypipesfried_rice: the comment on that line is this:16:24
leakypipes# Another unrelated compute node. We don't use the report client's16:24
leakypipes            # convenience methods because we don't want this guy in the cache.16:24
fried_riceleakypipes: The whole design of upt (and its precursors) is to *make* it appear in the ProviderTree so that upt sees it and can figure out what to do with it.16:24
leakypipesfried_rice: and I'm saying I would prefer that you do the same for the shared storage pool. create it outside of the provider tree convenience methods to ensure the provider tree doesn't have it already when get_allocations_for_provider() ends up being called16:25
fried_riceohhhhhh, now I follow. I wasn't reading the context carefully enough. The code comment you highlighted is talking about a different non-sharing provider elsewhere in placement, and your review comment is asking why same wasn't done 6LOC earlier when we created the SSP. Sorry, ack, will look closer. (Gotta run now)16:27
leakypipesright, exactly.16:27
fried_riceBut I think the ssp won't show up in the cache if I do that.16:27
leakypipesfried_rice: that's kinda what I'm trying to tease out...16:27
leakypipesfried_rice: to see if the assumptions made in the code are tested for edge cases like this.16:28
* alex_xu scroll the screen, sounds like something broke16:28
fried_riceowait, I take it back, if MISC_SHARES is set, and it's in the same agg, it *should* show up. So yeah, I can change that out.16:28
cdentalex_xu: I've read your message above, and I'm thinking.16:28
leakypipesfried_rice: rock on.16:28
fried_ricealex_xu: This sounds like a job for reserved=total16:29
alex_xucdent: thanks, sorry for inject the message16:29
alex_xufried_rice: emm...do you mean after the allocation, then you change the reserved of inventory?16:30
cdentalex_xu: I would guess some kind of dynamic max_unit adjustments might be workable16:30
leakypipesalex_xu: if I'm being blunt, this sounds like something you'll need to solve on your own outside of placement.16:30
fried_riceheh16:30
cdentat start max_unit is 8, after the 2 is used, it is 3 or 416:30
fried_ricethat's three wildly different answers16:30
alex_xucdent: yea, but we can't dynamic change inventory16:31
cdenti'm pretty okay with client side dynamically adjusting inventory if they feel that's the right thing16:31
cdentalex_xu: why not?16:31
alex_xuleakypipes: yea...my initial thought that should be something on the host or device drive to fix the fragmentation issue, but it just doesn't fix that issue16:31
alex_xucdent: emm...that should be same with gpu case, if we dynamic change the inventory after a resource claim, we will have race problem16:32
leakypipesalex_xu: or you could punt to Cinder, since that's basically what you're doing with nvdimm... volume management.16:32
alex_xuleakypipes: it isn't cinder thing, it is memory device.16:33
leakypipesI've heard they really like live resize functionality.16:33
alex_xuI have one idea...16:33
leakypipesalex_xu: it's not memory. it's memory with caveats.16:33
alex_xuask the operator setup the device first, for 10gb device, separate as 5 fragment, each one only can be 2gb, and max-unit,min-unit=2gb16:34
cdentalex_xu: yes, that would be an option16:36
alex_xuleakypipes: there are two way to use nvdimm device, use it as storage, use it as memory, we working on the case use it as memory, actually just passthrough it to the VM, and VM see it as a vNVDIMM device16:36
alex_xucdent: but someone push me back, the reason is it isn't flexible for usage16:36
cdentalex_xu: yeah, I'm not sure there's a truly flexible solution if you are unable to dynamically manage inventory16:37
*** fried_rice is now known as fried_rolls16:39
mriedemfried_rolls: related to leakypipes' comment on the test, isn't it implicitly hitting the evacuate scenario?16:40
alex_xuleakypipes: really not sure there is document can explain nvdimm easily..but from the qemu doc, it is realy a memory device https://github.com/qemu/qemu/blob/master/docs/nvdimm.txt16:40
mriedem"Another unrelated compute node."16:40
openstackgerritDan Smith proposed openstack/nova master: Batch results per cell when doing cross-cell listing  https://review.openstack.org/59269816:41
openstackgerritDan Smith proposed openstack/nova master: List instances from all cells explicitly  https://review.openstack.org/59371716:41
openstackgerritDan Smith proposed openstack/nova master: Make instance_list perform per-cell batching  https://review.openstack.org/59313116:41
openstackgerritDan Smith proposed openstack/nova master: Record cell success/failure/timeout in CrossCellLister  https://review.openstack.org/59426516:41
openstackgerritDan Smith proposed openstack/nova master: Optimize global marker re-lookup in multi_cell_list  https://review.openstack.org/59457716:41
alex_xucdent: can we let placement support dynamically manage inventory?16:41
alex_xuleakypipes: fried_rolls ^ is that option, or we already totally say no16:41
cdentalex_xu: I don't understand what you mean?16:41
cdentyou can change inventory in placement whenever you want16:42
leakypipesalex_xu: no.16:42
cdentif you're asking for placement to provide some form of transactional control, that's not going to happen16:42
leakypipeswhat cdent said.16:42
alex_xucdent: leakypipes yea, 'transcational' that is what i mean16:43
cdentallocations and inventory are very intentional not strongly connected16:43
alex_xucdent: emm..what is key point we won't support forever, just want to learn the idea16:45
cdentalex_xu: as I understand what you're asking, you want to avoid a race condition where at time X we allocate 2gb in the middle of nvdimm and at near the same time you want to change the inventory so that (in a variety of strategies) the inventory is represented in a way that allows more of it to be consumed accurately. To avoid the race there the initial allocation would somehow have to signal a lock on any interactio16:48
cdentwith the inventory until it was updated16:48
alex_xucdent: yes16:49
cdentalex_xu: is that right? if so, that's more placement-side state management than we've designed into the system. adding something like that would be very complicated and contrary to some of the original design goals about allocations16:49
cdentIt is probably possible, but it would be hard, for what amounts to an edge case16:49
cdentit would be better to either: accept the risk of the race, or figure out a way to manage the inventory in a way that works with the existing constraints16:50
openstackgerritDan Smith proposed openstack/nova master: Optimize global marker re-lookup in multi_cell_list  https://review.openstack.org/59457716:51
alex_xucdent: i got it, thanks16:51
alex_xucdent: leakypipes fried_rolls, so thanks, at least I got one option won't think about it anymore. probably continue push the fixed-size idea16:53
cdentalex_xu: it's at least a way to get started, and then you can iterate16:53
alex_xucdent: yes, agree with that, hope i can persuade people16:54
dansmithmriedem: do you still want/need me to look at that upgrade thing from earlier or did it get worked out?16:57
mriedemumm, might need to ask fried_rolls17:02
mriedemi'm leaving for a bit17:02
*** mriedem is now known as mriedem_afk17:02
* alex_xu continuously explain the placement won't support transactional control from the cat, fpga to nvdimm for people17:05
openstackgerritDan Smith proposed openstack/nova master: Batch results per cell when doing cross-cell listing  https://review.openstack.org/59269817:18
openstackgerritDan Smith proposed openstack/nova master: List instances from all cells explicitly  https://review.openstack.org/59371717:18
openstackgerritDan Smith proposed openstack/nova master: Make instance_list perform per-cell batching  https://review.openstack.org/59313117:18
openstackgerritDan Smith proposed openstack/nova master: Record cell success/failure/timeout in CrossCellLister  https://review.openstack.org/59426517:18
openstackgerritDan Smith proposed openstack/nova master: Optimize global marker re-lookup in multi_cell_list  https://review.openstack.org/59457717:18
*** fried_rolls is now known as fried_rice17:47
fried_ricedansmith: What upgrade thing from earlier?17:47
fried_riceoh17:47
fried_riceThere's been a couple of reshape scenarios identified where we may have the potential to race, and we're wondering to what extent the reshaper is only being run in a steady/reduced-activity state, and how that impacts those races.17:48
fried_ricedansmith: The one we were talking about earlier was here: https://review.openstack.org/#/c/584648/20/nova/scheduler/client/report.py17:49
fried_riceWondering about evacuate and whether we can have one consumer with allocations straddling multiple computes' providers.17:49
fried_ricewhich it sounds like we could17:50
dansmithinstances in the middle of a resize across an upgrade boundary is not (at all) uncommon17:50
dansmithwhich means you have an upgraded and unupgraded node that hold allocations for that instance which may be reverted or confirmed on either side of the upgrade by the old or new node17:51
dansmithwe have no way to prevent that scenario, and when we've talked about it, real clouds confirmed it's completely impossible17:51
fried_ricebut those scenarios don't use the "migration UUID".17:51
fried_riceSo there would in fact be the same consumer_uuid existing on providers owned by two different hosts.17:51
dansmithum, what?17:51
dansmithno, the migration uuid is the consumer in that case, which I assume makes your thing easier,17:52
dansmithbut you may have an older node restoring allocations for a new one17:52
fried_rice"older" meaning "before migration_uuid was a thing"?17:53
dansmithbecause you have allocations held on an old node by migration uuid, then on revert, we use those to restore them against the new node17:53
dansmithno, old as in pre-reshape17:53
fried_riceokay, but I think that's fine as long as the consumer UUIDs are *different* on both sides (hosts)17:53
fried_riceI don't care which one is the real instance UUID and which is the migration UUID17:53
dansmithit's not if the older node tries to restore a flat allocation against a nested inventory17:54
dansmithbut regardless, I'm not all caught up on the actual scenario,17:54
dansmithI'm just saying you really can't assume that "all evacuations are quiesced" before an upgrade or whatever you said this morning17:54
dansmithand you can't assume scheduler or placement is down (or up) either17:55
fried_riceCool, got that part understood.17:55
fried_riceSo what I actually need to know now is whether there's any kind of move/migration/resize/evacuation/etc. where it's possible to have the same consumer UUID on two providers owned by different hosts.17:55
fried_rice(sharing providers don't count)17:55
dansmithI don't think you can say that won't or can't happen17:56
fried_ricee.g. could GET /allocations/{c} ever return17:56
fried_rice{ cn1_rp_uuid: { ... },17:56
fried_rice  cn2_rp_uuid: { ... }17:56
fried_rice}17:56
fried_rice?17:56
dansmithit shouldn't happen right now with nova as it is, but if cyborg gets in the mix I would think you could have that fairly easily17:57
fried_ricewell17:57
fried_riceI don't think I care about that, do I?17:57
fried_riceand17:57
dansmithI definitely don't know what you care about17:57
fried_ricecyborg is going to be "owning" the device providers, but those are still going to be nested under the compute RPs.17:58
dansmithanyway, mriedem_afk can tell you all of this that you need to know, so I needn't be involved in this I think17:58
fried_riceokay. Thanks for the input.17:58
openstackgerritMerged openstack/nova master: Make CELL_TIMEOUT a constant  https://review.openstack.org/59457018:08
* cdent waves18:14
*** cdent has quit IRC18:14
openstackgerritGhanshyam Mann proposed openstack/nova master: Merge security groups extension response into server view builder  https://review.openstack.org/58547518:34
openstackgerritGhanshyam Mann proposed openstack/nova master: Merge extended_status extension response into server view builder  https://review.openstack.org/59209218:35
openstackgerritMerged openstack/nova master: tests: Create functional libvirt test base class  https://review.openstack.org/40705518:41
*** mriedem_afk is now known as mriedem18:45
mriedemfried_rice: the answer to "So what I actually need to know now is whether there's any kind of move/migration/resize/evacuation/etc. where it's possible to have the same consumer UUID on two providers owned by different hosts." is definitely "yes" for an evacuated instance18:48
mriedembut as noted in the review, if the original evacuated-from source host ever restarts we'll remove it's allocations for any instances evacuated from that host18:48
mriedemand we fixed the case that we'd orphan providers when deleting a nova-compute service in the os-services API18:49
mriedemimpossible to predict all of the weird shit that could happen, which is why we have heal_allocations i guess...18:49
fried_ricemriedem: Thanks. I'll have to think through the implications in the reshaper context, which afaict will start with the fact that the allocations param we pass into the (second) update_provider_tree call will contain those allocations from the other host. Not sure what will actually fall out of that. May just be a case of documenting the possibility for the implementor of the upt reshape flow.18:56
fried_ricesounds like for the evacuation scenario that documentation should simply say "leave these tf alone if you see 'em"18:57
fried_ricewhich I imagine ought to be the default behavior anyway, since that flow should be focusing on moving allocations only for providers it's messing with, which should *not* include providers from other hosts.18:57
mriedem^ is kind of what i was getting at earlier and you said yes for now in the very specific stein case18:58
mriedemthe implementor won't actually know what the other RPs are probably w/o any kind of context,18:58
mriedemi.e. looking up, "is this a compute node and if so, was it involved in some kind of migration?"18:58
fried_riceright. It should employ the strategy of, "Is this allocation related to a provider I'm reshaping? No? Ignore."19:02
mriedemthe only thing is,19:09
mriedemwhat does the virt driver have for context? it gets the nodename but it doesn't necessarily know based on RP UUID which RPs in the tree are the ones it cares about, right?19:10
mriedemlike, how does the virt driver identify the rp it actually cares about?19:10
mriedemi know we *could* figure that out by looking up the compute node via CONF.host and nodename to get the CN UUID19:11
mriedembut that's rather fugly19:11
mriedemespecially since the RT could just pass it down19:11
mriedem"this is your nodename and this is your CN UUID"19:11
mriedemif only we had a local yaml file that told nova-compute exactly what it's local inventory was.... :)19:12
fried_ricedoesn't even get the nodename19:18
fried_ricethe rt already passes down my nodename19:18
fried_riceand we already tell upt implementors (via the docstring) not to futz with providers they don't recognize as being owned by them.19:19
fried_ricewhich they mostly identify by knowing which ones they think are supposed to be the ones in the tree19:19
fried_ricebut also potentially via namespacing19:20
fried_ricewhich might or might not wind up causing problems here.19:20
fried_riceleakypipes: I'm rebasing https://review.openstack.org/#/c/590041/ k?19:20
openstackgerritEric Fried proposed openstack/nova master: [placement] split gigantor SQL query, add logging  https://review.openstack.org/59004119:23
leakypipesfried_rice: sure, np19:38
leakypipesfried_rice: did you want me to change that log message?19:38
fried_riceleakypipes: I did, and I did.19:38
fried_riceleakypipes: See epic cumulative comment response19:39
leakypipesah, never mind then :)19:39
fried_ricemelwitt: --^19:39
leakypipesthx fried_rice19:39
fried_ricemriedem: leakypipes: Restacking the reshaper series. Are you done reviewing?19:39
*** mriedem has quit IRC19:40
leakypipesfried_rice: I was not, no.19:44
leakypipesfried_rice: can you hold on a bit on that one?19:45
fried_riceleakypipes: I've started working on the last one you -1'd. I can wait for you after that.19:45
leakypipesfried_rice: k. five minutes pls19:48
fried_ricesho19:48
*** mriedem has joined #openstack-placement19:48
openstackgerritMerged openstack/nova master: Stash the cell uuid on the context when targeting  https://review.openstack.org/59457120:09
fried_riceleakypipes: Kid run, bbiab. But finished local restack up to https://review.openstack.org/#/c/584648/20:12
*** fried_rice is now known as efried_afk20:13
*** efried_afk is now known as fried_rice20:14
fried_riceleakypipes: Cancel that, wires crossed, no kid run.20:17
leakypipesfried_rice: :)20:17
openstackgerritDan Smith proposed openstack/nova master: Batch results per cell when doing cross-cell listing  https://review.openstack.org/59269820:29
openstackgerritDan Smith proposed openstack/nova master: List instances from all cells explicitly  https://review.openstack.org/59371720:29
openstackgerritDan Smith proposed openstack/nova master: Make instance_list perform per-cell batching  https://review.openstack.org/59313120:29
openstackgerritDan Smith proposed openstack/nova master: Record cell success/failure/timeout in CrossCellLister  https://review.openstack.org/59426520:30
openstackgerritDan Smith proposed openstack/nova master: Optimize global marker re-lookup in multi_cell_list  https://review.openstack.org/59457720:30
leakypipesfried_rice: k, done. sorry for delay.20:53
fried_riceleakypipes: ack, thx20:53
fried_riceleakypipes: What is necessary to get your +1 upgraded to +2 on the top patch?21:01
fried_riceCause I think I've got the rest of the pile done.21:01
openstackgerritEric Fried proposed openstack/nova master: Report client: Real get_allocs_for_consumer  https://review.openstack.org/58459921:13
openstackgerritEric Fried proposed openstack/nova master: Report client: get_allocations_for_provider_tree  https://review.openstack.org/58464821:13
openstackgerritEric Fried proposed openstack/nova master: Report client: _reshape helper, placement min bump  https://review.openstack.org/58503421:13
openstackgerritEric Fried proposed openstack/nova master: Report client: update_from_provider_tree w/reshape  https://review.openstack.org/58504921:13
openstackgerritEric Fried proposed openstack/nova master: Compute: Handle reshaped provider trees  https://review.openstack.org/57623621:13
fried_riceleakypipes, mriedem, giblet_off, cdent: ^^^^^21:14
openstackgerritMatt Riedemann proposed openstack/nova master: api-ref: fix volume attachment update policy note  https://review.openstack.org/59648921:29
openstackgerritMatt Riedemann proposed openstack/nova master: api-ref: add a warning about calling swap volume directly  https://review.openstack.org/59649221:47
openstackgerritEric Fried proposed openstack/nova master: Document no content on POST /reshaper 204  https://review.openstack.org/59649421:49
openstackgerritEric Fried proposed openstack/nova master: Compute: Handle reshaped provider trees  https://review.openstack.org/57623621:53
fried_riceleakypipes: In case you were in the middle, forgot one thing in that top patch ^21:53
openstackgerritMatt Riedemann proposed openstack/nova master: Add functional test for live migrate with anti-affinity group  https://review.openstack.org/58893521:53
mriedemfried_rice: i suppose you should re-propose that reshaper spec for stein huh22:04
mriedemor did you already?22:04
fried_ricemriedem: did already22:05
fried_ricemriedem: https://review.openstack.org/#/c/592650/22:05
mriedemah i se it22:05
mriedemyeah22:05
mriedemoh god you had to format it didn't you22:06
openstackgerritEric Fried proposed openstack/nova master: Fix race condition in reshaper handler  https://review.openstack.org/59649722:07
fried_ricemriedem: no?22:10
mriedemit's fine, very thorough as usual22:10
mriedem+W22:10
fried_riceStraight copy, plus deltas as advertised.22:10
fried_riceThanks.22:10
fried_ricemriedem: Oh, I had to rename those linkylinks because they have to be globally unique across the whole doc build :( :( :(22:11
fried_rice(made me 3x sad)22:12
mriedemoh i was wondering about dropping the ()22:15
mriedemyeah that sucks22:15
melwittfried_rice: cool, will check it out22:16
mriedemi hit something in the cinder api-ref the other day b/c of v2 and v3 api sections, took me awhile to realize why it was complaining22:16
openstackgerritMerged openstack/nova-specs master: Repropose reshaper spec for Stein  https://review.openstack.org/59265022:23
mriedemfried_rice: looks like maybe another missing uuids.agg1 in the test here https://review.openstack.org/#/c/585034/23:03
openstackgerritMatt Riedemann proposed openstack/nova master: Deprecate Core/Ram/DiskFilter  https://review.openstack.org/59650223:28
openstackgerritMatt Riedemann proposed openstack/nova master: Deprecate Core/Ram/DiskFilter  https://review.openstack.org/59650223:32
openstackgerritmelanie witt proposed openstack/nova master: Make scheduler.utils.setup_instance_group query all cells  https://review.openstack.org/54025823:45

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!