| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-12-08 | |||
| 18:00:36 | superdan | the whole call to that method is | |
| 18:01:27 | mriedem | ok, so backup_instance would all be replayed in the child cell api too right? | |
| 18:01:44 | superdan | yeah | |
| 18:01:49 | superdan | I don't see where the cells job ran on that | |
| 18:02:00 | mriedem | https://github.com/openstack/nova/blob/master/nova/compute/api.py#L2594 | |
| 18:02:09 | mriedem | the latest patch timed out in on the cells job | |
| 18:02:23 | superdan | okay | |
| 18:02:31 | superdan | would have thought that would be reported | |
| 18:02:40 | mriedem | zuul in the last 48 hours... | |
| 18:02:55 | superdan | oh I see, it is i the comment | |
| 18:02:57 | superdan | but not the summary | |
| 18:03:45 | alaski | stepped away, but it's exactly as superdan describes | |
| 18:03:54 | superdan | \o/ | |
| 18:04:23 | mriedem | so i wonder if it has something to do with this comment from comstud https://github.com/openstack/nova/blob/master/nova/compute/api.py#L2594 | |
| 18:04:55 | mriedem | but i think that is just about setting the task_state | |
| 18:04:59 | superdan | mriedem: that's a remote call, so maybe it's calling to conductor which is looking in the wrong db? | |
| 18:05:15 | superdan | er, a remote exception I mean | |
| 18:06:02 | mriedem | well, | |
| 18:06:13 | mriedem | i don't know why it would just fail on that one lookup and not all of the others | |
| 18:06:13 | superdan | not sure that makes sense actually | |
| 18:06:19 | mriedem | that's what i don't understand about this | |
| 18:06:57 | mriedem | fried_rolls: have you ever mocked something that can't be imported? | |
| 18:07:01 | superdan | oh Iknow why | |
| 18:07:39 | superdan | mriedem: backup_instance doesn't get replayed in the cell for some reason, unlike everything else, which means it calls straight to the compute I think: https://github.com/openstack/nova/blob/master/nova/cells/messaging.py#L915-L925 | |
| 18:07:45 | superdan | mriedem: compare that to rebuild right below | |
| 18:08:01 | mriedem | ok yeah that's what i was looking at | |
| 18:08:27 | mriedem | https://github.com/openstack/nova/commit/2be50f0f3f02830798c25442dc54e92faa18106b | |
| 18:09:43 | superdan | I'd be extremely concerned about changing _any_ of that stuff at this point | |
| 18:09:50 | mriedem | weird, ok, so i guess the note about "any changes made here have to be made there" is what that's about | |
| 18:10:06 | mriedem | including creating the action record | |
| 18:10:14 | mriedem | well i see 2 options | |
| 18:10:29 | mriedem | 1. do the action create for backup and snapshot in the cells messaging code like it says, | |
| 18:10:46 | mriedem | 2. do something in the EventReporter where if cells is enabled, we blacklist some actions | |
| 18:10:55 | mriedem | we could remove #2 when we remove cellsv1 | |
| 18:11:29 | superdan | I don't love either of those | |
| 18:11:40 | peter-hamilton | mriedem: thanks! | |
| 18:11:49 | mriedem | superdan: me neither | |
| 18:11:57 | peter-hamilton | mnaser: bpoulos is who you want to talk to; I'll ping her for you | |
| 18:12:09 | mriedem | superdan: but i'm not sure what else to do at this point | |
| 18:12:15 | mnaser | peter-hamilton: cool, thanks! | |
| 18:12:16 | mriedem | so, i'll go to lunch and not think about this | |
| 18:17:54 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Don't launch guestfs in a thread pool if guestfs.debug is enabled https://review.openstack.org/526748 | |
| 18:17:58 | mriedem | dmsimard: clarkb: ^ | |
| 18:21:28 | dmsimard | mriedem: so we toggled the bug by setting it to debug ? :/ | |
| 18:21:40 | dmsimard | mriedem: the force_tcg patch would work without debug ? | |
| 18:25:55 | bpoulos | mnaser: only nova-compute needs the verify_glance_signatures option set in order to enable glance image signature verification | |
| 18:26:27 | mnaser | bpoulos: awesome, thank you so much (fyi, asking in context of https://review.openstack.org/#/c/526514/ ) | |
| 18:27:38 | bpoulos | mnaser: no problem, happy to help | |
| 18:56:42 | openstackgerrit | Jay Pipes proposed openstack/nova master: allow compute nodes to be associated with host agg https://review.openstack.org/526753 | |
| 19:10:05 | openstackgerrit | OpenStack Proposal Bot proposed openstack/nova master: Imported Translations from Zanata https://review.openstack.org/524795 | |
| 19:16:35 | openstackgerrit | Merged openstack/nova master: Updated from global requirements https://review.openstack.org/526386 | |
| 19:27:26 | openstackgerrit | Merged openstack/nova master: Fix 'force' parameter in os-quota-sets PUT schema https://review.openstack.org/523194 | |
| 19:47:12 | mriedem | dmsimard: that's what i hope to find out | |
| 19:50:24 | fried_rolls | mriedem No, I don't think I have ever (successfully) mocked something that can't be imported. It will fail at "compile" time. | |
| 19:50:44 | fried_rolls | mriedem You can cheat by mocking it after it's imported, though. | |
| 19:52:07 | fried_rolls | I assume this is in a situation where the thing imports correctly on the prod side but for some reason not on the test side? Which... why? | |
| 19:53:39 | fried_rice | cdent How's now? | |
| 19:53:48 | cdent | one moment caller | |
| 19:54:34 | cdent | blargh, timeouts in migration tests: http://logs.openstack.org/39/521639/8/gate/openstack-tox-functional/f6880ac/testr_results.html.gz | |
| 20:02:55 | cdent | fried_rice: okay, sorry, had to feed that cat and put dinner dishes aweay | |
| 20:03:09 | fried_rice | How domestic. | |
| 20:03:40 | fried_rice | Should we do this here, or maybe snag an empty meeting channel so we don't consume this one? | |
| 20:04:04 | figleaf | stay here - I'm eavesdropping | |
| 20:04:09 | fried_rice | ight | |
| 20:04:19 | cdent | agree with figleaf, probably best to spread the word as much as possible | |
| 20:05:14 | fried_rice | I'll lead by saying I've got several balls in the air, including the 'granular' effort and a non-placement-related bp for ksa adapter stuff; but I'll be happy if just the nrp series gets shepherded while I'm away. | |
| 20:05:40 | fried_rice | That's the series starting at the hopefully-just-about-to-merge https://review.openstack.org/#/c/385693/91 | |
| 20:06:18 | fried_rice | The culmination of this series will be the ability for the compute driver to tell the scheduler (almost) everything about how it wants to perceive its world, placement-wise. | |
| 20:07:21 | cdent | “the scheduler”? or “placment” or both? | |
| 20:07:33 | fried_rice | As currently conceived in the top patch in the series (https://review.openstack.org/#/c/520246/12/nova/compute/resource_tracker.py) the resource tracker will hand off the ProviderTree to the compute driver; the compute driver will mangle it as it sees fit; and the resource tracker will flush any changes back to placement. | |
| 20:08:12 | fried_rice | cdent I should have said "resource tracker" instead of "scheduler". The main point there is that the compute driver does not directly tell placement anything; that is brokered by resource tracker via ProviderTree. | |
| 20:08:20 | fried_rice | ...via report client. | |
| 20:08:53 | cdent | okay, so the virt driver tells the compute manager and its resource tracker about what it knows about its world | |
| 20:09:07 | fried_rice | Yup. | |
| 20:09:15 | cdent | ✔ | |
| 20:09:58 | fried_rice | I think there are reasons we don't want virt talking to placement directly. leakypipes and superdan have those in their heads. But I think it has to do with narrowing the points of control. | |
| 20:10:25 | leakypipes | fried_rice: ya | |
| 20:10:50 | leakypipes | fried_rice: the scheduler reporting client is a good bright-line interface for nova-compute with the placement API. | |
| 20:11:02 | fried_rice | Nod. | |
| 20:11:41 | cdent | yeah, my concern was not so much about violating that line, rather trying to clarify the use of the term scheduler, which is ambiguous, but it’s clear now | |
| 20:11:47 | fried_rice | As currently written in the series, the first time around, resource tracker => report client will do get_provider_tree to bootstrap the ProviderTree, which will _ensure_resource_provider with the compute nodename & uuid. That will create the entry in placement for the compute host RP and populate the local ProviderTree with that. | |
| 20:12:10 | fried_rice | And then pass that ProviderTree to virt, via ComputeDriver.update_provider_tree. | |
| 20:12:35 | fried_rice | So it'll have just the compute RP as a root (no children), no inventory, no traits, no aggs, no sharing RPs. | |
| 20:13:26 | cdent | ✔ | |
| 20:14:06 | fried_rice | virt does whatever it wants, as long as it's possible via the public ProviderTree interfaces. This includes creating new root RPs (which will probably typically be sharing RPs, though we're not enforcing that) or child RPs (usually descendants of the compute RP, though we're not enforcing that). | |
| 20:14:19 | fried_rice | It also includes setting traits and inventories on any of those guys. | |
| 20:14:30 | fried_rice | And assigning aggregate UUIDs. | |
| 20:15:16 | fried_rice | virt is responsible for returning True or False from that method to let us know whether it changed anything. (TBH, I'm not sure that's necessary, cause it's pretty easy for us to figure it out, and that might be better than trusting virt to get it right.) | |
| 20:16:27 | fried_rice | Anyway, resource tracker gets that provider tree back and diffs it with what it passed in originally (which, I should have mentioned, is a copy of what it had built up); and then makes report client calls to push those changes back to the placement db. | |
| 20:16:33 | cdent | can I pause you for a moment? | |
| 20:16:36 | fried_rice | sho | |
| 20:18:26 | cdent | this is making sense, mostly, so far, except for one thing. Can you give me a scenario or two in which the provider tree will have more than one root? Is this for something like ironic, of clustering hypervisor or something else or something in addition to that? | |
| 20:19:57 | fried_rice | I can't say what'll happen for ironic. It's possible they'll have their root be their (I'm going to get the terminology wrong, but) compute "host" with children being the compute "nodes". Or maybe the compute "nodes" will all be roots. I dunno. | |
| 20:20:02 | fried_rice | A real scenario for multiple roots is sharing RPs. | |
| 20:20:32 | fried_rice | So if I have a shared disk provider that my virt driver knows about, the compute manager won't know about it yet. | |
| 20:20:59 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Add instance action record for backup instances https://review.openstack.org/523676 | |
| 20:21:12 | fried_rice | virt will populate the provider tree with that shared disk provider as a new root with the MISC_SHARES_VIA_AGGREGATE trait and tag both it and the compute RP with the aggregate UUID. | |
| 20:21:33 | cdent | let me know when you are EOF, so I can ask my followup, but I don’t want to do it if you are stil typing away | |
| 20:21:44 | fried_rice | And the rt will have to handle the case where we go to create that guy in placement and find it already exists, because some other compute node that *also* shares with it already created it. | |
| 20:22:29 | fried_rice | By the same token, the various virts sharing a given sharing RP will have to make sure they use the same name and/or UUID (and we should probably document some rules for them doing that) so that we can in fact do that coordination. | |