| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-11-05 | |||
| 16:03:20 | artom | mriedem, so it makes sense to update the port bindings at that point | |
| 16:03:39 | mriedem | select * from nova_cell1.migrations where instance_uuid=<server id> and deleted=0 and status='pre-migrating'; | |
| 16:03:44 | sean-k-mooney | artom: not nessisarally | |
| 16:03:51 | sean-k-mooney | EVENT_LIFECYCLE_MIGRATION_COMPLETED i think can be sent for failure | |
| 16:04:04 | mriedem | yup | |
| 16:04:07 | mriedem | which is another patch of mine | |
| 16:04:26 | mriedem | https://review.opendev.org/#/c/594527/ | |
| 16:05:02 | openstackgerrit | Matt Riedemann proposed openstack/nova master: libvirt: check job status for VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED event https://review.opendev.org/594527 | |
| 16:05:09 | artom | Aha, TIL | |
| 16:05:24 | artom | (Actually, I think I already checked this when faking it for my NUMA LM func tests, but forgot) | |
| 16:06:00 | artom | (Which, btw, are waiting for review - but given the last thing was Stephen's -1 which I addressed, maybe wait for him to get pack from PTG) | |
| 16:06:20 | artom | We've long passed any sense of urgency, at this point | |
| 16:06:58 | sean-k-mooney | oh actully i think i know how to repoduce the failure by the way | |
| 16:07:32 | sean-k-mooney | i think i found this issue while trying to live migrate between kerenl ovs and ovs dpdk were the virtio feature flags change | |
| 16:07:43 | sean-k-mooney | due to setting the mtu in one and not in the other | |
| 16:08:42 | sean-k-mooney | strangely enough i set up a dpdk env to work on that and and another dpdk thing on friday | |
| 16:10:14 | sean-k-mooney | artom: this was part of the orginal error http://paste.openstack.org/show/728539/ | |
| 16:11:56 | artom | sean-k-mooney, ah, so you hit this because the source sent some XML the dest couldn't handle, and QEMU died | |
| 16:12:06 | sean-k-mooney | yep | |
| 16:12:11 | sean-k-mooney | libvirt was fine with it | |
| 16:12:28 | sean-k-mooney | well you can see the error | |
| 16:12:38 | artom | Right, the XML itself was "fine" | |
| 16:12:49 | artom | But the generated qemu command line exploded it | |
| 16:12:55 | sean-k-mooney | ya but not for the migration | |
| 16:13:11 | sean-k-mooney | qemu also acccpeted teh commandline | |
| 16:13:18 | sean-k-mooney | it was only an issue when the migration started | |
| 16:13:24 | mriedem | so if https://review.opendev.org/#/c/594527/ fixes that to not activate the dest host port bindings, then we don't need to rollback and maybe i can just abandon https://review.opendev.org/594139 | |
| 16:14:03 | sean-k-mooney | ya maybe | |
| 16:14:20 | artom | I wonder if we could reproduce that in the gate, with a DNM patch that borks the LM on purpose | |
| 16:14:23 | sean-k-mooney | i can try and recreate teh excat error i had and do some testing i guess | |
| 16:14:48 | sean-k-mooney | am i might be able to do that yes... | |
| 16:15:06 | sean-k-mooney | it woudl be quicker to do it locally first | |
| 16:15:17 | sean-k-mooney | i have to go fix my dpdk job | |
| 16:15:47 | artom | (Apologies to infra and the nodepool donors) | |
| 16:16:01 | sean-k-mooney | if i make it work again i could have 1 node be kernel ovs and the other dpdk and then replicte this with a simple live migrate test | |
| 16:16:42 | artom | I'm assuming hacking Nova to just generate broken XML for the dest won't be enough? | |
| 16:16:59 | sean-k-mooney | well yes | |
| 16:17:19 | sean-k-mooney | to get teh conflcit one of the xmls shoudl have the mtu set and the udpated one not | |
| 16:17:36 | watersj | mriedem, just to verify update migrations set status = 'error' where id = 76; | |
| 16:17:51 | sean-k-mooney | that will change between the 32bit feature flags and teh 64bit feature flags and will cause the error | |
| 16:18:01 | watersj | id 76 is record in question | |
| 16:18:02 | artom | sean-k-mooney, so why not do that? DNM patch that adds a "break_xml()" to _update_xml() on the source | |
| 16:18:11 | artom | Remove all the non-LM testing from Zuul | |
| 16:18:14 | artom | And play around with that | |
| 16:18:33 | sean-k-mooney | artom: so your going to write that patch ya :) | |
| 16:18:46 | artom | sean-k-mooney, I don't mind | |
| 16:19:49 | mriedem | watersj: yeah | |
| 16:20:34 | sean-k-mooney | well it shoudl be pretty easy to do i guess. am i need to look at that downstream bug breifly but i can also maybe look at this with you after i figure out if we can backport that fix | |
| 16:20:52 | artom | sean-k-mooney, there's a downstream bug for that? | |
| 16:20:55 | sean-k-mooney | that fix bing the binding_failded thing | |
| 16:21:00 | sean-k-mooney | no a different thing | |
| 16:21:06 | artom | Ah | |
| 16:21:17 | artom | Because one of the things we were discussing is are we backporting the fix | |
| 16:21:29 | artom | Which influences how invasive it can be | |
| 16:21:38 | mriedem | artom: (10:13:25 AM) mriedem: so if https://review.opendev.org/#/c/594527/ fixes that to not activate the dest host port bindings, then we don't need to rollback and maybe i can just abandon https://review.opendev.org/594139 | |
| 16:22:15 | sean-k-mooney | mriedem: if i can recreate it ill apply that patch and see if it fixes it | |
| 16:22:46 | mriedem | ack | |
| 16:22:49 | artom | mriedem, ah, yeah, it we never update the port bindings for a failed LM, we don't need to roll them back | |
| 16:23:04 | artom | So, would there be value in a DNM to repro that in the gate? | |
| 16:23:07 | artom | *DNM patch | |
| 16:26:41 | watersj | I'm getting, There are allocations remaining against the source host that might need to be removed | |
| 16:27:39 | sean-k-mooney | artom: if you can repro it in the gate we can use that to test both of mriedem patches so yes i think there is still value | |
| 16:28:01 | sean-k-mooney | although long term a functional regression test would be optimal | |
| 16:28:13 | artom | sean-k-mooney, mriedem was saying we need to fix the Neutron fixture for that | |
| 16:28:24 | sean-k-mooney | proably | |
| 16:28:59 | artom | sean-k-mooney, so what was that thing about the MTU? Removing it should trigger thing? Seems weird | |
| 16:29:05 | sean-k-mooney | it does not really do the multiple port bindings workflow right | |
| 16:29:35 | sean-k-mooney | artom: ya remove it form the port forces libvirt to change form teh 64bit encodeing to the 32bit encoding | |
| 16:29:59 | sean-k-mooney | well adding it forces it | |
| 16:31:04 | sean-k-mooney | anyway the root of that secific libvirt/qemu issue is they ran out of feature bits and adding and removing hte mtu is one way to chagne it | |
| 16:31:28 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Create BDM in API during attach volume https://review.opendev.org/692940 | |
| 16:31:28 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Provide a better error when _verify_response hits a TypeError https://review.opendev.org/693042 | |
| 16:33:30 | mriedem | watersj: ah yeah...so in placement the migration record (id=76) holds the allocations for the source host and the instance holds allocations for the dest host, and you need to move the instance allocations back to the source host and drop the allocations from the dest host, which doesn't sound fun right | |
| 16:33:49 | mriedem | luckily i just wrote a guide on how to do this https://review.opendev.org/#/c/691427/ | |
| 16:34:03 | watersj | lol | |
| 16:34:27 | mriedem | you might want to just skip straight to the heal_allocations part | |
| 16:34:44 | mriedem | i.e. delete the allocations for both the migration and instance consumer and then heal allocations for the instance | |
| 16:34:59 | mriedem | https://docs.openstack.org/osc-placement/latest/cli/index.html#resource-provider-allocation-delete | |
| 16:35:11 | mriedem | you'd pass the migration uuid and instance uuid to ^ to remove the allocations in placement | |
| 16:35:23 | mriedem | then run: nova-manage placemet heal_allocations | |
| 16:35:45 | mriedem | https://docs.openstack.org/nova/stein/cli/nova-manage.html#placement | |
| 16:36:28 | mriedem | if you want to target the specific instance, or do a dry-run heal_allocations, you'd need to setup a train nova instance in a vm/container/virtualenv https://docs.openstack.org/nova/train/cli/nova-manage.html#placement since --dry-run and --instance options aren't in stein | |
| 16:37:02 | watersj | have backup of volume | |
| 16:37:08 | watersj | ready really break it | |
| 16:37:16 | mriedem | i don't know what that means | |
| 16:37:27 | mriedem | oh you mean you do'nt need a dry run | |
| 16:37:52 | mriedem | heal allocations just recreates the missing allocation records in placement for the instance using the flavor data associated with the instance | |
| 16:37:58 | watersj | mean I ok to try without dryrun capabilities | |
| 16:37:59 | mriedem | doesn't touch the guest or anything like that | |
| 16:38:04 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: DNM: break live migration to trigger bug 1788014 https://review.opendev.org/693045 | |
| 16:38:04 | openstack | bug 1788014 in OpenStack Compute (nova) "when live migration fails due to a internal error rollback is not handeled correctly." [Medium,In progress] https://launchpad.net/bugs/1788014 - Assigned to Matt Riedemann (mriedem) | |
| 16:38:32 | watersj | k, ty for the help | |
| 16:39:15 | openstackgerrit | Merged openstack/nova stable/stein: Add integration testing for heal_allocations https://review.opendev.org/692923 | |
| 16:57:10 | mriedem | dansmith: replied in https://review.opendev.org/#/c/635668/ - i'm not sure exactly what you're looking for so i gave some options | |
| 16:57:56 | mriedem | if you want to see a paste of what i'm talking about i can do that quick | |
| 16:59:07 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: DNM: break live migration to trigger bug 1788014 https://review.opendev.org/693045 | |
| 16:59:07 | openstack | bug 1788014 in OpenStack Compute (nova) "when live migration fails due to a internal error rollback is not handeled correctly." [Medium,In progress] https://launchpad.net/bugs/1788014 - Assigned to Matt Riedemann (mriedem) | |
| 17:01:58 | dansmith | mriedem: seems like you get it to me :) | |
| 17:02:14 | mriedem | ok | |
| 17:02:19 | mriedem | updating thusly | |