| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-10-15 | |||
| 12:46:05 | stephenfin | gibi: I saw that, yeah. If we've slides, that ought to do the trick | |
| 12:46:22 | slaweq | gibi: ok, thx | |
| 12:47:46 | gibi | efried: I searched gerrit now but I haven't found a patch | |
| 12:47:54 | gibi | stephenfin: OK, cool | |
| 12:47:56 | efried | yeah, me neither, hm... | |
| 12:48:55 | efried | I was sure there was a bug at least... | |
| 12:50:35 | openstack | Launchpad bug 1836754 in OpenStack Compute (nova) "Conflict when deleting allocations for an instance that hasn't finished building" [Medium,Confirmed] | |
| 12:50:35 | efried | gibi, slaweq: does this look right? https://bugs.launchpad.net/nova/+bug/1836754 | |
| 12:50:50 | slaweq | efried: yes, I just found it now :) | |
| 12:51:47 | slaweq | efried: thx for looking for it | |
| 12:51:51 | gibi | efried: yeah, down in the comments there is another failure when the compute host is deleted | |
| 12:53:06 | efried | gibi: this is another case where it would be useful to be able to distinguish between consumer and provider conflicts | |
| 12:53:31 | efried | We don't care if we get a provider conflict here, but if we get a consumer conflict that's bad. | |
| 12:53:47 | gibi | efried: noted. I still have a TODO to make progress on that | |
| 12:54:29 | efried | we could solve this with a retry, but without making that ^ distinction, I'm not sure it's the right thing to do. | |
| 12:54:47 | efried | ...or that it's better than just using an old (generation-less) microversion to drop the allocs. | |
| 12:55:03 | efried | ...or using the DELETE route which IIRC doesn't do generations at all. | |
| 12:55:13 | efried | (because no payload). | |
| 12:55:28 | efried | (and we don't put that stuff in headers) | |
| 12:57:22 | gibi | I think we need to retry on consumer conflict as well. This bug basically means that the server delete codepatch racing with the server create codepath. The end user want's the server to be deleted so even if the create codepath updated the server allocation we need to delete the updated allocation | |
| 12:58:06 | gibi | so if we want to delete that allocation in every case, then we can even call DELETE without the generation checking | |
| 12:58:31 | efried | If we can be sure we're in the instance delete flow, I agree with you. | |
| 12:59:14 | efried | Meaning we can't just go hard at the report.py level; we have to {call a different method | send a specific flag} indicating we want to force it. | |
| 12:59:56 | efried | because in the general case if we're deleting allocations and something changes the consumer, it doesn't necessarily mean we want to proceed. | |
| 13:00:06 | gibi | efried: you are right | |
| 13:00:26 | efried | Though I'm not sure how we could race e.g. a resize and a migrate | |
| 13:00:29 | gibi | efried: we need to be careful and only force the delete from the server delete codepath | |
| 13:01:23 | efried | btw I checked the placement logs in slaweq's repro and they don't include the message for the 409, so I can't tell whether it was indeed a provider conflict. | |
| 13:08:53 | gibi | efried: in the placement log here is the conflict Oct 14 14:45:26.823202 | |
| 13:09:36 | gibi | efried: around that there is multiple PUT request for consumer 5b5b12dc | |
| 13:10:26 | gibi | efried: nova-api doing a local delete for server 5b5b12dc | |
| 13:12:38 | gibi | efried: so at least slaweq's repor is a race between a server create and a server delete | |
| 13:14:37 | efried | mm. So we could fix this with a hard delete -- but what actually worries me is the reverse problem. | |
| 13:15:01 | efried | what if the delete happens first, and then the create comes in? We would have leaked allocations. | |
| 13:17:29 | efried | we should have some way for the delete to abort the create... | |
| 13:17:53 | efried | But I guess that's another problem for another day. | |
| 13:28:39 | mriedem | https://zuul.opendev.org/t/openstack/build/4da3c44dcbcd4ed7aa04a8dcaa19c011/log/logs/grenade.sh.txt.gz#35366 | |
| 13:28:39 | mriedem | stephenfin: since you care about the py2 droppage, grenade jobs are failing on some weird package things | |
| 13:28:51 | mriedem | that's with py2 on the old (train) side and py3 on the new (ussuri) side | |
| 13:29:04 | mriedem | ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. | |
| 13:29:35 | mriedem | gibi: efried: i'm pretty sure melwitt brought up that bug the other day (the local delete conflict), | |
| 13:29:42 | mriedem | did someone report a bug for it? | |
| 13:30:19 | openstack | Launchpad bug 1836754 in OpenStack Compute (nova) "Conflict when deleting allocations for an instance that hasn't finished building" [Medium,Confirmed] | |
| 13:30:19 | mriedem | looks like artom already opened one for the same thing https://bugs.launchpad.net/nova/+bug/1836754 | |
| 13:30:25 | gibi | mriedem: yes, that one | |
| 13:31:53 | mriedem | last time i looked we just need a retry in the local delete case | |
| 13:32:10 | gibi | mriedem: yeah, that was my understanding above as well | |
| 13:33:02 | mriedem | "what if the delete happens first, and then the create comes in? We would have leaked allocations." | |
| 13:33:04 | mriedem | yeah that is a problem | |
| 13:33:12 | mriedem | since the create will just re-create the consumer and allocations in placement | |
| 13:33:27 | mriedem | hear me out, SOFT DELETE-ABLE CONSUMERS! | |
| 13:35:06 | mriedem | efried: i'd think we could trap that case in conductor once the response comes from the scheduler, | |
| 13:35:42 | mriedem | b/c we'll check if the build request has been deleted in the interim during scheduling and if so halt the build process - at that point we could cleanup allocations (do we not already?) | |
| 13:38:56 | dansmith | gibi: got it | |
| 13:39:07 | gibi | dansmith: thanks! | |
| 13:41:25 | efried | mriedem: we might already, yeah. | |
| 13:42:55 | mriedem | gibi: efried: i might work up a functional test to recreate it since unit tests aren't going to cut it for that kind of interaction | |
| 13:43:32 | efried | cool | |
| 13:44:08 | efried | brinzhang: yt? | |
| 13:44:13 | gibi | mriedem: cool, sorry I'm busy today - tomorrow so I did not bite | |
| 13:44:28 | mriedem | np | |
| 13:59:49 | dansmith | mriedem: I think you oughta drop your -W on that (now) base patch and I'll +2.. I know you're going to add the test later and it sounds like you don't think it's likely to break as it is | |
| 14:09:19 | mriedem | dansmith: ok | |
| 14:09:38 | dansmith | I already +2d | |
| 14:38:27 | stephenfin | mriedem: Ugh, that's pip's total lack of a dependency resolution biting us in the ass. I've no idea how to fix that | |
| 14:38:35 | stephenfin | Is that the log from my patch or something else? | |
| 14:42:20 | dansmith | so, there's a cinder tempest test that is running assertEqual() and failing because an updated_at stamp isn't exactly what it expects... | |
| 14:42:35 | dansmith | I don't see that up on e-r | |
| 14:44:56 | dansmith | it's the minimum basic scenario, where it expects the post-volume-create list to exactly match a show a couple statements later, but seems like something else has touched that volume | |
| 14:45:10 | dansmith | mriedem: know anything about such a thing? | |
| 14:51:09 | mriedem | updated_at or something is different right? | |
| 14:51:16 | mriedem | i've seen that before, maybe a new regression | |
| 14:51:38 | mriedem | stephenfin: it was a log from my devstack patch to default USE_PYTHON3=True which your patch depends on | |
| 14:51:53 | mriedem | note i brought it up in -tc since they were talking about this upgrade testing yesterday | |
| 14:51:56 | dansmith | mriedem: yep. | |
| 14:53:38 | mriedem | dansmith: got a link to a job failure? | |
| 14:53:56 | stephenfin | mriedem: I've a minimal reproducer here: http://paste.openstack.org/show/783995/ | |
| 14:53:56 | dansmith | mriedem: https://365c4224c221ec730c2d-019bc8f0795daf4dab730f80e83974fa.ssl.cf1.rackcdn.com/627891/62/check/nova-next/58f7f91/testr_results.html.gz | |
| 14:53:59 | openstack | Launchpad bug 1838202 in tempest "TestMinimumBasicScenario.test_minimum_basic_scenario race fail comparing volume to expected values with updated_at diff" [Undecided,New] | |
| 14:53:59 | mriedem | oh https://bugs.launchpad.net/tempest/+bug/1838202 | |
| 14:54:00 | openstackgerrit | Merged openstack/nova master: VMware: Update flavor-related metadata on resize https://review.opendev.org/681004 | |
| 14:54:00 | mriedem | dansmith: ^ | |
| 14:54:08 | stephenfin | Stupid pip | |
| 14:54:14 | dansmith | mriedem: ah nice, I didn't see that on e-r | |
| 14:54:38 | mriedem | because it's not....let me look | |
| 14:55:35 | dansmith | if my logstashing is right, looks like it started around 10/7 although not sure how much history we have, that's about a week ago | |
| 14:56:13 | mriedem | yeah the pain in the ass is the mismatch is singleline indexing | |
| 14:56:23 | dansmith | yeah | |
| 14:56:24 | mriedem | logstash only goes back 10 days | |
| 14:56:30 | openstack | bug 78 in Baz (deprecated) "When asking you to sign something; baz should tell you what" [Medium,Won't fix] https://launchpad.net/bugs/78 | |
| 14:56:30 | mriedem | i reported that bug 78 days ago | |
| 14:56:49 | dansmith | yeah | |
| 14:56:49 | openstack | bug 666 in Launchpad itself "can't file a bug on Ubuntu" [Medium,Invalid] https://launchpad.net/bugs/666 | |
| 14:56:49 | mriedem | heh bug 666 | |
| 15:05:08 | mriedem | it looks like the dict keys are at least sorted so i can do: | |
| 15:05:11 | mriedem | http://logstash.openstack.org/#dashboard/file/logstash.json?query=message%3A%5C%22actual%20%20%20%20%3D%20%7B'attachments'%3A%20%5B%5D%2C%5C%22%20AND%20tags%3A%5C%22console%5C%22&from=7d | |
| 15:06:03 | dansmith | hmm, that only shows two hits/ | |
| 15:06:14 | dansmith | maybe those are the two I looked at | |
| 15:07:57 | stephenfin | mriedem: https://review.opendev.org/688731 | |
| 15:08:31 | mriedem | dansmith: yeah it's on 627891 | |