Earlier  
Posted Nick Remark
#openstack-nova - 2018-04-17
20:45:58 imacdonn yep, I just 'grep -r'ed too ;)
20:46:33 imacdonn ooooh
20:46:39 efried ...which is probably less reliable than grep -r
20:46:43 imacdonn heh
20:46:52 efried but way more efficient.
20:47:07 efried You know, as long as you discount all the freaking processing power the IDE had to do up front to indext the whole freaking project.
20:47:17 efried s/indext/index/
20:47:22 imacdonn yeah
20:47:30 mriedem cfriesen: if i revert this https://review.openstack.org/#/c/543970/ then the test fails with ServiceNotFound
20:48:31 openstackgerrit Matt Riedemann proposed openstack/nova master: DNM: Revert "Lazy-load instance attributes with read_deleted=yes" https://review.openstack.org/562051
20:48:39 mriedem but, that basically means it's already fixed
20:49:11 cfriesen mriedem: does host1.stop() delete the entry in the DB? or do we need host1.kill()?
20:49:24 cfriesen I definitely tested it with current stable/pike in devstack
20:49:33 mriedem .stop() doesn't delete the service
20:50:16 openstackgerrit Merged openstack/nova master: Parse forbidden in extra_specs https://review.openstack.org/561677
20:50:20 cfriesen ah, I see. you're stopping it then deleting it
20:50:23 mriedem besides, yeah
20:50:49 mriedem i stop the service, delete it, and then have to null out the service uuid because as noted, deleting the service via the rest api looks it up and will migrate the uuid if not set
20:50:59 cfriesen let me just double-check my devstack
20:52:13 mriedem cfriesen: did you have https://review.openstack.org/#/c/545988/ in your devstack env?
20:52:30 openstackgerrit Merged openstack/nova stable/pike: libvirt: Block swap volume attempts with encrypted volumes prior to Queens https://review.openstack.org/543569
20:52:32 mriedem oh you said current stable/pike
20:53:42 openstackgerrit iain MacDonnell proposed openstack/nova master: Remove placement config check https://review.openstack.org/558089
20:56:01 mriedem well, if anything, i guess i can still leave this test in place for bug 1745977 so we have coverage of the scenario
20:56:01 openstack bug 1745977 in OpenStack Compute (nova) queens "When source compute service up, will not destroy and clean up those instances which be evacuated then be deleted." [Medium,Fix committed] https://launchpad.net/bugs/1745977 - Assigned to Matt Riedemann (mriedem)
20:57:08 cfriesen mriedem: when you list the servers, are you doing it as an admin user?
20:57:21 cfriesen mriedem: regular user doesn't get the host info
20:57:57 cfriesen mriedem: and so doesn't trigger the bug
20:58:41 cfriesen I just reproduced in devstack after restarting all the nova services, so should be valid
20:59:39 openstackgerrit melanie witt proposed openstack/nova master: Add periodic task to clean expired console tokens https://review.openstack.org/325381
20:59:40 openstackgerrit melanie witt proposed openstack/nova master: Use ConsoleAuthToken object to generate authorizations https://review.openstack.org/325414
20:59:41 openstackgerrit melanie witt proposed openstack/nova master: Convert websocketproxy to use db for token validation https://review.openstack.org/333990
20:59:42 openstackgerrit melanie witt proposed openstack/nova master: Update layout docs for running console proxies https://review.openstack.org/557489
20:59:44 cfriesen I wonder if you just replaced self.api.get_servers() at the bottom with self.admin_api.get_servers()...
20:59:45 mriedem cfriesen: no, not admin
21:00:09 mriedem i can try that
21:00:50 efried jaypipes: Quick +A on previously +2'd https://review.openstack.org/#/c/558089/ ?
21:04:26 mriedem there will be an obvious error in the n-cpu logs when placement isn't configured without that?
21:04:37 mriedem or will we just get the safe_connect warnings?
21:05:10 mriedem cfriesen: that doesn't change anything, listing with admin
21:05:47 efried mriedem: We should see MissingAuthPlugin
21:05:53 efried mriedem: But IMO safe_connect is still broken.
21:06:15 mriedem so we'll get https://github.com/openstack/nova/blob/master/nova/scheduler/client/report.py#L77
21:06:21 mriedem and nova-compute will be running and not reporting into placement
21:06:57 dansmith we shouldn't warn_limit that I think
21:07:04 efried mriedem: Yup, I believe that's right. You'll get that nag the first ten times (or whatever) and then it'll quit.
21:07:28 efried It's more broken than warn_limit can fix.
21:07:51 efried What's broken about it is that we don't raise an exception when it happens. We just let the decorated code continue.
21:08:08 dansmith yeah we should explode I think
21:08:14 mriedem well, for nova-compute sure
21:08:20 mriedem but for nova-api in rocky no
21:08:38 efried If safe_connect was used extremely carefully - only in the outermost scope of whatever is calling into placement - then it would be less broken.
21:08:55 mriedem i.e. https://review.openstack.org/#/c/560706/2/releasenotes/notes/bug-1679750-local-delete-allocations-cb7bfbcb6c36b6a2.yaml
21:09:09 efried But as it stands, it is theoretically possible for it to reconnect and then proceed, having skipped the first step of whatever that outer process was.
21:09:34 efried For this patch, it makes no difference - *nothing* will get done to placement. But for random midstream disconnects, it could potentially be disastrous.
21:11:07 efried I guess ^ only applies for the EndpointNotFound branch.
21:11:17 efried cause that's the only place we try to reconnect.
21:12:28 dansmith safe_connect was to make moving from no-placement to placement very smooth
21:12:36 dansmith it probably needs to change quite a bit in today's world
21:12:46 dansmith logging every single time we fail to talk to placement at least,
21:13:03 dansmith and probably raising a lot more so we don't fail to make changes we think we're making
21:14:31 mriedem so before rocky we never said that nova-api required config to talk to placement, are we now saying it does and if you don't have that config in place things are going to blow up?
21:14:51 mriedem specifically thinking about https://review.openstack.org/#/q/topic:bug/1756179+(status:open+OR+status:merged) and the mirror aggregates stuff
21:15:03 dansmith personally that doesn't bother me, but api-initiated code can be graceful about it
21:15:05 mriedem the former i care about more b/c i thought we would backport those
21:15:09 dansmith without needing safe_connect hiding everything from us
21:16:05 dansmith IMHO, ultimately the api aggregate mirroring stuff should be strict about not making local changes if it can't tell placement, so it needs good exception handling anyway
21:16:22 dansmith making it graceful now and strict later is easy if it's all up there
21:16:34 dansmith well, not all, but .. the handling of this not-configured case at least
21:16:34 mriedem so basically move safe_connect to api
21:16:43 openstackgerrit Merged openstack/nova master: libvirt: Report the allocated size of preallocated file based disks https://review.openstack.org/561704
21:16:45 mriedem and drop it in stein
21:16:53 dansmith I dunno that all of safe_connect needs to go away, but I'd have to go look at it
21:17:14 dansmith but yeah, the "tread lightly" function of it makes no sense for compute anymore, but api has the same need compute did
21:19:35 efried I like the idea of nixing safe_connect, at least in its current form. If we get rid of it, then placement connect errors will raise exceptions that will bubble all the way up the stack. Usually (i.e. in _update-land) that'll mean we hit whatever operation again on the next periodic task.
21:20:33 efried If we keep safe_connect, it should have some functionality that... connects... safely. E.g. the current exception clauses should reconnect and then retry the original call (once).
21:20:53 efried That ^ is what I was expecting it to do when I first saw it.
21:21:00 efried ...before I actually read the code.
21:21:14 openstackgerrit Doug Hellmann proposed openstack/os-vif master: Add lower-constraints job https://review.openstack.org/556056
21:21:59 efried At this point, perhaps certain of those exceptions (like MissingAuthPlugin) should actually disable the compute service.
21:22:00 mriedem i could see adding a kwarg to safe_connect telling it how to behave, so that by default it can now explode on connection failures (nova-compute, scheduler, conductor would want that), but nova-api could tell it to not fail due to those
21:22:29 mriedem efried: well, that was the point of the check on startup region_name
21:22:37 mriedem *using region_name
21:22:54 efried mriedem: Right; so at this point are we ever calling report client from code paths that *don't* require placement to be online?
21:23:04 dansmith he is asserting api
21:23:16 mriedem we have patches up for review which add new requirements to nova-api for placement
21:23:17 dansmith but I personally don't think it's unreasonable to start calling it
21:23:19 efried I'm sayin, are we calling it from API even if we don't require it?
21:23:22 mriedem and i'm trying to make those graceful for upgrades
21:23:36 dansmith I feel like we'd start or stop talking to cinder or neutron from api without thinking about it
21:23:56 dansmith but also,
21:24:08 dansmith I don't think we have to have safe_connect at the lowest layer just because api wants it
21:24:30 mriedem i agree with the last thing you said
21:24:31 dansmith api can do the placement mirroring stuff and except Exception
21:24:52 dansmith or we can move safe_connect to a context manager and you can do:
21:25:00 dansmith with safe_placement_stuff: do_things;
21:25:02 mriedem ^ is what i'm thinking
21:25:16 dansmith and it will catch and ignore or log or whatever is appropriate for up there
21:26:19 efried dansmith: Would you use that context manager from RT or from methods within report client?
21:26:40 dansmith you'd use it in the api methods getting ready to talk to placement

Earlier   Later