| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-02-27 | |||
| 21:10:40 | melwitt | but looking at the queued_for_delete migration made me think maybe it would be too inefficient to go the other direction | |
| 21:11:12 | melwitt | the reason it can come back as "all done" is about I made it iterate cells and migrate that way | |
| 21:11:24 | mriedem | hmm | |
| 21:11:29 | melwitt | *when there are instance in-flight being scheduled | |
| 21:11:40 | mriedem | so if i'm cern and i've got 72 cells and running this in batches, | |
| 21:11:57 | mriedem | it's going to query instance mappings from the same cells every time until it find something new to process right? | |
| 21:12:27 | mriedem | e.g. we've migrated everything for cells 1-50 | |
| 21:12:35 | dansmith | are you talking about how to migrate the mappings in a migration? | |
| 21:12:39 | mriedem | to start processing cells after 50, we have to check 1-50 all over again | |
| 21:12:52 | mriedem | https://review.openstack.org/#/c/633351/14/nova/objects/instance_mapping.py@243 | |
| 21:13:01 | dansmith | you process the records by which mappings have a null user_id | |
| 21:13:14 | dansmith | you collate those by cell, and do them in batches against the cell | |
| 21:13:23 | dansmith | you don't re-process anything because you've set the value to non-null once it's done | |
| 21:13:41 | melwitt | yeah, I did it similar to queued_for_delete, it gets instance mappings that have instances in cells | |
| 21:13:41 | mriedem | i don't tihnk that's what this is doing | |
| 21:14:00 | dansmith | I'm describing what it *should* do | |
| 21:14:35 | melwitt | but it will miss instance mappings that don't yet have an instance in a cell (I think) | |
| 21:14:56 | dansmith | the current implementation will you mean | |
| 21:14:58 | melwitt | yeah | |
| 21:15:07 | dansmith | sure, but iterating by cell makes no sense anyway, IMHO | |
| 21:15:11 | mriedem | well it's based on populate_queued_for_delete which dansmith wrote so i hope it's correct :) | |
| 21:15:32 | melwitt | ok :( I will redo it | |
| 21:16:48 | mriedem | well i guess have dansmith look at https://review.openstack.org/#/c/633351/14/nova/objects/instance_mapping.py and make sure we're on the same page | |
| 21:17:57 | dansmith | I probably did the qfd one by cell because you had to get a list of instances not deleted per cell | |
| 21:18:14 | dansmith | or rather, if you don't find an instance deleted per cell, then you mark all of those mappings as not deleted | |
| 21:18:40 | dansmith | but you don't need to do that in this case.. you want to batch/collate by cell, but you can do that with a single query I think in the other case | |
| 21:20:49 | dansmith | neither the user_id or qfd ones probably need to care about things in-flight that don't have that set, | |
| 21:21:07 | dansmith | since you have to run this after you've upgraded your controller code, so things in flight there would already be setting the new value | |
| 21:21:13 | dansmith | meaing, things that don't have a cell yet | |
| 21:25:07 | melwitt | right | |
| 21:26:15 | melwitt | oh, hm ok. I misread at first | |
| 21:26:54 | melwitt | have to run this after upgraded controller code, so things in flight there would already be setting user_id | |
| 21:28:06 | dansmith | right you have to have upgraded the code that can handle the new format for a thing before you start running migrations to move them into the new format of course | |
| 21:28:37 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Optimize populate_queued_for_delete online data migration https://review.openstack.org/639840 | |
| 21:28:37 | melwitt | what about old controller, in-flight, upgrade controller, run online_data_migrations, doesn't that fall through the cracks? | |
| 21:28:39 | mriedem | while we're talking about this ^ | |
| 21:29:12 | mriedem | melwitt: if we hit that, the GET /servers/{server_id} would migrate the mapping | |
| 21:29:36 | melwitt | ok | |
| 21:30:58 | melwitt | ok, will take another stab at this | |
| 21:31:19 | mriedem | this, or something | |
| 21:31:25 | mriedem | something is getting stabbed | |
| 21:31:42 | openstackgerrit | sean mooney proposed openstack/os-vif master: add additional check and gate jobs for os-vif https://review.openstack.org/639732 | |
| 21:31:44 | dansmith | melwitt: for the qfd you mean? I guess maybe, but it would still be cleared once you delete that | |
| 21:31:58 | dansmith | melwitt: for user_id if you process by mapping and not by cell, then it doesn't matter | |
| 21:32:09 | melwitt | no, for user_id | |
| 21:32:52 | melwitt | when you said "user_id doesn't need to care about things in-flight that don't have it set" | |
| 21:34:43 | dansmith | melwitt: I'm confused if or what you're asking | |
| 21:34:50 | melwitt | dansmith: but I think I get it now that if we process by mapping, it will catch them | |
| 21:34:56 | dansmith | right | |
| 21:35:02 | dansmith | I said | |
| 21:35:21 | melwitt | I was just thinking if we go by cell then we would miss something in a super specific timed case | |
| 21:35:26 | dansmith | "probably don't need to care" meaning that leaking things in flight probably isn't as big of a deal.. but not saying we should ignore them or not try to get them | |
| 21:35:37 | dansmith | sure | |
| 21:35:39 | melwitt | oh, I see. got it | |
| 21:37:39 | openstackgerrit | Matt Riedemann proposed openstack/python-novaclient master: Add support for microversion 2.70 - expose device tags https://review.openstack.org/636779 | |
| 21:38:46 | sean-k-mooney | jaypipes: o/ i fixed yup the typos in https://review.openstack.org/#/c/639732/6 care to +2 +w again? | |
| 21:45:50 | mriedem | mordred: i think you'll enjoy this https://bugs.launchpad.net/nova/+bug/1817963 | |
| 21:45:51 | openstack | Launchpad bug 1817963 in OpenStack Compute (nova) "API reference tells users to not create servers with availability_zone "nova" but the server create samples use "nova" for the AZ :(" [Medium,Triaged] - Assigned to Matt Riedemann (mriedem) | |
| 21:48:21 | melwitt | extra points for the sad face | |
| 21:48:39 | mriedem | "don't do this" | |
| 21:48:50 | mriedem | "here is an example of how to create a server, with exactly what not to do" | |
| 21:48:59 | mriedem | "you're welcome" | |
| 21:49:11 | melwitt | go us | |
| 21:51:19 | artom | Like something out of Zoolander | |
| 21:52:47 | artom | Bruce Migate | |
| 21:53:14 | melwitt | migrations that run good and do other stuff good too | |
| 21:57:03 | artom | What is this, a server for ants? | |
| 22:00:18 | jaypipes | sean-k-mooney: done | |
| 22:06:17 | efried | Howdy folks. How, in the ServersTestBase harness, does one go from a server dict to an Instance object? | |
| 22:06:41 | cfriesen | is anyone aware of weirdness with accessing image_meta in the resize code path in devstack? | |
| 22:07:28 | artom | cfriesen, weirdness? It's a method disguised as a property, but other than that... | |
| 22:07:36 | artom | So, you can't actually set it, IIRC | |
| 22:08:18 | cfriesen | artom: I'm not seeing entries that I think should be in there. | |
| 22:08:38 | cfriesen | artom: they're in the instance_system_metadata table in the DB | |
| 22:09:18 | artom | cfriesen, lazy-loading? | |
| 22:09:24 | artom | Guessing, mostly | |
| 22:09:33 | openstackgerrit | Eric Fried proposed openstack/nova master: Test proper allocation of devices during reshape https://review.openstack.org/639854 | |
| 22:13:07 | efried | mriedem, jaypipes: I think vgpu reshape is ready to go https://review.openstack.org/#/c/636591/ | |
| 22:14:23 | melwitt | efried: AFAIK, I don't think doing that is a thing. why do you want to do it? | |
| 22:14:55 | efried | melwitt: just because there's a libvirt method I want to call that expects Instance. See https://review.openstack.org/639854 | |
| 22:15:48 | melwitt | oh, I see. I haven't seen a test like that before | |
| 22:16:36 | melwitt | mriedem is probably your best bet for an idea | |
| 22:17:08 | mriedem | cfriesen: that's because image meta is stored in instance_system_metadata | |
| 22:17:33 | mriedem | cfriesen: hence https://github.com/openstack/nova/blob/master/nova/objects/image_meta.py#L126 | |
| 22:19:37 | mordred | mriedem: wow, yea. that's awesome | |
| 22:19:42 | mriedem | efried: commented | |
| 22:19:45 | cfriesen | mriedem: _get_guest_config() is called with "image_meta" as an arg, but image_meta.properties.get('traits_required') returns nothing | |
| 22:19:47 | mriedem | on your test that is | |
| 22:20:07 | mordred | mriedem: have we ever fixed documentation suggesting people not use "RegionOne" as the region names for their clouds? | |
| 22:20:21 | melwitt | heh, well that was easy | |
| 22:20:25 | mriedem | mordred: not familiar | |
| 22:20:28 | efried | thanks mriedem | |
| 22:20:36 | cfriesen | mriedem: I see "image_trait:COMPUTE_SECURITY_TPM_1_2" in table instance_system_metadata though | |
| 22:20:39 | mordred | mriedem: and here I thought you knew everything | |
| 22:21:17 | mriedem | mordred: i'm selfish and only care about compute api docs | |
| 22:21:42 | mriedem | heh lots o todos here https://developer.openstack.org/api-guide/compute/users.html | |
| 22:22:45 | mriedem | cfriesen: _get_guest_config() called with image_meta from where? the API? | |
| 22:22:56 | artom | Do you think egotistical lobsters are shellfish? | |
| 22:23:13 | mriedem | if only the guy that added all the required image traits stuff was still around... | |
| 22:23:24 | cfriesen | mriedem: this is in the context of LibvirtDriver.finish_migration(). I'm wondering if we're not properly passing in image_meta at all. | |