Thursday, 2025-04-24

*** mhen_ is now known as mhen01:19
croelandt#startmeeting glance14:00
opendevmeetMeeting started Thu Apr 24 14:00:20 2025 UTC and is due to finish in 60 minutes.  The chair is croelandt. Information about MeetBot at http://wiki.debian.org/MeetBot.14:00
opendevmeetUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.14:00
opendevmeetThe meeting name has been set to 'glance'14:00
croelandt#topic roll call14:00
croelandt#link https://etherpad.openstack.org/p/glance-team-meeting-agenda14:00
abhishekk_Hi14:00
mheno/14:01
rosmaitao/14:01
croelandtlet's start14:01
croelandtI'll be chairing since mrjoshi is feeling unwell14:01
croelandt#topic Release/periodic job updates14:02
abhishekk_Ok14:02
croelandtso glance.tests.functional.v2.test_images_import_locking.TestImageImportLocking.test_import_copy_bust_lock has been failing  for a long time14:02
croelandtboth in periodic jobs and on reviews14:02
croelandtI cannot reproduce this failure on my machine14:02
croelandtIf anyone can, it would be helpful to figure out what's happening and maybe bisect the issue14:02
croelandtotherwise, I'm not sure what to do. Do we want to "temporarily" disable the test?14:03
rosmaitais it only failing on py310 ?14:04
abhishekk_I don’t think disabling the test is a right option14:04
croelandtno, it's failing on multiple versions of Python14:04
croelandtbut not always :)14:04
croelandtabhishekk_: so how do we debug that? 14:05
croelandtI've tried running the failing test in a loop, and it *never* fails locally :/14:05
abhishekk_For time being14:05
abhishekk_We can add tri catch and if it fails14:06
rosmaitado we randomize the test ordering?14:06
croelandtabhishekk_: and silently ignore the failure?14:07
abhishekk_I think ao14:07
croelandtrosmaita: hm, how do we check that?14:07
croelandtit would be tox/stestr doing that, I guess?14:07
rosmaitayes, there14:07
croelandthm do you know what config option turns the randomization on/off?14:08
rosmaitawould be in tox.ini14:08
abhishekk_Is it possible to run that test in the end?14:08
rosmaitalooks like we do not randomize14:09
croelandtrosmaita: is it a good thing or a bad one? :)14:10
rosmaitathough, to an extent you can get different ordering based on number of cpus available, i think14:10
croelandtyeah14:10
croelandtso "action items" :)14:10
croelandtabhishekk_: you'd want to try/except the failure? 14:10
rosmaitawell, it's good for this question, because it means that the failure isn't due to some test not cleaning up and then causing a problem 14:11
rosmaitaso probably the issue here isn't insufficient test isolation causing an issue14:11
abhishekk_I need to check for that, I remember i had done it earlier for one test14:11
croelandtok so maybe we force it to be first or last14:12
croelandtsee if it keeps failing14:12
abhishekk_It should be last imo14:12
croelandtI see "stestr run" has a "--load-list" option14:12
croelandtmaybe listing all tests in there and rearranging them can do the trick14:13
rosmaitawell, i think run stestr twice: first time, everything *except* the bad test, second time *only* the bad test14:13
croelandtoh I see14:14
rosmaitai think there's a "combine" option to stestr that you give the second one14:14
croelandtok I'll send a DNM patch that does that14:14
croelandtyeah we can do "--exclude" for the first run, pass the test name for the second run, and combine14:14
croelandtok good, let's move on14:15
croelandt#topic Important Zuul patches14:15
croelandt#link https://review.opendev.org/c/openstack/glance/+/933614 14:15
croelandtso this is an old patch of mine removing standalone deployments14:15
croelandtI don't remember the details to be honest :) But iirc devstack is no longer really using that, and without eventlet we'll drop that too 14:16
* dansmith stumbles in late14:16
croelandtdoes it make sense to remove standalone deployments from our test runs?14:16
dansmithseems fine to me to remove standalone if we're trying to ... remove that ability :)14:17
croelandtyeah and I think that's in our plans14:17
dansmithcroelandt: if you can link me to an example of the bust lock failure I can have a quick look at least14:18
croelandtoh it has *not* been merged indevstack14:18
croelandthttps://review.opendev.org/c/openstack/devstack/+/93220114:18
rosmaitahttps://56667f4336a8ddb79330-f6a340cbf02833d06cf13bf014ff46d4.ssl.cf1.rackcdn.com/openstack/e9a8cede349346b1a792b4a7af6ac4f7/testr_results.html14:18
croelandtrosmaita: thanks14:18
rosmaitadansmith: ^^14:18
dansmiththanks14:18
croelandtso ok, maybe I'll check with stephenfin first14:18
croelandtabhishekk_: what do you think?14:19
dansmithcroelandt: but the goal is to remove eventlet, which means removing standalone14:19
rosmaitai've looked at a few, seems to be the KeyError: 'os_glance_import_task' on the ones i've seen14:19
dansmithwe could probably remove a bunch of eventlet code in glance by removing tandalone mode14:19
croelandtrosmaita: yeah it's always this one14:19
croelandtdansmith: then let's do it :)14:19
abhishekk++14:19
croelandtok so I'll let you take a look at the zuul patch14:20
croelandt#topic One easy patch per core dev14:20
croelandt#link https://review.opendev.org/c/openstack/glance/+/94438114:20
croelandtso this is about making sure we correctly update the doc headers every release14:20
croelandtbut I also wonder whether we have a document listing all steps to take when making a release (send a patch to openstack/releases, update the doc headers, etc.)14:21
croelandtas PTL that would help14:21
croelandtotherwise I'll write down my own notes14:21
abhishekk+1 for doc14:21
croelandtyeah so if that does not exist I'll take notes and try to add something in doc/source/ by the end of the cycle14:22
abhishekkack14:23
croelandtMoving on14:23
croelandt#topic  Open Discussion14:23
croelandtSo I'm gonna be away next two Thursdays14:23
croelandtoh and also the 29th14:23
dansmithshould we chat about the image size transfer encoding thing?14:23
croelandtI think Mridula will be back to chair the meeting though14:24
abhishekkI want someone to have look at my scrubber patch14:24
abhishekkyes14:24
croelandtabhishekk_: yeah I need to take a look at the new version14:24
rosmaitacroelandt: https://docs.openstack.org/glance/latest/contributor/releasecycle.html14:24
croelandtdansmith: you have the mic14:24
croelandtrosmaita: oh nice!14:24
rosmaitalooks like it needs an update14:24
dansmithSo I'm very much not in favor of disabling chunked transfers when someone passes image_size (or a flag to disable chunked transfers), especially since we've been doing chunked transfers for a long time, and we're about to freeze glanceclient14:25
croelandtrosmaita: yeah I'll read and update14:25
dansmithso I don't want to swoop in with a last-minute change to completely alter how we transfer gigs of image data, then freeze the library,14:25
abhishekkdansmith: in short we will be calculating size at client and then pass it to API14:25
dansmithespecially since the right thing, IMHO, is to take image_size but send it to the API instead of changing the transfer encoding14:25
abhishekkAND at api side we will reject upload if size is not specified or continue without that?14:26
dansmithabhishekk: we can't calculate it, we need to take it as a parameter, but communicate it some other way to the API and not just change from chunked to unchunked transfer encoding14:26
abhishekkAck, so user specified size we will rely on and then reject the whole upload if size mis-matches?14:27
dansmithit's not just the reject that matters, although we should do that too,14:27
dansmithit's that glance needs to know the size before the transfer starts so we can avoid resizing the backend every time we read a chunk14:27
dansmithto be clear, I'm referring to this: https://review.opendev.org/c/openstack/glance-specs/+/94742314:28
abhishekkSorry If I am missing something, last time I was under impression that we will know the filename and we can calculate the size based on that14:29
dansmiththe original proposal was to add a "bypass chunked transfer" flag, which requires the user to know why that matters, when to use it, and why it's linked to the backend write behavior, which is wrong IMHO14:29
dansmithabhishekk: not always, if we pass you a generator you can't know (but nova knows)14:30
abhishekkack14:30
dansmiththe discussion has led towards more of a hack (IMHO) which is to bypass chunked encoding if we pass a size, which is just more obscure but the same problem, IMHO14:30
dansmithand it means the nova->glanceclient->glance->backend data pipeline we've been using for a long time will change subtly because we start passing the image size,14:31
dansmithonly because glance requires it in content-length only14:31
dansmithso Im just trying to argue against changing all that data pipeline stuff, and linking the passing of image size to the fundamental way that all works, just because it's the "easiest" solution14:32
abhishekkWe need to worry about traditional image upload scenario only I guess14:33
dansmithbasically, if we do the "easy" solution it's only a patch to glanceclient, which can be backported easily (downstream) but has big ramifications to what's actually happening14:33
dansmithand I think that's a mistake14:33
dansmithabhishekk: probably.. I dunno how the plumbing works on import, but I suspect it has the size at that point, so everything is fine14:33
dansmithi.e. once it's in staging, we know the size14:34
abhishekkright, I am also assuming that we set size once image is staged14:34
abhishekkNeed to confirm though I saw resize calls in logs on import as well14:35
dansmithif you use web-download, then it would not know the size and you'd see resizes14:35
abhishekkfor web-download also we stage the image locally14:35
dansmithoh, I guess I forgot14:36
abhishekkyes we stage for all import operartions14:36
dansmithwell, that's a different problem then14:36
dansmithmaybe we set size during the import task flow then? if that's the case, then that's fixable internally fairly easily14:36
abhishekkagree14:37
dansmithbut still, focusing on the thing in the spec,14:37
abhishekkack, let me explain what I understand and see we are on right page14:37
abhishekk1. Introduce --size option on upload (use existing if it is present), then pass it to API14:38
abhishekk2. At API side if we don't have size continue the old way 14:38
abhishekk3. If we have size then compare it like hash at the end of upload and log warning and set correct size or reject the upload14:38
dansmithreject, but yes :)14:39
abhishekkHere at point 3, if user specified size as 38MB and actual size is 50MB then I guess it should fail for rbd backend as Initially we create volume of specified size right?14:40
dansmithyes14:40
abhishekkwhat will be the impact on other backends, specially swift, cinder and s3?14:40
abhishekkI guess cinder will also fail14:40
dansmithI think we can check the size in common code and make them all behave the same14:41
dansmithcan, and should14:41
dansmithso will you rewrite the spec to say the 1,2,3 above?14:42
abhishekkack14:42
abhishekkYes, I will rewrite the spec14:42
dansmithcool thanks14:43
abhishekkmention current discussion as proposed change and the alternative as bypassing chunk transfer?14:43
dansmithsure14:43
dansmithbut with the reasoning to reject the alternative as incorrectly linking weird glance behavior with the transfer mechanics of the client as considered harmful :D14:44
abhishekk:d14:44
abhishekkthank you, I will update the spec by tomorrow eod14:44
croelandtgood, anything else for today?14:45
dansmiththanks14:45
mhenhi! regarding the image encryption patchset ...14:45
mhenstill on it - need to look into the image import stuff a bit more to allow glance-direct and copy-image to be used on encrypted images, which the current state of the patchset does not allow but I agree would be useful14:45
abhishekkno, please look at scrubber patch14:45
mhenI'm currently involved in a project for the next few weeks that limits my time to work on this even more than usual unfortunately though :/14:45
abhishekkmhen: let me know if you need anything14:45
mhenthanks, will do14:46
croelandtyeah don't hesitate to ping us directly14:46
abhishekkthanks for the update, as promised during PTG I will or someone from team will look at tempest coverage for this14:46
croelandtAnything else?14:47
abhishekkdansmith: I guess we need to specs for this topic now since API side change is also involved :o14:48
abhishekkto --- two14:48
dansmithit's already a spec?14:48
dansmithor you mean instead of spec-lite?14:48
dansmithoh two specs.. do we?14:48
dansmithin nova, it'd be one, I'm fine with one for sure :)14:48
abhishekkfor glanceclient I can convert it to lite spec and main spec will be in glance14:48
abhishekkack, then lets go wit one spec only :D14:49
abhishekk@croelandt nothing else :D14:49
dansmithoh because there are separate dirs.. well, whatever, I think one should be plenty but I defer to croelandt I guess :)14:49
abhishekkI will move the spec to glance instead of client14:50
croelandtgood14:51
croelandtI guess we have no additional topics, so thanks everyone for joining!14:51
abhishekkthank you!!14:51
croelandt#endmeeting14:52
opendevmeetMeeting ended Thu Apr 24 14:52:13 2025 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)14:52
opendevmeetMinutes:        https://meetings.opendev.org/meetings/glance/2025/glance.2025-04-24-14.00.html14:52
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/glance/2025/glance.2025-04-24-14.00.txt14:52
opendevmeetLog:            https://meetings.opendev.org/meetings/glance/2025/glance.2025-04-24-14.00.log.html14:52

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