| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-11-29 | |||
| 17:27:56 | mriedem | artom: create an etherpad? | |
| 17:28:24 | artom | mriedem, yeah, not a bad idea | |
| 17:28:44 | artom | It's still a lot of clicking and checking branches, change IDs and topics | |
| 17:28:59 | artom | Since some (all?) of those got backported | |
| 17:29:35 | melwitt | mriedem: it might be related to the wonkiness I intended to fix with https://review.openstack.org/#/c/508432 | |
| 17:29:53 | melwitt | because without that fix, every compute will write to the same cell db | |
| 17:30:14 | mriedem | i was going to see if putting your patch under this change fixes it | |
| 17:31:12 | melwitt | yeah, I think it would be worth trying but I'm not 100% it will solve your problem. what I'm thinking of is where compute services need to write records and they don't do it in a cell-aware way | |
| 17:31:53 | dansmith | yeah, any periodic will do the wrong thing I think | |
| 17:31:59 | melwitt | right | |
| 17:32:07 | melwitt | and during compute start | |
| 17:32:18 | dansmith | I think we need a more fundamental change before we can really be clean there | |
| 17:32:27 | melwitt | but I dunno what problem mriedem is hitting | |
| 17:32:39 | mriedem | i'll push it up in a sec | |
| 17:33:33 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Enable cold migration with target host(2/2) https://review.openstack.org/408964 | |
| 17:33:57 | mriedem | melwitt: this https://review.openstack.org/#/c/408964/111/nova/tests/functional/test_servers.py@3029 | |
| 17:34:09 | mriedem | so takashi has this test_migrate_server_to_host_in_different_cell test, | |
| 17:34:16 | mriedem | which creates 1 host in different cells, | |
| 17:34:34 | mriedem | creates a server on one of the hosts and tries to force the migration to the other host in the other cell, which should fail | |
| 17:34:38 | mriedem | b/c no cross-cell migration | |
| 17:35:02 | melwitt | yeah, the compute node records won't go in the right db without my patch I think | |
| 17:35:04 | mriedem | it does fail with NoValidHost, but i wanted to test how good the test was, so i pulled it down and changed is so that both hosts would be in the same cell, and the test passed | |
| 17:35:12 | melwitt | they'll all go in the same cell, the default cell1 | |
| 17:35:18 | mriedem | ok | |
| 17:35:40 | mriedem | so i found that if there is more than one host in a cell, like ServerTestV256RescheduleTestCase, then fake.set_nodes has to be used | |
| 17:35:55 | mriedem | but when i tried to use fake.set_nodes on hosts in different cells, things would fail | |
| 17:36:06 | dansmith | if the periodic runs to update the nodes, it'll put them back in the wrong cell though right? | |
| 17:36:18 | dansmith | er, create duplicates in the wrong cell I mean | |
| 17:36:26 | melwitt | I have seen that before doing single cell functional testing with multiple computes, that set_nodes is needed to have the scheduler consider both computes | |
| 17:36:55 | mriedem | all of our server moving tests in nova.tests.functional.test_servers create 2 computes in the same cell and have to use fake.set_nodes | |
| 17:37:03 | mriedem | but we don't have any multi-cell functional tests like that | |
| 17:37:25 | mriedem | this is really just a negative test, but i wanted to make sure it was actually failing for the right reasons | |
| 17:37:29 | melwitt | mriedem: it's not the set_nodes thing but the ComputeNode record itself that you'd want to target to separate cells and set_nodes won't do that. set_nodes doesn't write the compute node record | |
| 17:37:38 | mriedem | since you can't actually tell what the novalidhost was for on the api caller side | |
| 17:37:51 | melwitt | the compute node record is written by the fake compute service starting up | |
| 17:37:57 | mriedem | i'll pull your change down and put this on top and use fake.set_nodes and see what happens | |
| 17:38:03 | melwitt | okay | |
| 17:39:50 | dansmith | melwitt: won't your patch result in compute node records written into cell0 (which should never happen) if the periodic runs? | |
| 17:40:32 | dansmith | the resource tracker update periodic that creates and destroys compute nodes on the fly for things like ironic | |
| 17:40:49 | dansmith | it'll find that virt reports a compute node that it doesn't find in the database and create it | |
| 17:40:49 | melwitt | dansmith: I think I make the db association when the fake service is created and wrapped all the service calls so that the periodics would run in the right cell. but let me look again, it's been a long time | |
| 17:41:19 | dansmith | hmm, not sure how you could do that for periodics that run later | |
| 17:42:27 | mriedem | still fails | |
| 17:42:46 | melwitt | dansmith: I think periodics are run by the service, so I did this https://review.openstack.org/#/c/508432/9/nova/test.py to target them to the associated cell | |
| 17:42:54 | dansmith | oh you patch periodic_tasks | |
| 17:43:13 | dansmith | not sure that's enough necessarily, | |
| 17:43:27 | dansmith | because anything that stores a context somewhere might not actually make that call in that path | |
| 17:43:49 | melwitt | it's better than what we have :P but yeah, I have been wanting people to review it to see what gaps could be addressed | |
| 17:44:11 | dansmith | well, it's not if we end up with spurious failures when we get unlucky and run a periodic in the middle of a slow test run | |
| 17:44:46 | mriedem | i left comments on the fixture patch | |
| 17:44:49 | melwitt | dansmith: what do you mean by "anything that stores a context somewhere"? the periodics in the compute service all use an anonymous admin context | |
| 17:45:16 | dansmith | melwitt: well, if something like RT has a context stored somewhere | |
| 17:46:07 | melwitt | dansmith: sure. I couldn't think of if/how it could be bullet-proofed | |
| 17:46:29 | dansmith | I think the thing we really should be doing is just make the compute manager grab a context on service start, | |
| 17:46:48 | dansmith | and wipe through compute/* and make sure nothing ever calls get_admin_context() or context.RequestContext() in there | |
| 17:46:53 | dansmith | sort of how we banned db access | |
| 17:47:18 | melwitt | yeah, that would be nicer | |
| 17:47:24 | dansmith | I think that also, | |
| 17:47:36 | melwitt | still, that doesn't stop anyone from doing something else, which is what you were pointing out | |
| 17:47:44 | dansmith | someone with "security" in their title would like to see that we can't just call foo.get_admin_credentials() anywhere | |
| 17:48:02 | mriedem | i think mikal is now head of security at aptira | |
| 17:48:13 | dansmith | melwitt: well, it does if we actually clean that up to the point of making sure it won't work, like the db stuff | |
| 17:48:13 | mriedem | securinaut or something | |
| 17:48:56 | melwitt | one thing I realized just now is, a context is handed off when the periodic tasks are kicked off once, and it reuses that. it's just that in the service code it uses get_admin_context for that | |
| 17:50:00 | melwitt | periodic_tasks is called once during service.start | |
| 17:50:02 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Remove vestigial extra_info update in PciDevice.save() https://review.openstack.org/523919 | |
| 17:50:02 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Fix ValueError when loading old pci device record https://review.openstack.org/523914 | |
| 17:50:37 | dansmith | yeah, but your wrapping of it ensures that anyway | |
| 17:51:07 | melwitt | but I thought you were saying "what if compute manager uses a different context" and it can't | |
| 17:51:08 | openstackgerrit | Chris Dent proposed openstack/nova master: [placement] Enable limiting GET /allocation_candidates https://review.openstack.org/513526 | |
| 17:51:10 | melwitt | https://github.com/openstack/nova/blob/master/nova/service.py#L294-L295 | |
| 17:51:35 | dansmith | melwitt: I'm saying if we have another context we got from not the periodic one we were handed, not in the scope of the periodic itself | |
| 17:51:44 | dansmith | we have contexts everywhere, on every object, etc | |
| 17:51:56 | dansmith | I thought we actually stored on in the RT too but I don't think we do | |
| 17:52:07 | melwitt | okay, yeah I thought you were talking only about periodics | |
| 17:52:25 | dansmith | ah in the claim we do, that's probably what I'm thinking of | |
| 17:52:43 | dansmith | melwitt: I mean a periodic that accesses one created outside the scope of the periodic, like claim for example | |
| 17:52:54 | melwitt | oh, I see | |
| 17:52:57 | melwitt | yeah | |
| 17:57:52 | melwitt | mriedem: I think you might have to not do your own _setup_compute_service | |
| 17:58:38 | cdent | jaypipes, efried_rollin : is n-r-p stack clean and reviewable? Last I checked last night might rebase was in progress. | |
| 18:07:20 | openstackgerrit | melanie witt proposed openstack/nova master: qemu-img do not use cache=none if no O_DIRECT support https://review.openstack.org/523554 | |
| 18:12:15 | dansmith | stephenfin: https://review.openstack.org/#/c/523914 | |
| 18:13:45 | melwitt | mriedem: I pulled down your patch to see if I can find anything | |
| 18:15:53 | mriedem | dansmith: that root_bdm thing with using compute_utils.is_volume_backed opens up some funny doors | |
| 18:16:06 | dansmith | mriedem: yeah? | |
| 18:16:06 | mriedem | probably nothing we'd ever hit in real life | |
| 18:16:24 | mriedem | is_volume_backed_instance returns True if there is no root bdm but the image_ref is '' | |
| 18:16:36 | mriedem | so "volume_id = root_bdm.volume_id" could result in a NoneType | |
| 18:17:05 | mriedem | nova.tests.unit.compute.test_compute.ComputeAPITestCase.test_rebuild_no_image apparently tickles that path | |
| 18:17:58 | mriedem | in that case i guess i just log an error or something, not sure | |
| 18:18:02 | mriedem | shouldn't really happen | |
| 18:29:21 | openstackgerrit | Lee Yarwood proposed openstack/nova master: libvirt: Introduce disk encryption config classes https://review.openstack.org/464008 | |
| 18:29:21 | openstackgerrit | Lee Yarwood proposed openstack/nova master: libvirt: Refactor encryptor attach and detach calls https://review.openstack.org/460243 | |
| 18:29:22 | openstackgerrit | Lee Yarwood proposed openstack/nova master: WIP libvirt: Use QEMU's native LUKS support https://review.openstack.org/523958 | |
| 18:37:53 | openstackgerrit | Merged openstack/nova master: Updated from global requirements https://review.openstack.org/523765 | |
| 18:38:58 | INeedaUUID | Hi everyone. Can anyone tell me how best to modify a systems' uuid using openstack methods? | |
| 18:39:03 | INeedaUUID | Does openstack support this? (I know it's a stupid request, but an application depends on them being set) | |
| 18:39:11 | INeedaUUID | Ocata/KVM | |
| 18:39:47 | jaypipes | cdent: efried_rollin is currently rebasing./ | |