| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-08-06 | |||
| 18:55:49 | lyarwood | wonderful | |
| 18:55:53 | sean-k-mooney | with one per numa node | |
| 18:56:01 | sean-k-mooney | the are in the instance directory | |
| 18:56:17 | sean-k-mooney | why do you ask | |
| 18:56:35 | sean-k-mooney | thats one per guest numa node by the way | |
| 18:56:50 | lyarwood | oh no reason | |
| 18:57:15 | sean-k-mooney | there si a libvirt config option memory_backing_dir that you can set to chooese where to put them | |
| 19:14:38 | artom | stephenfin, so you're saying you'll edit out the typing stuff when you backport https://review.opendev.org/#/c/744958/ ? | |
| 19:14:49 | artom | I mean, I'd have done it right away by doing 2 patches, but w/e works | |
| 19:16:00 | stephenfin | artom: Yup, though only because I have to for Train (it's not Python 3-only) | |
| 19:16:39 | stephenfin | If it was, I'd leave them since they're a noop until mypy is enabled for that file (via mypy-files.txt) | |
| 19:17:13 | artom | stephenfin, ack, I'll remove my -1 then. I still don't fully get the problem/fix though :P | |
| 19:17:18 | stephenfin | a second patch is also doable, but I find the type hints help understand what's getting passed around | |
| 19:17:22 | stephenfin | I'm replying with that now | |
| 19:17:35 | artom | Yeah, I can understand that (the typing hints helping) | |
| 19:19:21 | stephenfin | artom: comments left. Let me know if that makes sense | |
| 19:20:56 | artom | stephenfin, ah, I think I get it - we don't "delta" the usage, we rebuild it from scratch every time. So if a certain migration/instance doesn't get counted as "tracked", it'll effectively unpin its PCPUs | |
| 19:21:11 | stephenfin | Yup, exactly | |
| 19:21:48 | artom | OK, great, so that's 1 hour to understand the concept. | |
| 19:21:53 | artom | Now to review the actual code :P | |
| 19:22:02 | artom | Need to pick up food first though | |
| 19:22:30 | stephenfin | TBH, that whole periodic task feels racy and generally wrong to me, but it does state that it's intention is to blow everything away and start from scratch so... | |
| 19:22:55 | stephenfin | yet another thing to add my "tech debt I really need to get back to" list, I guess | |
| 19:23:09 | artom | It's definitely not the first race in there | |
| 19:23:49 | artom | See: https://review.opendev.org/#/c/684409/ | |
| 19:23:57 | stephenfin | For sure. I decided not to start listing the related bugs of the related bugs, because it started getting ridiculous | |
| 19:24:19 | stephenfin | concurrency is hard | |
| 19:24:30 | artom | Yeah, chill with that, you trying to one-up George RR Martin or something? | |
| 19:26:43 | stephenfin | Try to write an explanation for https://review.opendev.org/744021 (with other nova devs that don't have this specific libvirt CPU pinning knowledge in mind) and let me know how you get on :P | |
| 19:44:54 | sean-k-mooney | stephenfin: speaking about racy periodics | |
| 19:45:40 | sean-k-mooney | its possible that we have a race between them starting in general on inital boot and the compute agent looking up it compute node uuid or maybe even creating the compute node record | |
| 19:46:41 | sean-k-mooney | i say its posible becuase im expecting a bug to be filed for http://pastebin.test.redhat.com/891237 | |
| 19:47:23 | sean-k-mooney | and that is my working theory on how we could be trying to update a compute node recored with a compute_node_id of none | |
| 19:49:14 | sean-k-mooney | oh but that one does not have have startup set.... | |
| 19:49:17 | sean-k-mooney | https://github.com/openstack/nova/blob/9ecefeb836964c52a5a2969b15c82b11c51d32ab/nova/compute/manager.py#L9723 | |
| 19:49:56 | sean-k-mooney | and it gets the compute nodes at the start https://github.com/openstack/nova/blob/9ecefeb836964c52a5a2969b15c82b11c51d32ab/nova/compute/manager.py#L9697-L9700 | |
| 19:50:09 | sean-k-mooney | well that theroy did not last long | |
| 19:52:47 | sean-k-mooney | oh i did not read that write it was trying to insert a default consturced/empty pci deivcie object | |
| 19:54:26 | sean-k-mooney | tommorows problem | |
| #openstack-nova - 2020-08-07 | |||
| 02:04:38 | openstackgerrit | Brin Zhang proposed openstack/nova master: [Trivial] Remove wrong format_message() conversion https://review.opendev.org/744280 | |
| 04:07:02 | openstackgerrit | Tony Su proposed openstack/nova master: Provider Config File: Function to further validate and retrieve configs https://review.opendev.org/676029 | |
| 04:07:03 | openstackgerrit | Tony Su proposed openstack/nova master: Provider Config File: Functions to merge provider configs to provider tree https://review.opendev.org/676522 | |
| 04:07:03 | openstackgerrit | Tony Su proposed openstack/nova master: Provider Config File: Enable loading and merging of provider configs https://review.opendev.org/693460 | |
| 04:47:44 | openstackgerrit | Luyao Zhong proposed openstack/nova master: introduce a new driver interface 'cleanup_instance' https://review.opendev.org/714653 | |
| 04:47:44 | openstackgerrit | Luyao Zhong proposed openstack/nova master: track error migrations in resource tracker https://review.opendev.org/745281 | |
| 04:47:45 | openstackgerrit | Luyao Zhong proposed openstack/nova master: track orphans in resource tracker https://review.opendev.org/745282 | |
| 06:59:00 | openstackgerrit | Luyao Zhong proposed openstack/nova master: track error migrations in resource tracker https://review.opendev.org/745281 | |
| 06:59:01 | openstackgerrit | Luyao Zhong proposed openstack/nova master: track orphans in resource tracker https://review.opendev.org/745282 | |
| 07:11:40 | gibi | good morning | |
| 07:38:10 | tony_su | stephenfin: gibi: alex_xu: new provider-config-file patches uploaded change log 1) all comments except one in the last patch relected in code or answered 2) add docstring for each test case | |
| 07:39:05 | tony_su | unfortunately, so far I don't know how to use nova-manage command to help provider config. | |
| 07:42:02 | tony_su | stephenfin: does it mean we need to upgrade nova-manage command to offer some new option to validate the validity of provider.yaml file? | |
| 07:42:43 | tony_su | for this comment https://review.opendev.org/#/c/693460/35/doc/source/admin/managing-resource-providers.rst@205 | |
| 07:52:01 | stephenfin | tony_su: Yeah, exactly. I'm thinking we simply add a command (e.g. 'nova-manage placement validate-schema $SCHEMA') that attempts to load the provided schema and provides an error code and message if it's not valid | |
| 07:53:49 | tony_su | Must we do it this time or can we do it later? I am not fairly faimiliar with nova-manage command and I dont' know how long it can be done. | |
| 07:54:17 | tony_su | I am a little bit worried we will miss Victoria if do so. | |
| 08:40:52 | gibi | tony_su, stephenfin: I'm fine handling the nova-manage part as an addition on top of the series as I don't consider that as a blocker for the feature to merge. Let's focuse on merging what is ready (I know I should spend some time reviewing that series too). | |
| 09:07:53 | openstackgerrit | Stephen Finucane proposed openstack/os-vif master: mypy: Add type annotations https://review.opendev.org/745162 | |
| 09:07:54 | openstackgerrit | Stephen Finucane proposed openstack/os-vif master: mypy: Extend type annotations to 'vif_plug_noop' https://review.opendev.org/745163 | |
| 09:31:11 | tony_su | gibi: stephenfin has been doing great, detailed review for each patch. your review can still effectively speedup our progress... | |
| 09:36:55 | kashyap | lyarwood: Can you remind me, please: does Nova stash 'host-capabilities' somewhere? | |
| 09:37:14 | kashyap | It does, IIRC | |
| 09:38:07 | lyarwood | kashyap: hmm I know we grab them at startup | |
| 09:38:14 | kashyap | lyarwood: Damn | |
| 09:38:26 | kashyap | lyarwood: So the problem I'm debugging w/ a TripleO upgrade dev is this: | |
| 09:39:47 | lyarwood | kashyap: it doesn't look like we stash them anywhere | |
| 09:40:06 | lyarwood | kashyap: we appear to be grabbing a fresh copy from libvirt everytime we need them | |
| 09:40:35 | kashyap | lyarwood: Hmm. Got a code pointer? | |
| 09:42:20 | lyarwood | kashyap: https://paste.centos.org/view/86fa4860 | |
| 09:44:21 | kashyap | lyarwood: Excellent! That helped | |
| 09:44:31 | kashyap | lyarwood: Context: | |
| 09:45:04 | kashyap | lyarwood: During FFU, some hosts report the CPU feature 'arch-facilities' (to make matters worse, it's called differently on EL8: 'arch-capabilities') | |
| 09:45:42 | kashyap | lyarwood: So migration from EL7 to EL8 fails (on appropriate hardware) with: "libvirt.libvirtError: internal error: Unknown CPU feature arch-facilities" | |
| 09:45:55 | kashyap | lyarwood: To 'workaround' that, we need to disable the 'arch-facilities' on the source host | |
| 09:46:02 | lyarwood | kashyap: isn't that a libvirt bug? | |
| 09:46:15 | kashyap | s/disable/comment-out | |
| 09:46:22 | lyarwood | kashyap: ah wait, is it the way we generate the xml on the src? | |
| 09:46:29 | kashyap | lyarwood: No, it's not :-( I talked w/ Jiri Denemark today | |
| 09:46:51 | kashyap | In short, we (Nova) need to improve on how we're doing CPU checks. Some checks are redundant (as libvirt does them anyway) | |
| 09:46:56 | lyarwood | kashyap: we can handle that in https://github.com/openstack/nova/blob/9ecefeb836964c52a5a2969b15c82b11c51d32ab/nova/virt/libvirt/migration.py#L56-L70 | |
| 09:47:02 | kashyap | lyarwood: Yeah, indeed. The guest XML itself doesn't have 'arch-facilities' | |
| 09:50:32 | kashyap | lyarwood: /me clicks | |
| 09:52:15 | kashyap | lyarwood: So, let me explain the sequence of the current workaround: | |
| 09:59:05 | kashyap | 1. Double-check none of the EL7 instance XML contain 'arch-facilities' CPU feature. Normally, the guests do _not_ have them. | |
| 09:59:08 | kashyap | 2. Run `virsh capabilities | grep arch-facilities` — it will be present | |
| 09:59:11 | kashyap | 3. Comment out 'arch-facilties' in /usr/share/libvirt/cpu_share.xml | |
| 09:59:14 | kashyap | 4. Restart 'libvirtd' and 'nova-compute' service (both are needed) | |
| 09:59:16 | kashyap | 5. Then run `virsh capabilities`, again: it will now be absent (expected) | |
| 09:59:19 | kashyap | 6. Now migrate the guest from EL7 to EL8: it _must_ succeed. | |
| 09:59:29 | kashyap | (The above is when migrating only from source hardware that supports 'arch-facilities' CPU feature.) | |
| 10:01:57 | lyarwood | urgh we need to fix this in Nova tbh | |
| 10:02:14 | lyarwood | we can check on the dest if arch-capabilities is set | |
| 10:02:26 | lyarwood | if it is, use it in the migration xml we send there | |
| 10:03:05 | lyarwood | if it isn't but arch-facilities is set on the src, remove that from the migration xml | |
| 10:03:12 | lyarwood | does that sound right? | |
| 10:05:40 | kashyap | lyarwood: Reading the scroll | |
| 10:05:49 | lyarwood | brb coffee | |
| 10:06:15 | kashyap | lyarwood: Right, that does sound correct. I'm gonna file a bug for it | |
| 10:06:43 | kashyap | lyarwood: Oh, but note: 'arch-facilties' is marked as *non-migratable* | |
| 10:10:35 | lyarwood | /o\ | |