Earlier  
Posted Nick Remark
#openstack-nova - 2018-04-02
15:48:30 fried_bunny jaypipes, edleafe: https://review.openstack.org/#/c/558068/1/nova/api/openstack/placement/objects/resource_provider.py@142
15:54:24 edleafe fried_bunny: in the middle of my own rabbit hole :) Will look soon
15:54:29 fried_bunny oy vay
15:55:02 jaypipes zzzeek: hey, what is the magic incantation to allow an enginefacade-managed session to start and close its own transaction?
15:55:34 zzzeek jaypipes: do you mean, you want to explicitly do that part yourself?
15:55:45 zzzeek jaypipes: the enginefacade ohhh
15:55:50 jaypipes zzzeek: allowing the transaction to be committed and exceptions raised in "outer" enginefacade sessions won't roll the inner one back
15:55:53 zzzeek jaypipes: you mean indepdendent of the rest
15:55:57 jaypipes ya
15:56:02 zzzeek jaypipes: yeah writer.independent
15:56:16 jaypipes oh crap, why can't I ever remember it. thanks zzzeek :)
15:56:18 zzzeek jaypipes: that means whole new DB connection for that block
15:56:34 fried_bunny jaypipes: Okay, so I decorate _trait_sync with that, and we're good?
15:57:03 zzzeek jaypipes fried_bunny well use .independent sparingly if it's in a tight loop you are putting a lot more load on things
15:57:16 jaypipes fried_bunny: yes.
15:57:20 fried_bunny zzzeek: Cool man, it should only get run once, ever.
15:57:21 zzzeek then again before enginefacade *all* of nova was like that :)
15:57:28 zzzeek fried_bunny: then you're golden
15:57:53 fried_bunny zzzeek, jaypipes: works. Thanks!
15:58:07 jaypipes np (all hail zzzeek)
15:58:15 zzzeek jaypipes: so true! :)
16:02:44 openstackgerrit Eric Fried proposed openstack/nova master: Use an independent transaction for _trait_sync https://review.openstack.org/558068
16:02:47 fried_bunny jaypipes, zzzeek: ^
16:02:49 fried_bunny Thanks for the help.
16:32:39 openstackgerrit Eric Berglund proposed openstack/nova master: PowerVM Driver: vSCSI volume driver https://review.openstack.org/526094
16:47:47 edleafe Is there some reason you can't add columns to two different tables in a single migration? IOW, do they have to be done separately?
16:49:22 edleafe oh, nvm - stupid typo
17:53:15 openstackgerrit Vladyslav Drok proposed openstack/nova master: Ignore some updates from virt driver https://review.openstack.org/523006
18:00:28 openstackgerrit Ed Leafe proposed openstack/nova master: Add columns for generation to consumers and allocations https://review.openstack.org/557958
18:00:28 openstackgerrit Ed Leafe proposed openstack/nova master: Add handlers for consumer_generation https://review.openstack.org/557959
18:08:56 openstackgerrit Dan Smith proposed openstack/nova master: Fix cancel_all_events event name parsing https://review.openstack.org/558059
18:39:47 jaypipes oh so quiet today...
18:39:52 openstackgerrit Eric Berglund proposed openstack/nova master: Move pypowervm requirement to 1.1.12 https://review.openstack.org/558254
18:40:13 edleafe a lotta people are eating their easter candy methinks
18:41:37 openstackgerrit Eric Berglund proposed openstack/nova master: PowerVM Driver: vSCSI volume driver https://review.openstack.org/526094
18:48:18 arvindn05 spring break week as well in the US i think
18:48:37 fried_bunny for some, possibly. Ours was a couple weeks ago.
18:50:05 arvindn05 ahh...atleast in the west coast CA area it might be this week then...lots of folks are out on vac
18:59:30 openstackgerrit Ed Leafe proposed openstack/nova master: Add columns for generation to consumers and allocations https://review.openstack.org/557958
18:59:30 openstackgerrit Ed Leafe proposed openstack/nova master: Add handlers for consumer_generation https://review.openstack.org/557959
19:01:48 fried_bunny jaypipes: did you catch up on the shared provider stuff we were discussing with bhagyashris?
19:02:31 fried_bunny jaypipes: I wanted to get a sense for whether that constitutes a regression we need to fix, or whether it figures into the whole "we don't support shared yet" picture.
19:24:01 openstackgerrit Vladyslav Drok proposed openstack/nova master: Ignore some updates from virt driver https://review.openstack.org/523006
19:32:30 openstackgerrit Eric Berglund proposed openstack/nova master: PowerVM Driver: Snapshot https://review.openstack.org/543023
19:32:59 openstackgerrit Eric Berglund proposed openstack/nova master: PowerVM Driver: DiskAdapter parent class https://review.openstack.org/549053
19:35:18 openstackgerrit Jay Pipes proposed openstack/nova master: Get rid of 406 paths in report client https://review.openstack.org/556633
19:35:30 jaypipes fried_bunny: was a simple rebase ^
19:36:17 fried_bunny jaypipes: Roger. Why was it needed?
19:36:36 fried_bunny because I forgot to do it after editing the previous in gerrit?
19:36:41 jaypipes fried_bunny: the previous version was based on an old patch.
19:36:47 jaypipes fried_bunny: yep
19:36:57 fried_bunny ight
19:45:42 openstackgerrit Eric Berglund proposed openstack/nova master: PowerVM Driver: DiskAdapter parent class https://review.openstack.org/549053
19:48:33 fried_bunny edleafe: jaypipes: How does a consumer get created? Implicitly when you create allocations for it?
19:49:16 jaypipes fried_bunny: yes
19:49:18 fried_bunny Then what do you send down as your generation value the first time you create such an allocation? I guess None has to be legal at that point.
19:49:54 jaypipes fried_bunny: yeah
19:50:10 fried_bunny edleafe: ^ how is this handled?
19:50:54 fried_bunny Under the new microversion, None has to be special
19:51:10 fried_bunny special-cased to mean "Fail 409 if the consumer exists"
19:52:09 jaypipes fried_bunny: the previous behaviour is essentially an implicit consumer_generation of None.
19:52:20 fried_bunny jaypipes: Not the same thing at all, though.
19:52:28 jaypipes fried_bunny: how so?
19:53:29 fried_bunny With the new code in place, you can still use the old microversion, which is consumer_generation of None, and it'll increment the existing generation, whatever it happens to be.
19:53:39 fried_bunny If you use the *new* microversion and send None, we can't do that.
19:54:51 jaypipes fried_bunny: why would you send the new microversion and send None, though?>
19:55:07 edleafe fried_bunny: that's how it's supposed to work
19:55:16 fried_bunny jaypipes: Because you *have* to do that when the consumer doesn't exist yet.
19:56:04 fried_bunny Cause we had the discussion about opacity - made sure *that* was in the spec. So you can't send 0. But if you do a GET, you'll get 404 cause the consumer doesn't exist yet.
19:56:12 fried_bunny so you don't have an existing generation to populate your payload with.
19:56:18 edleafe fried_bunny: you will have gotten the generation from GETting existing allocations
19:56:20 openstackgerrit Dan Smith proposed openstack/nova master: Fix cancel_all_events event name parsing https://review.openstack.org/558059
19:56:28 edleafe if there is no consumer, you would get None
19:56:28 fried_bunny edleafe: Not when there ain't none yet.
19:56:39 fried_bunny you would get 404
19:56:43 fried_bunny not so?
19:56:50 jaypipes fried_bunny: but the only reason to have this consumer generation at all was for the PUT /allocations/{consumer_uuid} when you wanted to modify an existing allocation.
19:56:58 edleafe you would get an empty list
19:57:10 fried_bunny jaypipes: But how do you know whether you're modifying an existing or creating a new?
19:57:44 jaypipes fried_bunny: when you're trying to modify an existing allocation, it's a totally different call point than when you're creating a new allocation for a new instance.
19:58:20 jaypipes fried_bunny: the scheduler always does claim_resources() which is new consumer (new instance). the conductor will be the only thing modifying existing allocations.
19:58:20 fried_bunny jaypipes: Maybe for Nova it is.
19:58:24 edleafe either way, you're calling set_allocations, no?
19:58:30 fried_bunny ^
19:58:41 jaypipes edleafe: claim_resources() vs. some new modify_allocations() call.
19:59:17 jaypipes the only reason we need consumer generation is when we're modifying existing allocations.
19:59:23 jaypipes there's no need for it anywhere else.
19:59:27 fried_bunny From an API perspective, though, you're calling PUT /allocations/{c}
19:59:35 fried_bunny (or POST, same-same)
19:59:55 edleafe ok, I think I see the case fried_bunny is talking about
19:59:55 openstackgerrit Eric Berglund proposed openstack/nova master: PowerVM Driver: Snapshot https://review.openstack.org/543023
20:00:00 fried_bunny edleafe: confirmed you get 200 empty list when calling on a consumer that doesn't exist.
20:00:21 jaypipes fried_bunny: then have claim_resources() use microversion 2.11 and have modify_allocations() use microversion 2.42 (or whatever microversion this new change gets)
20:00:39 edleafe it would happen if you created an instance, and then somehow un-allocated all its resources, and then re-allocated them.
20:00:50 edleafe I don't think that's possible
20:01:02 fried_bunny or a race where two agents attempt to create the first alloc for a consumer ID.
20:01:17 fried_bunny Sure, we can say it'll never happen in nova (maybe).
20:01:35 edleafe fried_bunny: yeah, and the second will fail that race
20:01:38 edleafe as designed
20:01:41 fried_bunny But from a pure API perspective, the point of this exercise is to protect against clients racing to PUT /allocations/{c} - whether it's the first or not.

Earlier   Later