Thursday, 2023-01-12

*** soniya29 is now known as soniya29|afk07:16
*** blarnath is now known as d34dh0r5313:05
*** dasm|off is now known as dasm13:10
abhishekk#startmeeting glance14:00
opendevmeetMeeting started Thu Jan 12 14:00:05 2023 UTC and is due to finish in 60 minutes.  The chair is abhishekk. 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
abhishekk#topic roll call14:00
abhishekk#link https://etherpad.openstack.org/p/glance-team-meeting-agenda14:00
abhishekko/14:00
mrjoshi__o/14:00
abhishekkpdeore is not around due to some technical issues14:00
croelandto/14:01
jokke_o/14:01
abhishekklets wait couple of minutes 14:01
rosmaitao/14:01
abhishekkcool,lets start14:01
abhishekk#topic Updates14:02
abhishekkWe tagged M2 last week14:02
abhishekkand glance-store 4.2.0 is also released14:02
abhishekkWe postponed a spec freeze by couple of weeks due to holiday season, so new spec freeze will be next week14:03
abhishekkKindly have a look at important specs 14:03
abhishekkM3 is 5 weeks away14:03
abhishekkPeriodic jobs green except for Fips (as usual)14:03
abhishekkany questions?14:03
abhishekklets move to next one14:04
abhishekk#topic Critical: glanceclient gate has *2* blocker bugs14:04
abhishekkcroelandt, this is you, right?14:04
croelandtyes14:04
croelandtso basically, jokke and I squashed the changes14:04
croelandthttps://review.opendev.org/c/openstack/python-glanceclient/+/86986814:04
croelandtthis is needed to unblock the gate14:04
croelandtThere are *2* issues, not one :)14:04
jokke_We had a lengthy discussion about it in #os-g14:05
croelandtBecause of a bump in the Python version and the tox version14:05
abhishekkso this is the single patch which is required now14:05
croelandtI wonder if this is something that could have been caught14:05
croelandtabhishekk: yes14:05
jokke_yes, we need to have it in signle patch as both issues will independently block the gate ... just waiting for zuul14:05
croelandtZuul is running, so if 2 people could commit to taking a look in a couople of hours14:05
abhishekkI will go through channel logs to get more idea14:05
croelandtlike before EOD14:05
croelandtjokke_: ^14:05
croelandtrosmaita: ^14:05
abhishekkI will have a look as well14:05
rosmaitai can watch that14:06
abhishekkgreat14:06
croelandtrosmaita: thanks for reviewing that last year btw :)14:06
rosmaitai should've ninja-approved it, would have prevented some unpleasantness14:06
abhishekka year old blocking patch :D14:06
abhishekkmoving ahead14:07
abhishekk#topic Specs14:07
abhishekkRepropose new location APIs spec14:07
abhishekk#link https://review.opendev.org/c/openstack/glance-specs/+/86320914:07
abhishekkwhoami-rajat, has updated the spec14:07
abhishekkanyways this has dependency on keystone as well14:07
abhishekkeven keystone spec is merged, patch is still wating for review14:08
whoami-rajathi14:08
abhishekkhello whoami-rajat 14:08
whoami-rajatin the last review, there was a proposal to consider import method for this implementation14:08
whoami-rajatwanted to discuss about that14:08
abhishekkI guess jokke_ and dansmith suggested that14:09
whoami-rajatyes14:09
* whoami-rajat looking for the comment14:09
jokke_so I don't think it's good idea at all to mix it with the import14:10
jokke_as there is no importing happening14:10
whoami-rajathttps://review.opendev.org/c/openstack/glance-specs/+/863209/4..7/specs/2023.1/approved/glance/new-location-info-apis.rst#b23614:10
jokke_I think I should have wrapped my response with <sarcasm></sarcasm>14:11
whoami-rajat:D14:11
jokke_And I still don't understand why it's depending on the service roles either14:11
whoami-rajatcreate i think is not dependent but the get location call is14:12
abhishekkyes14:12
whoami-rajatwe only want to allow fetching the location from a consumer service and not a user14:12
jokke_Ohh yeah there was that14:12
Ugglao/14:12
abhishekkcorrect, so whoami-rajat I guess you know now what to do, remove import related changes and re propose the spec\14:13
abhishekkUggla, hey, will get back to you once current discussion is over14:13
jokke_So unless we want to just push this down yet another cycle I don't think we should be too worried waiting for that before agreeing on the spec14:13
whoami-rajatok but do we want to allow end users to update the location for HTTP?14:14
whoami-rajati think that was the start of this discussion14:14
jokke_yes and all the adds should happen with the projects user token anyways14:14
abhishekkyes14:15
jokke_So we can have traces who did what for accountability and auditability14:15
whoami-rajatok, i will add a new command for that and remove the existing import part14:15
abhishekkack14:15
whoami-rajatthanks abhishekk and jokke_ 14:16
jokke_I don't mind if it stays there for completeness of discussion. It's only mentioned in alternative solutions, right?14:16
whoami-rajatno, it's in the end user impact14:16
jokke_ohh14:17
whoami-rajathttps://review.opendev.org/c/openstack/glance-specs/+/863209/4..7/specs/2023.1/approved/glance/new-location-info-apis.rst#28014:17
jokke_ok14:17
abhishekkthen there are some other specs as well, kindly have a look at those and give your responses14:17
jokke_missed that part ... I even read it couple of times through this week14:17
abhishekkaah14:17
whoami-rajateven in the proposed change section it's there, https://review.opendev.org/c/openstack/glance-specs/+/863209/4..7/specs/2023.1/approved/glance/new-location-info-apis.rst#12014:17
whoami-rajati can add it to alternatives if needed14:17
whoami-rajati.e. move the current sections to alternatives14:18
abhishekkack14:18
abhishekkmoving to Open discussions14:18
abhishekk#topic Open discussion14:19
jokke_whoami-rajat: if you feel like. I think it wouldn't hurt to keep that mentioned in the alternative solution section. That way we demonstrate that it was discussed and thought of14:19
croelandtwhoami-rajat released a patch to refactor the Cinder store14:19
croelandtit's pretty good, I encourage everyone to review it :)14:19
whoami-rajatjokke_, sure, will do, thanks14:19
abhishekkUggla, hey, go ahead if you want to discuss anything specific14:19
whoami-rajatcroelandt, thanks Cyril, i saw your comments and will address them soon14:19
UgglaYep thx, artom and I are working on nova14:20
artomo/14:20
UgglaWe got a bug from Lee, and I will copy paste what Artom wrapup last time:14:20
UgglaIn that BZ, Lee is saying that os_hash_(alog|value) should not be set for an image representing a volume snapshot, as no data actually resides in Glance14:20
UgglaNova's current hack is to upload an empty string as data, this causes os_hash_(alog|value) to be calculated14:20
UgglaWe've tried not uploading any image data at all, but then the image remains in `queued`14:20
UgglaSo we're trying to figure out how to activate an image out of `queued` and into `active` without uploading any data14:20
UgglaAh, based on https://docs.openstack.org/glance/latest/user/statuses.html, looks like size has to be 0?14:20
UgglaLee was saying something else in the BZ:14:21
Uggla"When creating an ephemeral snapshot that uses the underlying direct snapshot mechanism in Nova imageCreate doesn't do this, instead creating an image initially with an unset size [4][5] that results in nothing being created in Glance's backend. As we don't upload any further data to the image in this case [6] the hash properties are not recalculated and left empty."14:21
UgglaBut I guess size gets set to 0 eventually in that code path? We just haven't found where yet14:21
abhishekkafaik, it is not possible to have image with no data 14:22
abhishekkjokke_, rosmaita am I right?14:22
jokke_well if you upload zero size blop of data, it will be seen by gapi and set to 014:22
artomWill it try to calculate os_hash_(alog|value) on that empty data?14:23
jokke_abhishekk: correct. Glance does not have concept for active image without data. There is no benefit for it. Why is Nova doing this in the first place?14:23
jokke_artom: sure does14:24
artomLee was saying that it shouldn't?14:24
artomjokke_, so, as far as I can tell (and storage is *not* my area of expertise), for volume snapshot where the backend does the snapshotting, no actual data lives in Glance14:24
artomIt's a "pointer" for lack of a better term14:24
rosmaitaprobably for the nova/glance shared ceph backend?14:25
jokke_artom: I'm not sure how hashlib behaves if you pass it just 0 length data on the call, but glance should populate the algo and hash once the upload is done14:25
artomUggla, can you paste the BZ here for full context?14:25
Ugglayep give a sec14:26
jokke_rosmaita: for that there is snapshot in ceph that gets put into location and that activates the image14:26
abhishekkcorrect14:26
Ugglahttps://bugzilla.redhat.com/show_bug.cgi?id=201177114:26
artom"'<jokke_> rosmaita: for that there is snapshot in ceph that gets put into location and that activates the image"14:26
artomOK, I think ^^^ is what we want14:26
artomIs that a Glance API call that Nova can do?14:26
jokke_but if nova is snapshotting something which data is not accessible via Glance, nova should not use Glance for trashcan-as-service generic database to track it14:27
artom*snerk*14:27
artomI think it's the user requesting the snapshot, so presumably they want to then do stuff with it later14:27
artomHence the Glance image creation14:27
jokke_artom: if you look how it's done with ceph, that's the mechanism. But gapi will not take the location in unless there is valid store configured for it14:28
artomjokke_, ah, so that'll only work if Nova and Glance have the same Ceph backend configured?14:29
abhishekkyes14:29
jokke_artom: the point is, if user wants a snapshot image, Nova should either provide valid location (like with ceph) or upload the data so that valid image can be activated14:29
artomjokke_, so I think what Nova is currently doing is an ugly hack wherein it uploads an empty string as the data14:30
jokke_artom: yeah, which creates image, sure but it cannot be used anyways14:30
artomFor the first case, where Nova should actually be providing the location... which I guess it might be doing anyways? I dunno, that code is a mess, and only Lee understood it14:30
abhishekkfor the first case you mean nova and glance using ceph?14:32
artomI... guess? I don't know yet14:32
artomBut at least I understand what Glance expects14:32
* croelandt has another meeting14:32
jokke_artom: looking the bug, Nova seems to get the correct location, no prob, but then do this mess anyways just because it was volume backed instance instead of ephemeral14:32
abhishekkyes for nova and glance using ceph it does not calculates hash and just nova calls location add for glance14:33
artomjokke_, so you're saying just stop doing this empty string mess?14:33
artomAnd as long as the location is provided by Nova, Glance will he happy?14:33
jokke_artom: so as long as the case is ceph all the way through, you should be able to throw out all that "" upload crap and use the same logic as is used with ephemeral to provide the location uri to glance and get actual accessible image out of it14:33
artomAck14:34
artomHow is the location URI provided? Via PUT /images?14:34
jokke_artom: currently it's update call, so yeah I think it's PUT to /v2/images/<ID> and it is JSON patch for the location14:35
artomAck14:35
artomUggla, ^^ you followed that?14:35
Ugglaartom, to be honest not really :)14:35
jokke_But the ephemeral snapshotting code in nova should be pretty easy to grasp, I've looked at it quite a few times. IIRC it doesn't contain any crazy black magic14:36
artomjokke_, nothing storage-related in Nova is easy to grasp14:36
abhishekkhttps://github.com/openstack/nova/blob/master/nova/image/glance.py#L558 ?14:36
artomOr maybe I'm just dumb14:36
artomAnd I think this is specifically the volume backed case14:37
artomThough... come to think of it, if the ephemeral backend is also Ceph, and the same Ceph is configured in Glance... there's no reason not to use the same mechanism of direct snapshotting14:37
artom... right?14:38
jokke_I wouldn't be surprised if the volume backed case is totally different logic. What I'm saying is, look how it's done in the ceph ephemeral and simplify the volume part :D14:38
jokke_artom: exactly14:38
abhishekkartom, if you will need any further help ping us on openstack-glance irc channel14:40
artomabhishekk, will do, I appreciate it14:41
jokke_That in theory 'though. I'm sure you'll find some Nova core who thinks that the complexity that only one person can understand is absolutely critical and mut be maintained :P14:41
jokke_must14:41
artomNah, those cores have all left ;)14:41
jokke_And you might find more than one of those cores in Nova side of the fence :P14:42
artomWe only have reasonable people now ;)14:42
jokke_oh, good to hear14:42
jokke_then you should have no problem fixing that :D14:42
artomFamous last words14:42
abhishekkI don't have anything specific to discuss for today!14:42
artomOK, we'll go off and look at the Nova code again, and probably come back even more confused14:42
jokke_point on the _you_ and _should_ :P14:43
artomAppreciated folks, thank you!14:43
abhishekkthanks for joining us14:43
jokke_good luck!14:43
Ugglathank you14:43
abhishekkthanks Uggla!14:43
abhishekkglance team, kindly have a look at the specs in the agenda as next week is a spec freeze14:43
abhishekklets close unless you guys have anything further to add/discuss14:44
abhishekkI will take that as no14:45
abhishekkthank you all14:45
jokke_thanks all14:45
abhishekkhave a nice week and weekend ahead!14:45
abhishekk#endmeeting14:45
opendevmeetMeeting ended Thu Jan 12 14:45:41 2023 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)14:45
opendevmeetMinutes:        https://meetings.opendev.org/meetings/glance/2023/glance.2023-01-12-14.00.html14:45
opendevmeetMinutes (text): https://meetings.opendev.org/meetings/glance/2023/glance.2023-01-12-14.00.txt14:45
opendevmeetLog:            https://meetings.opendev.org/meetings/glance/2023/glance.2023-01-12-14.00.log.html14:45
*** dasm is now known as dasm|off22:31

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