14:33:32 <daviddavis> #startmeeting Pulp Triage 2020-06-26
14:33:32 <daviddavis> !start
14:33:32 <pulpbot> Meeting started Fri Jun 26 14:33:32 2020 UTC.  The chair is daviddavis. Information about MeetBot at http://wiki.debian.org/MeetBot.
14:33:32 <pulpbot> Useful Commands: #action #agreed #help #info #idea #link #topic.
14:33:32 <pulpbot> The meeting name has been set to 'pulp_triage_2020-06-26'
14:33:32 <daviddavis> #info daviddavis has joined triage
14:33:41 <dkliban> #info dkliban has joined triage
14:33:41 <dkliban> !here
14:33:42 <ggainey> #info ggainey has joined triage
14:33:42 <ggainey> !here
14:33:42 <ppicka> #info ppicka has joined triage
14:33:42 <ppicka> !here
14:33:47 <x9c4> #info x9c4 has joined triage
14:33:47 <x9c4> !here
14:33:50 <daviddavis> !next
14:33:50 <daviddavis> #topic https://pulp.plan.io/issues/7047
14:33:57 <dkliban> hmm
14:33:58 <ttereshc> #info ttereshc has joined triage
14:33:58 <ttereshc> !here
14:33:59 <pulpbot> daviddavis: daviddavis has joined triage
14:34:00 <pulpbot> dkliban: dkliban has joined triage
14:34:01 <pulpbot> ggainey: ggainey has joined triage
14:34:02 <pulpbot> ppicka: ppicka has joined triage
14:34:03 <daviddavis> lol
14:34:04 <pulpbot> x9c4: x9c4 has joined triage
14:34:05 <pulpbot> daviddavis: 4 issues left to triage: 7047, 7045, 7019, 7003
14:34:06 <pulpbot> RM 7047 - hyu - NEW - Checksum type "sha256" is not available for all units in the repository. Make sure those units have been downloaded
14:34:07 <pulpbot> https://pulp.plan.io/issues/7047
14:34:08 <ttereshc> catching up
14:34:09 <pulpbot> ttereshc: ttereshc has joined triage
14:34:15 <daviddavis> move to rpm?
14:34:24 <ttereshc> yes
14:34:25 <daviddavis> #idea Proposed for #7047: move to rpm
14:34:25 <daviddavis> !propose other move to rpm
14:34:25 <pulpbot> daviddavis: Proposed for #7047: move to rpm
14:34:26 <dkliban> yes
14:34:34 <daviddavis> #agreed move to rpm
14:34:34 <daviddavis> !accept
14:34:34 <pulpbot> daviddavis: Current proposal accepted: move to rpm
14:34:35 <daviddavis> #topic https://pulp.plan.io/issues/7045
14:34:35 <pulpbot> daviddavis: 3 issues left to triage: 7045, 7019, 7003
14:34:36 <pulpbot> RM 7045 - bmbouter - NEW - Plugin Writer API Reference is out of date
14:34:37 <pulpbot> https://pulp.plan.io/issues/7045
14:34:58 <dkliban> !propose accept and add to sprint?
14:34:58 <pulpbot> dkliban: propose accept Propose accepting the current issue in its current state.
14:35:10 <dkliban> oops
14:35:19 <dkliban> do we want to add to sprint?
14:35:27 <ttereshc> heh
14:35:49 <ttereshc> we can, before miniteam decide which to drop
14:35:56 <ttereshc> *miniteams
14:36:01 <dkliban> ok!
14:36:10 <dkliban> #idea Proposed for #7045: accept and add to sprint
14:36:10 <dkliban> !propose other accept and add to sprint
14:36:10 <pulpbot> dkliban: Proposed for #7045: accept and add to sprint
14:36:15 <daviddavis> +1
14:36:20 <ttereshc> +1
14:36:32 <daviddavis> #agreed accept and add to sprint
14:36:32 <daviddavis> !accept
14:36:32 <pulpbot> daviddavis: Current proposal accepted: accept and add to sprint
14:36:33 <pulpbot> daviddavis: An error has occurred and has been logged. Please contact this bot's administrator for more information.
14:36:43 <daviddavis> :o
14:36:50 <daviddavis> !next
14:36:50 <daviddavis> #topic https://pulp.plan.io/issues/7019
14:36:51 <pulpbot> daviddavis: 2 issues left to triage: 7019, 7003
14:36:52 <pulpbot> RM 7019 - wibbit - NEW - Failure Syncing Against Remote Repository / Update docs
14:36:53 <pulpbot> https://pulp.plan.io/issues/7019
14:36:56 <bmbouter> #info bmbouter has joined triage
14:36:56 <bmbouter> !here
14:37:14 <ggainey> ah, that's the "call out utf8 as a db-req" issue
14:37:19 <dkliban> yep
14:37:23 <dkliban> dind't we triage this already?
14:37:24 <ttereshc> this should be a docs issue
14:37:32 <ttereshc> it was in rpm meeting
14:37:37 <dkliban> oh
14:37:38 <ppicka> yes we move it to pulp as docs
14:37:47 <daviddavis> accept and add docs tag?
14:37:48 <ttereshc> add docs tag
14:37:49 <bmbouter> +1
14:37:50 <dkliban> #idea Proposed for #7019: accept and add docs tag
14:37:50 <dkliban> !propose other accept and add docs tag
14:37:50 <pulpbot> dkliban: Proposed for #7019: accept and add docs tag
14:37:51 <ttereshc> +1
14:37:52 <ppicka> +1
14:37:54 <dalley> +1
14:37:57 <daviddavis> #agreed accept and add docs tag
14:37:57 <daviddavis> !accept
14:37:57 <pulpbot> daviddavis: Current proposal accepted: accept and add docs tag
14:37:57 <x9c4> +1
14:37:58 <daviddavis> #topic https://pulp.plan.io/issues/7003
14:37:58 <ggainey> +1
14:37:58 <pulpbot> daviddavis: 1 issues left to triage: 7003
14:37:59 <pulpbot> RM 7003 - dkliban@redhat.com - NEW - pulpcore-content allows for // in some parts of the URL but not others
14:38:00 <pulpbot> https://pulp.plan.io/issues/7003
14:38:14 <dkliban> i am going to add this item to open floor now
14:38:31 <daviddavis> it's our last issue so we can just discuss? or do you want to come back to it?
14:38:45 <dkliban> let's discuss
14:38:58 <dkliban> i would like the content app to treat all // as /
14:39:13 <daviddavis> that's fine with me. as long as we're consistent.
14:39:17 <ggainey> concur
14:39:21 <dkliban> bmbouter: ?
14:39:23 <x9c4> agree
14:39:44 <ttereshc> +1
14:39:50 <ggainey> is there a django-way to 'normalize' incoming uris?
14:39:56 <x9c4> can we filter incoming urls through some normalizer?
14:40:05 <bmbouter> yeah let's discuss
14:40:07 <ggainey> that could be applied at a gateway/gatekeeper point?
14:40:15 <ggainey> x9c4: yeah that :)
14:40:21 <x9c4> ggainey, you took the words right out of my keyboard.
14:40:24 <ggainey> hehehe
14:40:39 <dkliban> the content app is not a django app
14:40:42 <bmbouter> I think treating // as / is probably fine
14:40:49 <ggainey> dkliban: oh right
14:40:51 <bmbouter> I need a min or two more to think/test about it but at first take yes
14:41:07 <dkliban> however, we could use django facilities if needed
14:41:21 <x9c4> not requiring the trailing slash would also be nice.
14:41:40 <bmbouter> just doing some quick testing some of the big web services yield 404 when you replace / with //
14:42:03 <bmbouter> we can discuss at open floor more tho would probably be good rather than right now
14:42:15 <dkliban> some redirect you though
14:42:28 <dkliban> ok ... i'll add it to the end of the agenda
14:42:43 <ggainey> kk
14:42:56 <daviddavis> !next
14:42:57 <pulpbot> daviddavis: No issues to triage.
14:43:06 <daviddavis> Open floor!
14:43:20 <daviddavis> Topic: Should we stop automatically requesting QE to review PRs with changed tests?
14:43:40 <daviddavis> I think so, I can file an issue
14:43:40 <dkliban> yes
14:43:42 <bmbouter> +1
14:43:48 <ppicka> +1
14:43:51 <ggainey> yeah, concur
14:43:55 <x9c4> +1
14:44:10 <ttereshc> great, thanks
14:44:22 <daviddavis> Topic: When do we want to do the 3.5 release of pulpcore?
14:44:23 <ttereshc> I just noticed that they are pinged almost on every PR
14:44:28 <daviddavis> yea it's annoying
14:44:29 <ggainey> yupyup
14:44:32 <bmbouter> yup
14:45:04 <daviddavis> are we still doing time-based releases of pulp 3?
14:45:07 <ttereshc> 3.4 went out on June 2
14:45:16 <dkliban> i was hoping we could do a time based release
14:45:32 <dkliban> and that we could do a faster than normal 3.6 release
14:45:33 <ggainey> daviddavis: iirc the goal was once-a-month/every-6-weeks, with whatever was ready
14:45:33 <bmbouter> yes I think we should
14:45:49 <bmbouter> ggainey: I also remember roughly that
14:45:49 <ggainey> and I am good w/that, lots of good stuff happening
14:45:59 <daviddavis> +1
14:46:01 <dkliban> unless 3.5 will have the RBAC tech preview in this short time remaining
14:46:17 <bmbouter> our 3.4 release was May 27th
14:46:25 <bmbouter> so we're just at 1 month tomorrow
14:46:46 <daviddavis> who wants to release tomorrow?
14:46:48 <ggainey> heh
14:46:54 <daviddavis> jk
14:46:57 <dkliban> daviddavis: i was thinking next week
14:47:05 <dkliban> on tuesday or  wednesday
14:47:15 <bmbouter> I'm ok w/ that I can have the tech preview of rbac in by then
14:47:16 <daviddavis> that's cool, the only thing I worry about is the holiday
14:47:19 <bmbouter> oh eah
14:47:25 <ggainey> if we can't do it tues/weds, we should wait - lots of folk out fri/mon
14:47:31 <daviddavis> yea
14:47:31 <dkliban> yep
14:47:57 <ggainey> the other thing about releasing, is y'all have done so much good work on the release process it seems to become less and less painful every release
14:48:11 <daviddavis> it's true but it's still quite painful
14:48:12 <ggainey> so releasing-often is good because it continues to squeeze friction out of the process
14:48:19 <daviddavis> that's true
14:48:29 <dkliban> i would like to send an email to pulp-dev today announcing that we want to do a release of pulpcore on tuesday
14:48:40 <dkliban> if we need to push it to wedensday we should announce that on tuesday
14:48:54 <daviddavis> we probably won't have any more release automation by then
14:48:56 <daviddavis> just fyi
14:49:02 <ggainey> heh
14:49:03 <dkliban> that's ok
14:49:06 <daviddavis> ok
14:49:16 <daviddavis> july 7th and we could get some more release automation done
14:49:29 <bmbouter> +1 july 7th
14:49:35 <ggainey> hm, that's a good point
14:49:38 <bmbouter> we don't have a strong time based driver for next week
14:49:44 <daviddavis> I should have kickstarts merged by then too
14:49:52 <daviddavis> which has some core changes
14:49:53 <ggainey> also, that would be start-of-week, instead of trying to squeeze it in before holidays
14:49:57 <bmbouter> yup
14:49:58 <ttereshc> +1 to test new release automation on july 7th
14:50:03 <bmbouter> also plugin releases, there will be many
14:50:14 <ggainey> yeah, +1 to the 7th
14:50:28 <ttereshc> ipanova and I are out that week though, speaking about plugin releases
14:50:33 <ggainey> also, ttereshc will be out that week, so she knows she won't get stuck w/it :)
14:50:36 <ggainey> heh, gmta
14:51:01 <daviddavis> that shouldn't be a big deal
14:51:06 <dkliban> +1 to july 7th
14:51:15 <ttereshc> not a big deal, just fyi
14:51:44 <daviddavis> cool, anything else to discuss for the 3.5 release before we move on to our last topic?
14:51:48 <ggainey> so - send an announcement today, for the 7th?
14:51:51 <dkliban> ttereshc: i can do the RPM release
14:52:00 <daviddavis> dkliban: you do the container and I'll handle rpm
14:52:06 <dkliban> sounds good
14:52:25 <ttereshc> sweeet
14:52:26 <ggainey> can I watch one/both of you go through this on the day?
14:52:32 <dkliban> ggainey: yes
14:52:35 <ggainey> awesome
14:52:39 <daviddavis> I'll be streaming it on twitch
14:52:41 <daviddavis> jk
14:52:44 <ggainey> ha! perfect!
14:52:46 <ttereshc> ggainey, you can actually do it instead of watching :P just saying
14:52:46 <dkliban> maybe you should
14:52:48 <bmbouter> oh I hoped you were serious
14:52:52 <daviddavis> lol
14:53:06 <dkliban> i'll get my green screen ready for that
14:53:11 <dkliban> so i can stream myself doing it
14:53:18 <daviddavis> :)
14:53:22 <ggainey> ttereshc: dkliban: daviddavis: hm, not a bad idea, we can talk about who gets to/has to push the actual buttons closer to the day
14:53:31 <daviddavis> +1
14:53:51 <dkliban> alright ... i'll send out the announcement to pulp-dev
14:53:55 <ggainey> coolio
14:53:55 <daviddavis> great thanks dkliban
14:54:01 <ttereshc> thanks!
14:54:21 <daviddavis> Topic: Content app treatment of "//" in URLs - https://pulp.plan.io/issues/7003
14:55:15 <bmbouter> so what is driving this is my question aka what forms urls like /pulp/content/centos8/AppStream//repodata/repomd.xml returns 404
14:55:15 <daviddavis> bmbouter dkliban ^
14:55:18 <dkliban> github.org lets you put // in the URl and it responds with content
14:55:26 <bmbouter> yup and google does not
14:55:36 <dkliban> youtube.com redirects you to the /
14:55:43 <bmbouter> drive does not
14:55:55 <ggainey> so, amusingly, the w3.org page for the http-protocol-rfc allows // : https://www.w3.org/Protocols/rfc2616//rfc2616.html :)
14:55:57 <bmbouter> let's step back from the precident game for a second
14:56:12 <ggainey> I'm trying to see if the RFC makes a declarative stmt
14:56:21 <bmbouter> ggainey: does the BNF support it?
14:56:28 <ggainey> s'what I'm looking into
14:56:34 <bmbouter> excellentay
14:57:04 <x9c4> If we allow for "//" its easier to create api urls in shell-scripts without too much thinking.
14:57:08 <bmbouter> while that's being looked at can we chat for a second about the use case forming these urls? like for example is anaconda forming it, is our redirect code forming it?
14:57:31 <dkliban> yeah ... anaconda is forming these URLs sometimes
14:57:52 <daviddavis> also, me when I mistype urls
14:57:57 <dkliban> lol
14:58:17 <bmbouter> I agree it's convenient
14:58:26 <bmbouter> but is it right per the standards
14:58:31 <ttereshc> I think it might happen in our code during sync, in rpm
14:58:51 <dkliban> when the user specifies the URL for a remote with a / on the end
14:58:55 <dkliban> or sometimes now
14:58:58 <dkliban> not
14:58:59 <ttereshc> ah we are talking about content-app
14:59:11 <dkliban> ttereshc: yes, but what if pulp is syncing from pulp
14:59:21 <dkliban> it will be talking to the content app
14:59:29 <ttereshc> hmm, true :)
14:59:51 <x9c4> typical smart proxy scenario ^
14:59:58 <dkliban> yep
15:00:01 <ttereshc> yup
15:01:33 <dkliban> so right now this would work fine
15:01:49 <bmbouter> the internet seems pretty conflicted on this
15:01:50 <ggainey> ok, so the standard (https://www.ietf.org/rfc/rfc2396.txt) says "The path may consist of a sequence of path segments separated by a single slash "/" character." - HOWEVER - the internet in general, and HTTP in particualr, has always been "be permissive in what you accept and rigourous in what you send"
15:02:09 <dkliban> as you can seee in the ticket i filed, if you add an extra / after the base_path, the current behavior of the content-app gives a 200 repsonse
15:02:37 <ggainey> aceepting // in abs_paths isn't 'standard', but it does recognize that HTTP URLs come from people, who are Terrible At This, and can be easily normalized
15:02:58 <daviddavis> I feel personally attacked
15:02:59 <bmbouter> dkliban: so your observation is that we're inconsistent not that we don't already support //
15:03:15 <dkliban> bmbouter: yes, exactly
15:03:27 <dkliban> and i want consistency
15:03:43 <dkliban> one way or another
15:03:44 <ggainey> yeah, that's the bigger thing to me as well, honestly
15:03:45 <daviddavis> the only question is which way
15:03:50 <ggainey> whatever we do, do that One Thing
15:03:56 <dkliban> yep
15:04:20 <daviddavis> is one way easier than the other?
15:04:22 <bmbouter> so the thing is that is going to be tough to achieve
15:04:29 <ggainey> my personal pref would be "clean up incoming URLs, always" - but the 'always' is the important thing
15:04:56 <bmbouter> plugins ship their own urls for both the content app and django
15:04:57 <x9c4> i agree
15:05:22 <bmbouter> and the regex for django for example, is not going to match // as / without care taken everywhere
15:05:36 <dkliban> yep
15:05:42 <bmbouter> I agree w/ the One Way btw, I'm just pointing out the difficulty of getting there
15:05:57 <x9c4> Maybe that would result in a urlrewrite in apache / nginx ?
15:06:06 <ggainey> is there a pre-django Thing we could do? so that by the time django sees the abs_path, it's already been 'cleaned'?
15:06:06 <bmbouter> I think that is the only actual way
15:06:14 <bmbouter> nginx and apache could handle this
15:06:18 <ggainey> ok, I think we're all on the same page here
15:06:25 <dkliban> yep
15:06:36 <dkliban> i was also thinking we would use nginx/apache to solve the problem
15:06:42 <bmbouter> something like this https://www.mydigitallife.net/redirect-or-rewrite-to-remove-double-or-multiple-slashes-in-url/
15:06:51 <dkliban> ype
15:07:02 <x9c4> This means in pulplift dev we would not solve it.
15:07:03 <dkliban> and this would be in our documentation and in the installer
15:07:13 <bmbouter> the installer itself would be solving it
15:07:28 <bmbouter> because it carries the nginx and apche reverse proxy configs
15:07:33 <ggainey> ah
15:07:33 <dkliban> yep
15:08:04 <daviddavis> so update the issue saying we should update the installer and docs to have nginx/apache handle double slashes?
15:08:13 <x9c4> and the dev installation has no reverse proxy.
15:08:13 <ggainey> yeah, I like that
15:08:21 <ggainey> (re update-issue)
15:08:21 <bmbouter> x9c4: it does
15:08:26 <bmbouter> all installs do
15:08:28 <daviddavis> yea I use it
15:08:32 <x9c4> then i have a very old one...
15:08:33 <bmbouter> not everyone chooses to use it
15:08:44 <bmbouter> it would have to be mid-2019 old
15:09:03 <daviddavis> if I am hitting pulp on port 80, that's through nginx right
15:09:08 <bmbouter> yes
15:09:16 <bmbouter> and soon port 443... :)
15:09:20 <daviddavis> :O
15:09:22 <x9c4> that only means i need to revisit it.
15:09:39 <bmbouter> x9c4: but you use pulplift right?
15:09:44 <x9c4> yes.
15:09:54 <bmbouter> then you're receiving it
15:10:09 <daviddavis> do we accept this issue or accept + add it to the sprint?
15:10:15 <x9c4> +1
15:10:18 <dkliban> +!
15:10:25 <bmbouter> I want to ask: so we're ok w/ applications never being able to match // ?
15:10:31 <bmbouter> because with this rewrite rule they never could
15:10:39 <dkliban> yes
15:10:41 <ggainey> bmbouter: you mean deliberately?
15:10:43 <ggainey> yes
15:10:43 <bmbouter> I can't think of a reason why but just asking
15:10:46 <bmbouter> yes deliberately
15:10:58 <dkliban> bmbouter: yes, because the spec says that they shouldn't
15:11:01 <ggainey> that would be *deliberately* violating the HTTP spec, which would be Bad
15:11:05 <ggainey> zacly
15:11:09 <x9c4> Having a need for this sounds like very bad design.
15:11:11 <bmbouter> my reading claims it's valid
15:11:14 <bmbouter> in the spec
15:11:17 <dkliban> oh
15:11:25 <ggainey> The path may consist of a sequence of path segments separated by a
15:11:25 <ggainey> single slash "/" character.
15:11:39 <ggainey> straight from the 'path component' section of https://www.ietf.org/rfc/rfc2396.txt
15:11:44 <x9c4> can a path segment be ""?
15:12:21 <bmbouter> it can be is what I'm reading
15:12:38 <dkliban> interesting
15:12:38 <bmbouter> but I don't think that's a good URL design regardless
15:13:01 <bmbouter> and I am in favor of the redirect // to / by default globally in nginx and apache
15:13:05 <bmbouter> but to be clear it's a valid url
15:13:18 <bmbouter> that is distince from it's single slash counterpart
15:13:19 <dkliban> yep
15:13:26 <bmbouter> distinct
15:14:05 <dkliban> we will need to add docs around base_paths not being able to contain //
15:14:18 <bmbouter> oh yeah and a validation there
15:14:24 <dkliban> yes
15:14:25 <ggainey> I'm not sure I agree it's 'legal' by the BNF, but will cheerfully admit it's been a Really Long Time since I could relilably read BNF :)
15:14:26 <bmbouter> and likely a migration rule
15:14:45 <dkliban> bmbouter: a migration rule? docs?
15:15:33 <bmbouter> sorry I'm not being clear, I meant a migration to rewrite base_paths with // to /
15:15:53 <bmbouter> if we make this change and don't provide that migration any (rare of course) places where // is in a base path would start to 404
15:16:12 <bmbouter> this is a very rare case
15:16:30 <bmbouter> I'm ok just doc-ing it because we'd have to ship a migration for every plugin it just doesn't seem worth it
15:16:44 <dkliban> yep
15:16:55 <dkliban> i don't want to ship a migration for every plugin
15:16:55 <ggainey> yeah, that sounds good to me
15:16:59 <bmbouter> me neither
15:17:11 <dkliban> cool. i'll summarize all this on the issue
15:17:25 <ggainey> (also, I think bmbouter is correct, I missed a '*' in the BNF that implies a path-segment could be empty)
15:17:32 <ggainey> coolio
15:17:35 <ggainey> +1 all around
15:17:52 <bmbouter> ggainey: BNF is confusing
15:17:55 <bmbouter> !friday
15:17:55 <pulpbot> ♪ It's Friday, Friday, gotta get down on Friday ♪
15:18:07 <ttereshc> :)
15:18:08 <bmbouter> dkliban: will this beocme an installer issue?
15:18:12 <dkliban> i rely on you all to read it and provide cliff notes for me
15:18:16 <ggainey> bmbouter: I used to think in this stuff when I was doin compilers for a living - but, it has been A Hot Minute, as You Kids say these days :)
15:18:19 <bmbouter> dkliban: I can re-read if you send it to me
15:18:41 <dkliban> bmbouter: yes, i can also create a separate docs isssue
15:18:59 <bmbouter> +1
15:19:03 <bmbouter> subtasks?
15:19:05 <dkliban> yes
15:19:13 <dkliban> all that
15:19:32 <bmbouter> sweet, ty
15:19:38 <daviddavis> ok, anything else for open floor?
15:20:10 <daviddavis> last calls
15:20:12 <daviddavis> call
15:20:21 <daviddavis> !friday
15:20:21 <pulpbot> ♪ It's Friday, Friday, gotta get down on Friday ♪
15:20:29 <daviddavis> #endmeeting
15:20:29 <daviddavis> !end