opendevreview | Takashi Kajinami proposed openstack/python-glanceclient master: Remove Python 3.8 support https://review.opendev.org/c/openstack/python-glanceclient/+/933225 | 09:11 |
---|---|---|
opendevreview | Rajat Dhasmana proposed openstack/glance master: Doc: Add info about multi-attach volume types https://review.opendev.org/c/openstack/glance/+/932694 | 10:48 |
tkajinam | I wonder if we can merge https://review.opendev.org/c/openstack/glance_store/+/930880 now since the initial py38 support removal patch already landed ? | 13:55 |
tkajinam | also I proposed https://review.opendev.org/c/openstack/glance/+/930881 for glance. just fyi | 13:56 |
dansmith | rosmaita: coming to the image format session? | 14:01 |
abhishekk | rosmaita: ^^ | 14:02 |
rosmaita | omw | 14:05 |
jbernard | heya, just checking on the image encryption discussion, are we meeting in teh nova room? | 14:51 |
whoami-rajat | abhishekk, rosmaita ^^ | 14:51 |
abhishekk | joining | 14:52 |
abhishekk | cinder room I guess | 14:52 |
whoami-rajat | abhishekk, we are already in the nova room and the topic requires nova team as well right? | 14:53 |
whoami-rajat | okay we're meeting in the cinder room, sorry for the confusion | 14:58 |
whoami-rajat | #link https://meet.google.com/ijz-ivqg-bam | 14:58 |
abhishekk | @croelandt we are here, https://meet.google.com/ijz-ivqg-bam | 15:00 |
croelandt | lol ok spent 5 minutes getting audio to work in meetpad :D | 15:03 |
abhishekk | :D | 15:12 |
abhishekk | whoami-rajat: I don't think we have time left for next discussion as we need to move to glance for eventlet discussion | 15:49 |
abhishekk | If possible we can discuss this during glance/cinder weekly meeting after the PTG | 15:50 |
opendevreview | Cyril Roelandt proposed openstack/glance master: Use time.sleep() instead of eventlet.sleep() https://review.opendev.org/c/openstack/glance/+/933331 | 15:53 |
opendevreview | Merged openstack/glance master: Doc: Add info about multi-attach volume types https://review.opendev.org/c/openstack/glance/+/932694 | 16:09 |
opendevreview | Cyril Roelandt proposed openstack/glance master: Use time.sleep() instead of eventlet.sleep() https://review.opendev.org/c/openstack/glance/+/933331 | 19:57 |
croelandt | dansmith: https://github.com/openstack/devstack/blob/master/lib/glance#L80 is this still true? | 20:00 |
croelandt | I don't understand how we can be have both WSGI_MODE==uswsgi and GLANCE_STANDALONE==True btw :/ | 20:00 |
dansmith | croelandt: that is from before we had the ability to do long-running threads in wsgi mode I think | 20:10 |
dansmith | part of my efforts to get glance to be able to do that | 20:10 |
dansmith | WSGI_MODE is the global that tells devstack how we do wsgi (uwsgi, mod_wsgi, etc I think) and the glance_standalone is so we can specifically ask for glance to be non-wsgi at all, which is an outlier of course | 20:11 |
croelandt | OK | 20:36 |
croelandt | This feels quite confusing because whenever we use !STANDALONE, we do not seem to run wsgi at all, like https://github.com/openstack/devstack/blob/master/lib/glance#L424 and https://github.com/openstack/devstack/blob/master/lib/glance#L621 | 20:37 |
dansmith | well, we run it internally, | 20:38 |
croelandt | But now that we have long running threads in wsgi, we should be able to have full functionality with both WSGI_MODE == uwsgi and STANDALONE == False? | 20:38 |
dansmith | but yeah the glance implementation of wsgi and wsgi_app is confusing | 20:38 |
dansmith | yes, and several of our jobs run in non-standalone (i.e. wsgi) mode and with import enabled (which is where the long-running tasks happen) | 20:38 |
croelandt | ok | 20:41 |
croelandt | what came out of today's eventlet session is that we'd like to try and *always* run with uwsgi | 20:41 |
croelandt | and then see if we can just trash the eventlet-based wsgi server | 20:42 |
dansmith | yup | 20:43 |
dansmith | thanks to some smart dude, glance already has a eventlet-or-threads switch built in :) | 20:43 |
croelandt | My motto for this cycle: with fewer lines of code, everything will be clearer | 20:43 |
dansmith | nova's road is much more complex | 20:43 |
croelandt | yeah so the eventlet or threads thing is... well maybe not working that well | 20:44 |
dansmith | no? it's the only reason you can run glance in wsgi mode with import | 20:44 |
croelandt | oh ok we might be talking about something else, let me check | 20:44 |
croelandt | https://review.opendev.org/c/openstack/glance/+/928095 this for instance | 20:45 |
dansmith | um, that makes no sense | 20:45 |
dansmith | you're introducing threads into the eventlet/standalone case | 20:46 |
dansmith | which may just be a no-op since threading should be monkey-patched there | 20:46 |
croelandt | because the functional tests run in standalone mode? | 20:46 |
dansmith | you mean the thing we spawn to hit from functional? yeah, without a wsgi server we kinda have to spawn it in standalone mode | 20:47 |
croelandt | hm, fun | 20:47 |
croelandt | so there is that to take care of as well | 20:47 |
dansmith | so if that has a real effect, it means you're mixing eventlet and real threads in a single process, which is, like, bad and stuff (without lots of care) | 20:47 |
croelandt | huhu yeah | 20:47 |
croelandt | so we're gonna need to fgure out how to run functional tests without eventlet, basically | 20:48 |
dansmith | the set_threadpool_model thing is there so that we can choose either real threads in wsgi more, or eventlet in standalone mode, and all you're doing is always choosing real threads, even in eventlet/standalone mode :) | 20:48 |
dansmith | yes, if we keep the current model of spawning a totally separate server like that | 20:48 |
dansmith | we might be able to just use flask or something for that | 20:48 |
dansmith | FWIW, nova doesn't do it that way.. we just create a request and pass it to the request handler instead of spawning a separate process | 20:49 |
dansmith | it's not as insulated from the test, but is 9.86 billion times easier to debug failures | 20:49 |
dansmith | I about ragequit glance trying to figure out functional failures early on | 20:49 |
croelandt | so you "manually" test the handlers, in a way | 20:49 |
dansmith | synchronously I'd call it, yeah, which is why I wrote that handler for glance so I could write some tests like that | 20:50 |
dansmith | lemme link | 20:50 |
croelandt | yeah if you've got the nova code that could be interesting | 20:50 |
dansmith | no, in glance: | 20:50 |
dansmith | https://github.com/openstack/glance/blob/master/glance/tests/functional/__init__.py#L1489 | 20:50 |
dansmith | it's much easier, quicker, less cleanup, and soooo much more straightforward to debug because we don't have a separate log file and temporary files that all get nuked on exit | 20:51 |
dansmith | not saying everything has to be that way, but.. it's much easier | 20:51 |
dansmith | I think abhishek_ will agree, IIRC :) | 20:52 |
dansmith | my "should not be used for happy path testing" comment there was just to avoid derailing subsequent efforts while I was still newish to the project, but... especially with the eventlet complication it might be worth a revisit :) | 20:54 |
croelandt | so only those tests would work in a non-eventlet context :) | 20:54 |
croelandt | so wegot 1% of the tests working already \o/ | 20:54 |
dansmith | heh | 20:54 |
croelandt | so ok maybe we end up using this for other functional tests as well | 20:54 |
dansmith | maybe not all, but for tests where it's not important to start something dedicated, it could make for quick conversions of a bunch of them yeah | 20:55 |
croelandt | 512 functional test functions, this is going to be fun | 20:57 |
dansmith | :D | 20:58 |
croelandt | How about we rewrite Glance in Rust? | 20:58 |
* croelandt hides | 20:58 | |
abhishek_ | just the beginning, I will say | 20:58 |
croelandt | what do you mean? | 20:58 |
abhishek_ | 512 functional test rewrite | 20:59 |
croelandt | well that's the output of $ git grep "def test" glance/tests/functional/|wc -l | 20:59 |
abhishek_ | :facepalm: | 20:59 |
* abhishek_ will go back to sleep peacefully at least for tonight | 21:00 | |
abhishek_ | @croelandt we will revisit this tomorrow (may be your morning time) | 21:01 |
croelandt | yes | 21:02 |
croelandt | It would be interesting to see how Nova does the testing | 21:02 |
croelandt | for some of the tests we might just be able to craft a custom request and shove it into the handler method | 21:02 |
croelandt | as they do, if I understand correctly | 21:02 |
croelandt | and that's probably fine :D | 21:02 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!