| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-08-31 | |||
| 16:02:15 | dansmith | o/ | |
| 16:02:45 | gibi | #topic Bugs (stuck/critical) | |
| 16:02:55 | gibi | we have one bug marked critical | |
| 16:02:59 | gibi | https://bugs.launchpad.net/nova/+bug/1940555 around SQLAlchemy URL handling and the fix is going through the gate: https://review.opendev.org/c/openstack/nova/+/805663 | |
| 16:03:15 | bauzas | \o | |
| 16:03:24 | gibi | it is bounced since I wrote the agenda but I requeued it | |
| 16:03:42 | sean-k-mooney | ack | |
| 16:03:53 | gibi | #link 17 new untriaged bugs (+6 since the last meeting): #link https://bugs.launchpad.net/nova/+bugs?search=Search&field.status=New | |
| 16:04:09 | gibi | I had no time to check the untriaged bugs in the last couple of days | |
| 16:04:22 | gibi | we have 0 bugs marked with xena-rc-potential tag #link https://bugs.launchpad.net/nova/+bugs?field.tag=xena-rc-potential | |
| 16:04:27 | gibi | please start marking release critical bugs with xena-rc-potential tag | |
| 16:04:53 | bauzas | tbc, those need to be regression bugs | |
| 16:04:59 | gibi | yepp | |
| 16:05:12 | bauzas | ie. something that worked before Xena but now has issues with this release | |
| 16:05:37 | bauzas | we only have 2 weeks before RC1 in order to merge bugfixes that *aren't* regressions | |
| 16:05:49 | bauzas | or those would be fixed in the next Yoga release | |
| 16:05:59 | gibi | and backported :) | |
| 16:06:09 | sean-k-mooney | i dont think we currenlty have any critical bugs that would need the rc flag | |
| 16:06:13 | bauzas | so, pings are appreciated besides classic feature review requests | |
| 16:06:30 | bauzas | we have an interesting race condition issue with placement | |
| 16:06:41 | gibi | yepp I saved that for the gate issue topic | |
| 16:06:51 | gibi | lets go there | |
| 16:06:52 | bauzas | this isn't only impacting the gate, right? | |
| 16:07:20 | gibi | it is a new race so so far we only have infor from the gate about it | |
| 16:07:23 | bauzas | but yeah, let's discuss this bug on the gate section | |
| 16:07:28 | gibi | #topic Gate status | |
| 16:07:32 | gibi | Nova gate bugs #link https://bugs.launchpad.net/nova/+bugs?field.tag=gate-failure | |
| 16:07:41 | gibi | We had the allocation deletion conflict bug #link https://bugs.launchpad.net/nova/+bug/1836754 that hopefully resolved when we landed #link https://review.opendev.org/c/openstack/nova/+/688802 yesterday | |
| 16:08:05 | gibi | We have a project creation race in allocation update bug as well #link https://storyboard.openstack.org/#!/story/2009159 that is affecting the those gate jobs that are booting more than on VM at the same time. Octavia is heavily affected. I've pushed a reproducer #link https://review.opendev.org/c/openstack/placement/+/806730 but I don't know how to fix the actual bug. | |
| 16:08:40 | gibi | this is the one bauzas mentioned above ^^ | |
| 16:09:30 | bauzas | if the race isn't occurring a lot of times, we should maybe just call the transaction again | |
| 16:09:37 | gibi | in short if two VM for the same project is scheduled at the same time then the PUT /allocations call could cause a race in the project creation in placement | |
| 16:10:16 | gibi | bauzas: that was my first idea, but looking the code I'm not sure about the amount of surgery needed for this | |
| 16:10:33 | dansmith | it must be the *first* two vms right? | |
| 16:10:34 | gibi | if somebody has deeper sqlAlchemy knowledge than me then help is appreciated | |
| 16:10:45 | bauzas | dansmith: it *should* be yeah | |
| 16:10:47 | gibi | dansmith: first two VMs for a project yes | |
| 16:10:55 | sean-k-mooney | gibi: sorry im a bit confusted by the term project createion in a placment context | |
| 16:10:59 | dansmith | that definitely seems uncool | |
| 16:11:15 | bauzas | I guess we could hit the problem often with multicreate | |
| 16:11:30 | gibi | sean-k-mooney: placement stores the project_id and user_id of each consumer so that usages can be aggregated per project | |
| 16:11:30 | bauzas | ie. server create --max 2 | |
| 16:11:38 | sean-k-mooney | why does placement need to be project wawre beyond storigng the project/user id in the allocation? | |
| 16:11:54 | bauzas | sean-k-mooney: because we use it from an API query | |
| 16:12:01 | dansmith | sean-k-mooney: it's relational so it has a table for it I think | |
| 16:12:07 | sean-k-mooney | yes im aware it there for usage | |
| 16:12:11 | bauzas | you can filter per project | |
| 16:12:17 | gibi | https://docs.openstack.org/api-ref/placement/?expanded=list-usages-detail#list-usages | |
| 16:12:19 | sean-k-mooney | but im not sure what resouce in the db we would need to create that would race | |
| 16:12:21 | bauzas | this was my question earlier this EU morning time :) | |
| 16:12:34 | gibi | sean-k-mooney: it is the row in the projects table | |
| 16:12:35 | dansmith | sean-k-mooney: the first time that entry goes into the table for the project? | |
| 16:12:43 | gibi | yes ^^ | |
| 16:12:48 | bauzas | correct | |
| 16:12:54 | sean-k-mooney | right im wondering why we need a proejct tbale at all | |
| 16:13:09 | dansmith | ...because it's relational :) | |
| 16:13:11 | gibi | sean-k-mooney: for the /usages?project_id= query | |
| 16:13:12 | sean-k-mooney | i assuem its just for forine key constriants | |
| 16:13:28 | sean-k-mooney | dansmith: right but we dont actuly do that in other dbs in openstack | |
| 16:13:41 | dansmith | we could create the project first in a separate transaction, which is easy to retry, but that's definitely surgery | |
| 16:13:47 | dansmith | sean-k-mooney: not because it's a good idea :) | |
| 16:14:10 | gibi | dansmith: actually I think that is what happened before consumer_types | |
| 16:14:47 | gibi | dansmith: project_id user_id and consumer creation was each in a separate transaction, then a single transaction created / updated the allocation | |
| 16:15:04 | dansmith | gibi: ah, so this is more fallout from that work? | |
| 16:15:09 | gibi | it seems so | |
| 16:15:16 | dansmith | okay | |
| 16:15:22 | gibi | dansmith: this changed, now the whole PUT /allocations is a single DB transaction | |
| 16:15:40 | dansmith | for something like the project record, it makes sense to do that in a separate transaction I think | |
| 16:15:45 | gibi | and when that transaction founds a duplicate project it dies even if we catch the exception from sqla | |
| 16:15:48 | sean-k-mooney | i wonder if we shoudl drop those tables in the future and just store the uuids direcly in the allcoation table | |
| 16:15:51 | dansmith | gibi: further explains the large-ness of the transaction being a problem I guess | |
| 16:16:00 | bauzas | dansmith: that's why I nearly consider this as a regression | |
| 16:16:13 | dansmith | bauzas: definitely sounds like a regression | |
| 16:16:19 | bauzas | we stepped into this mess in Xena | |
| 16:16:39 | opendevreview | Merged openstack/nova master: Parse extended resource request from the port data https://review.opendev.org/c/openstack/nova/+/800085 | |
| 16:16:39 | dansmith | sean-k-mooney: only if we want it to be slower and more bloated I think :) | |
| 16:17:15 | gibi | the reason this become a single transaction is that consumer_type can be updated during PUT /allocations and if that happens in a separate transaction then we leak the update | |
| 16:17:17 | sean-k-mooney | well right now we are going to have to do a select by uuid to get the id in the project/user tabel then join based on that to the allcoation | |
| 16:17:39 | bauzas | I have no idea because I haven't looked at code yet, but is it crazy to switch back to the 2-step transactional model we had before ? | |
| 16:17:50 | dansmith | gibi: but we're just recording projects for relational purposes, so even if the allocation put doesn't succeed, it's fine that we've created the project record right? | |
| 16:17:51 | sean-k-mooney | so im not sure it would be slow to just to a select againt the allcoation table directly with an index on the user_id/project_id columns | |
| 16:18:00 | bauzas | ie. get the projet or create it, first, then do the allocation update | |
| 16:18:10 | gibi | dansmith: yes, for project and user it is fine, for consumer_type it is not fine | |
| 16:18:14 | bauzas | into two transactions | |
| 16:18:16 | dansmith | gibi: right | |
| 16:19:03 | gibi | so we can move back to many transactions but then we need to figure out how to move the consumer_type update to the last big transaction | |
| 16:19:19 | dansmith | yeah, which is surgery for sure | |
| 16:19:36 | dansmith | was melwitt the one that wrote the consumer type patches? | |
| 16:19:40 | dansmith | maybe we should get her consult | |
| 16:19:51 | gibi | it was melwitt who updated it after cdent left | |
| 16:20:03 | dansmith | well, right | |
| 16:20:06 | gibi | so she knows more | |
| 16:20:16 | dansmith | $current_owner = 'melwitt' is what I meant :) | |
| 16:20:20 | gibi | yeah | |
| 16:20:44 | gibi | OK, I guess that is it for now about this bug I will ping melwitt about it and record this discussion inthe bug | |
| 16:20:48 | gibi | moving on | |
| 16:21:03 | gibi | is there any other nova bug (gate or not) we need to discuss? | |
| 16:21:20 | bauzas | did we put the hot potato into someone's hand who isn't there ? excellent outcome of this discussion :p | |
| 16:21:33 | opendevreview | Merged openstack/nova master: Transfer RequestLevelParams from ports to scheduling https://review.opendev.org/c/openstack/nova/+/791506 | |
| 16:21:39 | gibi | bauzas: I can still feel the responsibility until I can talk to melwitt | |