| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-07-30 | |||
| 09:03:05 | artom_ | bauzas, have time to hit https://review.opendev.org/c/openstack/nova/+/802697? | |
| 09:21:27 | artom | bauzas, thanks for the review - so, I did consider doing a functional test, but given that this is 1. niche and 2. straightforward, any functional test I'd write would be either 1. a lot of groundwork to use the Ironic virt driver in the test or 2. have so much stuff mocked out, it'd be functionally (heh) identical to the existing unit test | |
| 09:29:25 | bauzas | artom: you don't need to use the ironic driver | |
| 09:29:49 | bauzas | artom: just use the standard fake driver and mock out (in the func test) the return you want | |
| 09:30:02 | artom | bauzas, that's what the unit test is doing :P | |
| 09:30:27 | artom | I mean OK, it's not using any virt driver | |
| 09:30:28 | bauzas | artom: I know but you wouldn't verify the output of a method call, right? | |
| 09:30:36 | bauzas | for the functest | |
| 09:30:51 | bauzas | you would verify the expected behaviour | |
| 09:30:54 | stephenfin | bauzas: sometimes "good enough" is okay :) | |
| 09:31:35 | bauzas | stephenfin: i know and that's why I asked whether there was urgency | |
| 09:32:04 | bauzas | the bug itself isn't about Ironic | |
| 09:32:14 | artom | bauzas, err, yes it is? | |
| 09:32:19 | artom | How else would you hit this besides Ironic? | |
| 09:32:30 | bauzas | the problem is that we raise up to the API an exception when we don't find compute nodes for a service deletion | |
| 09:32:41 | artom | ... which can only happen with Ironic :) | |
| 09:32:44 | bauzas | sure | |
| 09:33:03 | bauzas | but the regression should verify that we get an API exception | |
| 09:33:16 | bauzas | when calling the API service delete | |
| 09:33:36 | artom | self.assertRaises( | |
| 09:33:36 | bauzas | while the fix should just modify the api return | |
| 09:33:37 | artom | webob.exc.HTTPInternalServerError | |
| 09:35:23 | bauzas | I saw | |
| 09:35:25 | bauzas | anyway | |
| 09:36:11 | bauzas | I'm just asking to use a design framework | |
| 09:36:50 | bauzas | because we're an opensource community and we try to use the same frameworks in general as we want contributors to know about them | |
| 09:36:58 | bauzas | we can do this other way | |
| 09:37:07 | bauzas | and for sure this will work | |
| 09:37:29 | artom | bauzas, I mean, I could just squash the patches and avoid the reproducer alltogether :P | |
| 09:37:48 | artom | I wanted to highlight the broken behaviour first | |
| 09:37:57 | artom | But the fix itself doens't need a func test, methinks | |
| 09:38:12 | bauzas | honestly, I don't know what to say, I wasn't thinking my comment would be a concern | |
| 09:38:17 | bauzas | so, meh | |
| 09:38:38 | bauzas | +Wd | |
| 09:38:52 | bauzas | I just don't wanna take time discussing | |
| 09:48:17 | bauzas | artom: about the log level i'm asking | |
| 09:48:34 | bauzas | well, in theory, unless ironic, a service *has* a compute node, right? | |
| 09:48:54 | bauzas | and even with ironic, that's a normal situation | |
| 09:48:57 | artom | Not really, IIUC, but I'm not an expert | |
| 09:49:10 | artom | A service without nodes can be a part of normal operation | |
| 09:49:26 | artom | For instance, adding a service before adding any nodes to it, replacing all nodes associated with a service, that kind of stuff | |
| 09:49:33 | artom | In my understanding, anyways | |
| 09:50:28 | artom | So to quote pawnstars, "debug is the best I can do" | |
| 09:50:58 | artom | Actually, would you be offended if I did it in a follow-up? I need to fix the dat base typo as well | |
| 09:51:52 | artom | 'dat base: https://i.kym-cdn.com/entries/icons/original/000/000/228/DATASS.jpg | |
| 09:52:06 | artom | Err, sorry about the URL :( | |
| 09:55:26 | bauzas | artom: no, a service without a node isn't "normal" | |
| 09:55:38 | bauzas | we create the CN entry when we create the service | |
| 09:55:43 | bauzas | or CNs | |
| 09:56:07 | bauzas | artom: it's just if you rebalance ironic nodes that you end up with trampling nova | |
| 09:56:22 | bauzas | because ironic didn't manage the service/node relationship we have | |
| 09:56:41 | bauzas | so, unless you rebalance your ironic nodes, you shouldn't expect such things | |
| 09:56:53 | bauzas | hence an INFO at least | |
| 09:58:06 | artom | Fair enough, I can do INFO | |
| 09:58:14 | artom | Do you accept my FUP bargain? :) | |
| 09:59:07 | bauzas | if so | |
| 09:59:48 | artom | Hol'up though - for my own education, Ironic managed actualy physical nodes | |
| 09:59:51 | artom | *manages | |
| 10:00:11 | artom | So... how does "we create CN entry when we create the service" work if there are not physical nodes existing? | |
| 10:02:50 | jkulik | a started ironic compute driver will just write over and over again "No compute node record for host nova-compute-ironic" if there are no physical nodes existing. at least on rocky. | |
| 10:03:57 | opendevreview | Merged openstack/nova master: Reproducer unit test for bug 1860312 https://review.opendev.org/c/openstack/nova/+/802697 | |
| 10:04:41 | bauzas | artom: the compute manager gets the list of cns from the virt driver in https://github.com/openstack/nova/blob/97e1a6bece29e383f55bb969c69983153df9ffc7/nova/compute/manager.py#L1433 | |
| 10:04:52 | artom | jkulik, cheers! Confirms how I understood things | |
| 10:05:28 | artom | bauzas, I feel like that could be None/empty list though | |
| 10:06:24 | bauzas | artom: https://github.com/openstack/nova/blob/97e1a6bece29e383f55bb969c69983153df9ffc7/nova/compute/manager.py#L583 | |
| 10:06:29 | artom | Empty list, based on https://github.com/openstack/nova/blob/97e1a6bece29e383f55bb969c69983153df9ffc7/nova/virt/ironic/driver.py#L823 | |
| 10:06:34 | bauzas | here we instantiate a RT per compute node | |
| 10:07:56 | bauzas | and here we create the CN entry https://github.com/openstack/nova/blob/97e1a6bece29e383f55bb969c69983153df9ffc7/nova/compute/resource_tracker.py#L918 | |
| 10:08:02 | bauzas | every 60 secs | |
| 10:11:29 | artom | bauzas, that's called from the periodic through, not at host init | |
| 10:13:03 | bauzas | yup, my bad | |
| 10:13:08 | bauzas | but | |
| 10:13:23 | bauzas | we eventually call u_r_p at the end of the init, IIRC | |
| 10:13:59 | bauzas | it's just a post hook call and not straighlty from init_host (or something like that, can't exactly remember) | |
| 10:39:49 | opendevreview | Artom Lifshitz proposed openstack/nova master: I2f9ad3df25306e070c8c3538bfed1212d6d8682f fup: add log https://review.opendev.org/c/openstack/nova/+/803001 | |
| 11:13:35 | opendevreview | Sylvain Bauza proposed openstack/nova master: Rename vgpu options to mdev https://review.opendev.org/c/openstack/nova/+/801607 | |
| 11:13:35 | opendevreview | Sylvain Bauza proposed openstack/nova master: DNM (yet) : Expose the mdev class https://review.opendev.org/c/openstack/nova/+/801743 | |
| 11:13:36 | opendevreview | Sylvain Bauza proposed openstack/nova master: WIP Provide the mdev class for every PCI device https://review.opendev.org/c/openstack/nova/+/802918 | |
| 11:16:13 | opendevreview | Sylvain Bauza proposed openstack/nova master: WIP Provide the mdev class for every PCI device https://review.opendev.org/c/openstack/nova/+/802918 | |
| 11:16:14 | opendevreview | Sylvain Bauza proposed openstack/nova master: DNM (yet) : Expose the mdev class https://review.opendev.org/c/openstack/nova/+/801743 | |
| 11:23:09 | songwenping__ | bauzas, now we cannot batch create vgpu vms, right? | |
| 11:23:37 | bauzas | I need to go out for lunch but wdym for "batch create" ? | |
| 11:23:42 | bauzas | multi-create ? | |
| 11:23:50 | songwenping__ | yes multi-create | |
| 11:24:18 | bauzas | if so, https://bugs.launchpad.net/nova/+bug/1874664 | |
| 11:25:18 | sean-k-mooney[m] | we do not support multi create with any request that uses nested resource providers today | |
| 11:26:36 | bauzas | yup, but this doesn't impact virtual GPUs | |
| 11:26:37 | songwenping__ | there is a different exception with the bug | |
| 11:27:03 | songwenping__ | yes, the scheduler is ok | |
| 11:27:15 | songwenping__ | compute raise exception | |
| 11:28:07 | sean-k-mooney[m] | well that bug does affect vgpu | |
| 11:28:13 | bauzas | songwenping__: look at the two different tests we have for vgpus https://review.opendev.org/c/openstack/nova/+/723858/3/nova/tests/functional/libvirt/test_vgpu.py#237 | |
| 11:28:29 | bauzas | sean-k-mooney[m]: depending on your cloud capacity | |
| 11:28:56 | songwenping__ | tbe exception in my env is: mediated device /sys/bus/mdev/devices/58c9a61a-874f-414c-a8e8-91892a9fc6dd is in use by driver QEMU, domain instance-00000008\n' | |
| 11:29:19 | sean-k-mooney[m] | in any case we don’t officially support multi create with vgpu today | |
| 11:30:21 | sean-k-mooney[m] | that looks like there is a uuid collision on the host or similar reuse of the same mdev | |
| 11:30:23 | bauzas | songwenping__: oh, that's another nvidia issue https://bugs.launchpad.net/nova/+bug/1758086 | |
| 11:30:37 | bauzas | because of IOMMU | |
| 11:31:20 | bauzas | you can't bind 2 vGPUs of the same pGPU on the same guest | |
| 11:31:26 | bauzas | 2 or more vGPUs tbc | |