Earlier  
Posted Nick Remark
#openstack-nova - 2019-03-20
05:17:35 openstackgerrit Yongli He proposed openstack/nova master: Clean up orphan instances https://review.openstack.org/627765
07:15:46 openstackgerrit Seyeong Kim proposed openstack/nova stable/rocky: Share snapshot image membership with instance owner https://review.openstack.org/643853
09:02:54 openstackgerrit Michael Still proposed openstack/nova master: Complete remove fake_libvirt_utils. https://review.openstack.org/643897
09:02:55 openstackgerrit Michael Still proposed openstack/nova master: Remove fake_libvirt_utils users in functional testing. https://review.openstack.org/644793
09:28:10 openstackgerrit Balazs Gibizer proposed openstack/nova master: Add known issue for minimum bandwidth resource leak https://review.openstack.org/644694
09:42:06 openstackgerrit Stephen Finucane proposed openstack/nova master: docs: Misc cleanups https://review.openstack.org/644616
10:08:53 mdbooth stephenfin: Hey, so it turns out sphinx also imports nova/api/openstack/__init__.py
10:09:15 mdbooth stephenfin: My patch is adding monkey patching there, so sphinx is still borked
10:10:11 mdbooth stephenfin: I moved monkey patching there for the wsgi entry point because I don't think it can be anywhere else, so I'm a bit stumped.
10:10:48 stephenfin mdbooth: Tried using the mock setting I was on about?
10:10:59 mdbooth stephenfin: In sphinx?
10:11:05 stephenfin aye
10:11:21 mdbooth Is that a valid thing to do?
10:11:32 mdbooth I didn't understand what it did, tbh.
10:11:39 stephenfin http://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#confval-autodoc_mock_imports
10:12:24 mdbooth Oh, so autodoc_mock_imports = ["nova.monkey_patch"] ?
10:12:28 stephenfin tbh, I'm not sure how it works under the hood either. You could try mocking the 'eventlet' module though and see what happens
10:12:32 stephenfin Or that, yeah
10:12:52 mdbooth Where does the sphinx config live again?
10:13:00 stephenfin If that doesn't help, we're going to have to rip out the stuff that imports code and figure out which one is causing the issue
10:13:22 stephenfin Those modules being 'oslo_config.sphinxext', 'oslo_policy.sphinxext' and 'sphinx.ext.apidoc'
10:13:25 sean-k-mooney mdbooth: i think in docs/sources/conf.py
10:13:28 stephenfin mdbooth: doc/source/conf.py
10:13:39 sean-k-mooney i was so close :)
10:14:36 openstackgerrit Balazs Gibizer proposed openstack/nova-specs master: Update Network Bandwidth resource provider spec https://review.openstack.org/644810
10:19:12 mdbooth stephenfin: autodoc_mock_imports = ["nova.monkey_patch"] does not appear to mock nova.monkey_patch
10:20:25 sean-k-mooney mdbooth: whatabout autodoc_mock_imports = ["eventlet"] ?
10:20:57 mdbooth Just trying, but I am disappoint
10:21:52 stephenfin mdbooth: Hmm, out of curiosity, doesn't this mean that simply importing 'nova' will trigger the monkey patching so, regardless of whether it's Sphinx importing it or something else?
10:22:02 mdbooth That also appears not to be mocked.
10:22:25 mdbooth stephenfin: Well *anything* importing one of these classes will apply monkey patching
10:22:31 mdbooth But this has always been true
10:22:51 mdbooth In this specific instance, I've moved the wsgi entry point, though
10:23:02 stephenfin and what's changed?
10:23:11 sean-k-mooney stephenfin: the classes that triggered the auto monkey patching in the past did not contain any reuable busines loginc
10:23:14 mdbooth It used to be in nova/api/openstack/wsgi_app.py, it's now in nova/api/openstack/__init__.py
10:23:25 mdbooth However, it has *always* been in nova/cmd/__init__.py
10:23:34 sean-k-mooney ya
10:24:05 sean-k-mooney nova/cmd/__init__.py was done so that when we use setup tools to generate the console scipts
10:24:16 mdbooth sean-k-mooney: The reusable aspect of my patch is a side effect
10:24:23 sean-k-mooney the import of the commands monkey patched it automatically
10:24:43 mdbooth Primarily it *fixes* the non-wsgi and wsgi imports to do monkey patching before importing anything else
10:24:54 mdbooth It's a bugfix, not a cleanup
10:24:58 sean-k-mooney mdbooth: yes
10:25:09 sean-k-mooney but the point i was try to make was
10:25:24 sean-k-mooney if you wrote a tool that just imported our config definiton
10:25:34 sean-k-mooney say to do a config migration or to generate the files
10:25:48 sean-k-mooney then before it would not monkey patch your tool
10:26:09 sean-k-mooney depending on where you put the call that may or may not change
10:26:48 mdbooth stephenfin: How would you feel if I set an environment variable in sphinx tox.ini which nova.monkey_patch used to skip monkey patching?
10:26:57 mdbooth Or conf.py
10:27:40 stephenfin mdbooth: I'm all for it
10:29:07 stephenfin With a giant NOTE explaining why we do this craziness
10:29:32 mdbooth stephenfin: Heh, of course
10:29:47 mdbooth stephenfin: nova.monkey_patch is itself now a giant NOTE
10:30:20 sean-k-mooney stephenfin: im hoping in train we can remove the need to monkey patch the wsgi api code.
10:30:28 stephenfin U, you mean?
10:30:36 sean-k-mooney no in trian
10:30:48 stephenfin Oh, sorry, just the WSGI piece
10:30:52 sean-k-mooney it was a regression in the multi cell list feither
10:30:58 mdbooth Indeed
10:30:58 sean-k-mooney *feature
10:31:05 sean-k-mooney ya just the wsgi piece
10:31:34 mdbooth Although, tbh it's flaky as hell and we need to remove the whole thing.
10:31:41 sean-k-mooney doing it in general is proably not worth it but eventlets and wsgi are not partcally happy bedfellows
10:32:16 mdbooth Our entry points are not sufficiently well defined to do this. Specifically, monkey patching on import is a bad idea, but our entry points leave us with no other choice.
10:32:19 sean-k-mooney mdbooth: ya that proably a U thing but futuriest actully has eveything i waned by asyncio form python3
10:32:56 sean-k-mooney mdbooth: ya
10:33:53 sean-k-mooney fortunetly or not depending on your perspective we dont alter those entry points frequently so the sting and ductape we have been using in the past has been enough
10:59:32 aspiers is it just me or is tempest-full-py broken? "The error was: 'gabbi_tempest_path' is undefined\n\nThe error appears to have been in '/var/lib/zuul/builds/42292da2453549e68ae6c1e63bfca00b/untrusted/project_5/git.openstack.org/openstack/tempest/roles/setup-tempest-run-dir/tasks/main.yaml'"
11:00:10 cdent blargh, that sounds like it is at least partially my fault
11:00:27 cdent (because of gabbi in the name) but I haven't changed anything recently
11:00:32 aspiers cdent: failure is in https://review.openstack.org/#/c/644554/
11:00:35 cdent thanks
11:03:06 cdent aspiers: looks like it has already been fixed
11:03:11 aspiers oh nice
11:03:34 cdent https://review.openstack.org/#/c/644699/
11:04:27 cdent hmm, actually I think that may have broken it
11:04:33 aspiers haha
11:06:40 cdent aspiers: it is a fix, the reason it wasn't happening before is because it didn't tickle a problem until ansible 2.7 was the default
11:06:52 aspiers ah ok
11:06:54 aspiers thanks!
11:06:58 aspiers is it just me or does the browser not cache these horrendously long job-output.txt.gz files?
11:07:20 cdent I think it does not
11:07:35 aspiers I see my Chrome sending Cache-Control: no-cache with the request - wtf?
11:07:43 aspiers Why would it do that?
11:08:19 cdent I think it is because the server is not sending good headers
11:08:34 cdent there's no last-modified or other cache-related header in the headers of the response
11:08:44 aspiers I see Cache-Control in the response
11:09:04 aspiers but surely it's the Apache index page which should control how the client sends a request for the actual file
11:09:13 aspiers http://logs.openstack.org/54/644554/2/check/tempest-full-py3/42292da/ <- this one
11:09:23 sean-k-mooney aspiers: do you have the developer console open
11:09:32 aspiers sean-k-mooney: ohhhh, good point
11:09:33 cdent if I do a raw curl of the log file you linked to above and the headers are very limited
11:09:39 sean-k-mooney aspiers: there is a tick box to disable cache
11:09:47 aspiers sean-k-mooney: thanks for the reminder!
11:12:07 aspiers ok so unticking "Disable cache" gets rid of no-cache headers, but it's still re-downloading the full file each time
11:12:29 cdent because of what I said: the server isn't providing enough info to allow useful caching
11:13:07 aspiers so it's missing an Expires: header?
11:13:15 aspiers or Last-Modified

Earlier   Later