| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-06-12 | |||
| 15:44:56 | dansmith | mriedem: I think what you're looking for is in the pre source/dest calls | |
| 15:45:53 | mriedem | hmmm yeah, ok | |
| 15:45:58 | mriedem | will throw it into the open slot | |
| 15:46:01 | mriedem | and rip it up later :) | |
| 15:46:14 | dansmith | I'm a little wary of approving that without a test though | |
| 15:46:20 | dansmith | a real one I mean | |
| 15:46:36 | edleafe | lyarwood: ugh, they're running Mitaka | |
| 15:46:54 | mriedem | edleafe: s/they're/everyone's/ | |
| 15:47:46 | edleafe | mriedem: I'd laugh if that weren't true | |
| 15:47:51 | mriedem | dansmith: good news is, | |
| 15:48:03 | mriedem | MIN_LIBVIRT_FILE_BACKED_VERSION = (4, 0, 0) | |
| 15:48:03 | mriedem | MIN_QEMU_FILE_BACKED_VERSION = (2, 6, 0) | |
| 15:48:10 | zcorneli | dansmith: Yea, I think I need to make a real test for the migration checks. Guess I need to figure out how to set that up. | |
| 15:48:10 | mriedem | ii qemu-system-x86 1:2.11+dfsg-1ubuntu7~cloud0 | |
| 15:48:17 | mriedem | ii libvirt-bin 4.0.0-1ubuntu7~cloud0 | |
| 15:48:23 | mriedem | we can totally test this in the gate | |
| 15:48:30 | mriedem | zcorneli: i can help you there | |
| 15:48:36 | dansmith | mriedem: well, we'll need to fake some file-backed memory | |
| 15:48:51 | zcorneli | mriedem: Woo! Help is always good. | |
| 15:49:11 | mriedem | oh right... | |
| 15:49:19 | dansmith | mriedem: it's doable | |
| 15:49:21 | mriedem | if we don't have file-backed memory on these hosts then | |
| 15:49:45 | dansmith | mriedem: mount tmpfs on /var/lib/qemu/whatever and configure it on | |
| 15:49:51 | zcorneli | dansmith: mriedem: perhaps a tmpfs? Not sure if that's configurable as part of gate tests, but it wouldn't need to be very big | |
| 15:49:57 | dansmith | zcorneli: yep :) | |
| 15:50:59 | mriedem | i'm thinking we'd need a devstack flag | |
| 15:51:13 | mriedem | ENABLE_FILE_BACKED_MEMORY | |
| 15:51:20 | dansmith | mriedem: just to be clear, the thing I think we need to test is old/new computes across this boundary | |
| 15:51:28 | dansmith | mriedem: is that what you were thinking? | |
| 15:51:29 | mriedem | we could do that with the grenade live migration job | |
| 15:51:39 | mriedem | which runs live migration back and forth | |
| 15:51:54 | dansmith | because in that case, a one-off DNM patch to prove it does it right now would address my concern I think | |
| 15:51:59 | mriedem | http://logs.openstack.org/76/567876/10/check/legacy-grenade-dsvm-neutron-multinode-live-migration/df96c54/ | |
| 15:52:05 | dansmith | oh | |
| 15:52:07 | dansmith | sweet | |
| 15:52:15 | mriedem | that's queens<>rocky live migration both ways | |
| 15:52:35 | dansmith | yeah, but still, you're not going to always configure file-backed memory for that job, just a one-off yeah? | |
| 15:52:44 | mriedem | we could do it in a one off | |
| 15:52:48 | mriedem | or an experimental queue job | |
| 15:52:50 | mriedem | that's run on demand | |
| 15:52:54 | dansmith | aye | |
| 15:53:08 | mriedem | if someone wants to work on the devstack changes for that we could link it up | |
| 15:53:45 | dansmith | okay | |
| 15:54:04 | zcorneli | Would we be able to validate that old -> new+file_backed fails? | |
| 15:54:09 | zcorneli | ( / is rejected ) | |
| 15:54:29 | dansmith | zcorneli: well, that's why it needs to be a one-off or something special I think | |
| 15:55:04 | dansmith | mriedem: in case it's not clear, because the sending host's libvirt gets to choose the xml for the destination, if it's old and doesn't know about this, | |
| 15:55:12 | zcorneli | dansmith: Ah. Wasn't catching that. | |
| 15:55:14 | dansmith | it will generate xml that violates the config of the remote side | |
| 15:55:29 | dansmith | mriedem: so we have to make sure to refuse to let an older node send to us if we're configured for this on, | |
| 15:55:37 | dansmith | basically a "don't turn this on until all your nodes are updated" kind of thing | |
| 15:56:10 | kmalloc | efried: +2 on the KSA change, | |
| 15:56:23 | efried | kmalloc: Nice, thanks. cdent ^ | |
| 15:56:26 | mriedem | dansmith: isn't that this compute version check? https://review.openstack.org/#/c/567876/11/nova/virt/libvirt/driver.py@6529 | |
| 15:56:31 | cdent | woot | |
| 15:56:36 | kmalloc | efried: once zuul weighs in, we can get it merged and (pending lbragstad's ok) released | |
| 15:56:46 | openstackgerrit | Chris Dent proposed openstack/nova master: Optional separate database for placement API https://review.openstack.org/362766 | |
| 15:56:47 | openstackgerrit | Chris Dent proposed openstack/nova master: Isolate placement database config https://review.openstack.org/541435 | |
| 15:56:48 | efried | kmalloc: Schweet | |
| 15:56:49 | kmalloc | efried: thanks for making it easy and maintaining base behavior(s) | |
| 15:56:49 | openstackgerrit | Chris Dent proposed openstack/nova master: Ensure that os-traits sync is attempted only at start of process https://review.openstack.org/553857 | |
| 15:56:54 | stephenfin | dansmith: If I set a default for an o.vo field, should I be able to do instance.field without needing the "if 'field' in instance" check? | |
| 15:56:56 | dansmith | mriedem: that's the dest checking the source | |
| 15:57:00 | mriedem | dansmith: zcorneli: but yeah - as noted in the change, i'd like to see admin config guide docs for this feature | |
| 15:57:09 | mriedem | which can explain the libvirt-only nature of it, and upgrade implications | |
| 15:57:19 | dansmith | stephenfin: no, obj_set_defaults() | |
| 15:58:14 | mriedem | dansmith: right, but check_can_live_migrate_destination is checking the service version of the source compute and if it's too old to know about this, it fails | |
| 15:58:27 | dansmith | mriedem: right | |
| 15:59:02 | mriedem | anyway, seems we're in violent agreement | |
| 15:59:06 | dansmith | mriedem: I'm saying failing is all it can do, it can't fix the xml later and still allow the migration or anything like that | |
| 15:59:11 | mriedem | also, channel topic needs to be updated for current runways | |
| 15:59:19 | mriedem | dansmith: i think that's fine | |
| 15:59:24 | stephenfin | dansmith: Ah. Before I do something that will make you cry, any reason not to do that in __init__? https://github.com/openstack/nova/blob/master/nova/objects/diagnostics.py#L107 | |
| 16:00:14 | openstackgerrit | Merged openstack/nova master: Extract part of PlacementFixture to placement https://review.openstack.org/568359 | |
| 16:00:21 | dansmith | stephenfin: in general I'm very much opposed to it, yeah, because if you have half an object (think fields not lazy-loaded yet) and you always do that, you'll blow away things in the DB you would have otherwise left as-is | |
| 16:00:52 | dansmith | stephenfin: so it depends on the type of object.. if it's stored as a blob, then *might* be okay to do that, but it is then confusing for other people when they find examples like you linked | |
| 16:01:38 | stephenfin | dansmith: I figured (else this would be done by default). What's the best practice, in that case? | |
| 16:01:45 | stephenfin | Call 'obj_set_defaults()' every time I need to create a new object or don't use defaults, perhaps? | |
| 16:01:49 | cdent | oh this is fun: AssertionError: u'host3' == u'host3' in http://logs.openstack.org/08/574408/3/gate/nova-tox-functional/39c1a57/testr_results.html.gz | |
| 16:01:53 | cdent | wtf? | |
| 16:02:21 | dansmith | stephenfin: well, defaults were really introduced for something else kinda stupid, and honestly we probably shouldn't have left that in when we moved to oslo, but alas | |
| 16:02:46 | dansmith | stephenfin: if you want to do it in init and you're sure you're always going to be right, just throw a scary comment on it or something | |
| 16:02:47 | gibi | cdent: assertNotEqual :) | |
| 16:02:55 | cdent | yeah, got there | |
| 16:02:57 | cdent | eventually | |
| 16:03:06 | dansmith | stephenfin: or use it whenever you instantiate, or when you need them to be set | |
| 16:03:11 | gibi | cdent: I also saw this test fails infrequently locally | |
| 16:03:28 | dansmith | stephenfin: or, how about you call it in obj_load_attr() ? then, it'll set defaults if you touch something that isn't set | |
| 16:03:37 | dansmith | stephenfin: but still, scary comment I tink | |
| 16:04:59 | stephenfin | dansmith: I can do that. Cheers :) | |
| 16:05:02 | openstackgerrit | Eric Fried proposed openstack/nova master: Provide a direct interface to placement https://review.openstack.org/572576 | |
| 16:05:11 | sahid | efried: i hink you made good point for the ut here | |
| 16:05:21 | sahid | https://review.openstack.org/#/c/571030/ | |
| 16:05:55 | openstackgerrit | Merged openstack/nova master: placement: Use INNER JOIN for requied traits https://review.openstack.org/573113 | |
| 16:06:04 | mriedem | cfriesen: that's a known issue on a bug you've already investigated | |
| 16:06:13 | mriedem | http://status.openstack.org/elastic-recheck/#1763181 | |
| 16:06:24 | efried | sahid: Yeah, figured that wasn't enough to hold it up, I would fast-approve a fup to fix that if you're so inclined. | |
| 16:08:19 | sahid | efried: i'm not | |
| 16:08:24 | efried | :) | |
| 16:08:33 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add method to get cpu traits https://review.openstack.org/560317 | |