Thursday, 2024-10-24

opendevreviewTakashi Kajinami proposed openstack/python-glanceclient master: Remove Python 3.8 support  https://review.opendev.org/c/openstack/python-glanceclient/+/93322509:11
opendevreviewRajat Dhasmana proposed openstack/glance master: Doc: Add info about multi-attach volume types  https://review.opendev.org/c/openstack/glance/+/93269410:48
tkajinamI 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
tkajinamalso I proposed https://review.opendev.org/c/openstack/glance/+/930881  for glance. just fyi13:56
dansmithrosmaita: coming to the image format session?14:01
abhishekkrosmaita: ^^14:02
rosmaitaomw14:05
jbernardheya, just checking on the image encryption discussion, are we meeting in teh nova room?14:51
whoami-rajatabhishekk, rosmaita ^^14:51
abhishekkjoining14:52
abhishekkcinder room I guess14:52
whoami-rajatabhishekk, we are already in the nova room and the topic requires nova team as well right?14:53
whoami-rajatokay we're meeting in the cinder room, sorry for the confusion14:58
whoami-rajat#link https://meet.google.com/ijz-ivqg-bam14:58
abhishekk@croelandt we are here, https://meet.google.com/ijz-ivqg-bam15:00
croelandtlol ok spent 5 minutes getting audio to work in meetpad :D15:03
abhishekk:D15:12
abhishekkwhoami-rajat: I don't think we have time left for next discussion as we need to move to glance for eventlet discussion15:49
abhishekkIf possible we can discuss this during glance/cinder weekly meeting after the PTG15:50
opendevreviewCyril Roelandt proposed openstack/glance master: Use time.sleep() instead of eventlet.sleep()  https://review.opendev.org/c/openstack/glance/+/93333115:53
opendevreviewMerged openstack/glance master: Doc: Add info about multi-attach volume types  https://review.opendev.org/c/openstack/glance/+/93269416:09
opendevreviewCyril Roelandt proposed openstack/glance master: Use time.sleep() instead of eventlet.sleep()  https://review.opendev.org/c/openstack/glance/+/93333119:57
croelandtdansmith: https://github.com/openstack/devstack/blob/master/lib/glance#L80 is this still true? 20:00
croelandtI don't understand how we can be have both WSGI_MODE==uswsgi and GLANCE_STANDALONE==True btw :/20:00
dansmithcroelandt: that is from before we had the ability to do long-running threads in wsgi mode I think20:10
dansmithpart of my efforts to get glance to be able to do that20:10
dansmithWSGI_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 course20:11
croelandtOK20:36
croelandtThis 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#L62120:37
dansmithwell, we run it internally,20:38
croelandtBut 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
dansmithbut yeah the glance implementation of wsgi and wsgi_app is confusing20:38
dansmithyes, 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
croelandtok20:41
croelandtwhat came out of today's eventlet session is that we'd like to try and *always* run with uwsgi20:41
croelandtand then see if we can just trash the eventlet-based wsgi server20:42
dansmithyup20:43
dansmiththanks to some smart dude, glance already has a eventlet-or-threads switch built in :)20:43
croelandtMy motto for this cycle: with fewer lines of code, everything will be clearer20:43
dansmithnova's road is much more complex20:43
croelandtyeah so the eventlet or threads thing is... well maybe not working that well20:44
dansmithno? it's the only reason you can run glance in wsgi mode with import20:44
croelandtoh ok we might be talking about something else, let me check20:44
croelandthttps://review.opendev.org/c/openstack/glance/+/928095 this for instance20:45
dansmithum, that makes no sense20:45
dansmithyou're introducing threads into the eventlet/standalone case20:46
dansmithwhich may just be a no-op since threading should be monkey-patched there20:46
croelandtbecause the functional tests run in standalone mode?20:46
dansmithyou mean the thing we spawn to hit from functional? yeah, without a wsgi server we kinda have to spawn it in standalone mode20:47
croelandthm, fun20:47
croelandtso there is that to take care of as well20:47
dansmithso 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
croelandthuhu yeah20:47
croelandtso we're gonna need to fgure out how to run functional tests without eventlet, basically20:48
dansmiththe 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
dansmithyes, if we keep the current model of spawning a totally separate server like that20:48
dansmithwe might be able to just use flask or something for that20:48
dansmithFWIW, nova doesn't do it that way.. we just create a request and pass it to the request handler instead of spawning a separate process20:49
dansmithit's not as insulated from the test, but is 9.86 billion times easier to debug failures20:49
dansmithI about ragequit glance trying to figure out functional failures early on20:49
croelandtso you "manually" test the handlers, in a way20:49
dansmithsynchronously I'd call it, yeah, which is why I wrote that handler for glance so I could write some tests like that20:50
dansmithlemme link20:50
croelandtyeah if you've got the nova code that could be interesting20:50
dansmithno, in glance:20:50
dansmithhttps://github.com/openstack/glance/blob/master/glance/tests/functional/__init__.py#L148920:50
dansmithit'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 exit20:51
dansmithnot saying everything has to be that way, but.. it's much easier20:51
dansmithI think abhishek_ will agree, IIRC :)20:52
dansmithmy "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
croelandtso only those tests would work in a non-eventlet context :)20:54
croelandtso wegot 1% of the tests working already \o/20:54
dansmithheh20:54
croelandtso ok maybe we end up using this for other functional tests as well20:54
dansmithmaybe 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 yeah20:55
croelandt512 functional test functions, this is going to be fun20:57
dansmith:D20:58
croelandtHow about we rewrite Glance in Rust?20:58
* croelandt hides20:58
abhishek_just the beginning, I will say 20:58
croelandtwhat do you mean?20:58
abhishek_512 functional test rewrite20:59
croelandtwell that's the output of $ git grep "def test" glance/tests/functional/|wc -l20: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
croelandtyes21:02
croelandtIt would be interesting to see how Nova does the testing21:02
croelandtfor some of the tests we might just be able to craft a custom request and shove it into the handler method21:02
croelandtas they do, if I understand correctly21:02
croelandtand that's probably fine :D21:02

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!