| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-07-08 | |||
| 16:12:50 | mriedem | so there is a bdm, and the volume shows up for the server but when you try to detach it what happens? nova gets an error from cinder? | |
| 16:12:58 | mriedem | saying it's already detached (not attached) or something? | |
| 16:13:15 | prometheanfire | nova questions cinder if it's attached, cinder says no, nova does nothing | |
| 16:14:00 | mriedem | as in nova doesn't delete the bdm so it stops showing up as attached to the server | |
| 16:14:03 | prometheanfire | does nothing -> says it's not attached, why are you asking me to detach something that's not attached (returned to user) | |
| 16:14:15 | mriedem | which release? | |
| 16:14:19 | prometheanfire | stein | |
| 16:14:50 | prometheanfire | I haven't been able to reproduce this after restarting nova stuff infra side | |
| 16:15:01 | prometheanfire | so maybe some timeout or hanging connection? | |
| 16:15:20 | mriedem | my guess is cinder is failing on this call: https://github.com/openstack/nova/blob/86524773b8cd3a52c98409c7ca183b4e1873e2b8/nova/compute/api.py#L4175 | |
| 16:15:43 | prometheanfire | maybe, for the detach part | |
| 16:16:14 | mriedem | well what error do you get from the compute API? | |
| 16:16:26 | mriedem | "Invalid volume: %(reason)s" | |
| 16:16:53 | prometheanfire | No volume with a name or ID of '3e92f9b6-1a3b-4a7e-8487-6ff253e888db' exists. | |
| 16:17:01 | prometheanfire | since I removed the volumes | |
| 16:17:36 | prometheanfire | Invalid volume: Invalid input received: Invalid volume: Unable to detach volume. Volume status must be 'in-use' and attach_status must be 'attached' to detach. (HTTP 400) (Request-ID: req-01d8a3c5-66f4-43a4-bac5-9f1104a292fe) (HTTP 400) (Request-ID: req-358132e4-38a1-493a-b87b-d135791bae2d) | |
| 16:17:40 | mriedem | msg = _("Unable to detach volume. Volume status must be 'in-use' " | |
| 16:17:41 | mriedem | "and attach_status must be 'attached' to detach.") | |
| 16:17:41 | mriedem | yup | |
| 16:17:48 | mriedem | that's the begin_detaching call failing | |
| 16:18:05 | prometheanfire | because it never actually attached :D | |
| 16:18:11 | openstackgerrit | sean mooney proposed openstack/os-vif master: Sync Sphinx requirement https://review.opendev.org/666387 | |
| 16:18:14 | mriedem | right i get it | |
| 16:18:41 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: nova-manage: heal port allocations https://review.opendev.org/637955 | |
| 16:18:48 | gibi | mriedem: rebased ^^ | |
| 16:19:43 | mriedem | prometheanfire: interesting you wouldn't hit this in the compute service when the attach fails and delete the bdm https://github.com/openstack/nova/blob/86524773b8cd3a52c98409c7ca183b4e1873e2b8/nova/compute/manager.py#L5722 | |
| 16:20:41 | prometheanfire | haven't been able to reproduce after restart of services, but am leaving it in debug mode in case it happens again | |
| 16:21:06 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Move consts from neutronv2/api to constants module https://review.opendev.org/668945 | |
| 16:21:07 | mriedem | were there errors in the compute log after the failed attach about not being able to delete the bdm? | |
| 16:21:14 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Use neutron contants in cmd/manage.py https://review.opendev.org/668946 | |
| 16:21:26 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Add 'resource_request' to neutronv2/constants https://review.opendev.org/668947 | |
| 16:22:04 | prometheanfire | compute didn't even attempt to attach from what I could see | |
| 16:22:12 | prometheanfire | didn't get that far | |
| 16:22:34 | mriedem | so...the rpc cast from nova api to nova compute failed? | |
| 16:22:39 | mriedem | you said you got a 504 somewhere | |
| 16:22:59 | prometheanfire | 504 from nova-api to client | |
| 16:23:05 | prometheanfire | openstackclient | |
| 16:23:34 | mriedem | ok i don't know why that would happen | |
| 16:24:12 | prometheanfire | I'm fine waiting til I can reproduce, I've left stuff in debug | |
| 16:26:37 | sean-k-mooney | stephenfin: jangutter so as i was saying on the placmeent channel ... i adressed my nit in https://review.opendev.org/#/c/666387/2 if ye want to take a look at that | |
| 16:28:08 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Translatable output strings in heal allocation https://review.opendev.org/668925 | |
| 16:33:25 | sean-k-mooney | aspiers: so you know that domaincap api you added for sev ... its broken | |
| 16:34:45 | sean-k-mooney | we cant default to q35 here https://github.com/openstack/nova/blob/master/nova/virt/libvirt/host.py#L744-L745 the logic breaks if you have emulators installed that dont support it | |
| 16:35:43 | sean-k-mooney | currently we dont call this code in nova yet because your sev stuff that uses it has not merged yet but i tried to use it for my device model filter stuff and it expolodes beautifully | |
| 16:38:02 | efried | mriedem: I'm going to bump current runways by, what say, 2 days due to last week's holiday? | |
| 16:39:28 | mriedem | shrug | |
| 16:39:35 | mriedem | not sure how much it matters | |
| 16:40:50 | efried | aspiers: SEV series is in merge conflict - any chance of getting that rebased soon? | |
| 16:54:01 | sean-k-mooney | mriedem: so quick question. https://review.opendev.org/#/c/659703/8 change the behavior of force config drive to remove the config drive after first boot | |
| 16:55:15 | sean-k-mooney | to me that seams like a regression as it could lead to data lose in the form of injected files if the user does not copy the injected files form the config_drive or if the operator customerises the config dirve contentce with data scripts that run on each boot | |
| 16:57:17 | sean-k-mooney | if you are using the dynamic vendor data and do not have teh metadta service deployed is this not an issue? | |
| 16:58:36 | sean-k-mooney | the injected files case might be ok if that sets instance.config_drive automaticall but i think https://review.opendev.org/#/c/659703/8/nova/virt/configdrive.py@169 might break some usecauses | |
| 16:59:44 | sean-k-mooney | as such im not sure how safe it is to backport this | |
| 17:02:57 | mriedem | "change the behavior of force config drive to remove the config drive after first boot" - you mean if you boot the server with force_config_drive=True, then change to force_config_drive=False? the bug is actually the opposite - they created a server without a config drive, then changed to force_config_drive=True and after that they can't reboot the servers on the host w/o a config drive since the file doesn't exist | |
| 17:03:35 | mriedem | i said on lyarwood's stein backport, "I'd like to move a bit slowly with this one since it's a very latent issue and is a bit of a behavior change, though justified for the reboot issue. It should also be pretty rare (I don't imagine lots of people are changing the force_config_drive value on their computes once they are deployed)." | |
| 17:03:38 | mriedem | so there it's been sitting | |
| 17:04:08 | sean-k-mooney | mriedem: no what im concerned about is the comment sugges that on a reboot the config drive will be removed | |
| 17:04:12 | mriedem | sean-k-mooney: i'm not really following you on what specific use case you think this regressed | |
| 17:04:15 | sean-k-mooney | e.g. its only present on first boot | |
| 17:04:44 | mriedem | what comment? | |
| 17:05:02 | sean-k-mooney | https://review.opendev.org/#/c/660914/1/nova/virt/configdrive.py | |
| 17:05:50 | mriedem | from the bug, if you go from no config drive to a forced config drive and reboot the vm, it pukes in libvirt | |
| 17:05:53 | mriedem | that's the bug they are fixing | |
| 17:05:54 | sean-k-mooney | if we reboot the vm that was started with a config drive launched_at will not be null right | |
| 17:06:22 | sean-k-mooney | no im talkinbg about if you boot a vme with force_config=ture | |
| 17:06:33 | sean-k-mooney | then you reboot it it should continute to have a config drive | |
| 17:06:48 | sean-k-mooney | but instance.launched_at will not be None on the second boot | |
| 17:06:58 | mriedem | you mean on the reboot | |
| 17:07:07 | sean-k-mooney | yes | |
| 17:07:19 | sean-k-mooney | boot with force it will have a config drive | |
| 17:07:24 | mriedem | so boot with force_config_drive=true, change force_config_drive=false, reboot the vm, the config drive isn't in the vm | |
| 17:07:29 | sean-k-mooney | then if you hard reboot it will go away right | |
| 17:07:45 | sean-k-mooney | no config change | |
| 17:07:55 | sean-k-mooney | if you leave it at force_config_drive=true | |
| 17:07:59 | sean-k-mooney | always | |
| 17:08:03 | sean-k-mooney | boot a vm | |
| 17:08:07 | sean-k-mooney | then hard reboot it | |
| 17:08:17 | sean-k-mooney | it should still have a config drive after the reboot | |
| 17:08:33 | sean-k-mooney | but on the reboot launched_at would be non None | |
| 17:09:02 | sean-k-mooney | so and not instance.launched_at would be false | |
| 17:09:02 | mriedem | yeah i see what you're saying, and instance.config_drive is only set from the API? | |
| 17:09:19 | sean-k-mooney | i think its set in the flavor or image | |
| 17:09:23 | sean-k-mooney | actully no | |
| 17:09:25 | sean-k-mooney | you are right | |
| 17:09:28 | sean-k-mooney | the api | |
| 17:09:43 | sean-k-mooney | so im thinking about deployment where the metadata service is not deployed | |
| 17:10:04 | sean-k-mooney | so you use force_config_drive=true to make cloud init work and for things like vendor data or device role tagging | |
| 17:10:14 | sean-k-mooney | or file injection with the v2.1 api | |
| 17:11:27 | sean-k-mooney | the last point is less relevent beacue that is depercated so i would be ok with that on master but im not sure we should backport that change and it might break people on upgrade that dont deploy the metadata service | |
| 17:11:54 | mriedem | yeah as i said i wasn't totally comfortable with backporting it | |
| 17:12:21 | mriedem | oh wait | |
| 17:12:25 | mriedem | i remember digging into this | |
| 17:12:46 | mriedem | https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L1758 | |
| 17:13:10 | mriedem | instance.config_drive will be set on compute if force_config_drive=True and the user doesn't specify it in the api | |
| 17:13:30 | mriedem | so i don't think your scenario holds | |
| 17:13:44 | mriedem | https://review.opendev.org/#/c/659703/4/nova/virt/configdrive.py@169 | |
| 17:14:32 | mriedem | so tl;dr, you likely need to recreate whatever regression you think there is and report a bug if we're going to talk about reverting that change | |
| 17:14:40 | mriedem | and i've got a hungry kid here and need to make lunch | |
| 17:15:16 | sean-k-mooney | https://github.com/openstack/nova/blob/master/nova/virt/configdrive.py#L181 | |
| 17:15:35 | sean-k-mooney | so if we have already set instace.launched_at then it wont | |