Wednesday, 2022-10-19

*** ysandeep|out is now known as ysandeep|PTO00:05
opendevreviewIan Wienand proposed opendev/system-config master: infra-prod-bootstrap-bridge: fix typo in playbook name  https://review.opendev.org/c/opendev/system-config/+/86180500:11
opendevreviewMICHAEL KELLY proposed zuul/zuul-jobs master: helm: Add job for linting helm charts  https://review.opendev.org/c/zuul/zuul-jobs/+/86179900:28
*** rlandy is now known as rlandy|out00:32
opendevreviewMerged opendev/system-config master: infra-prod-bootstrap-bridge: fix typo in playbook name  https://review.opendev.org/c/opendev/system-config/+/86180500:34
opendevreviewMICHAEL KELLY proposed zuul/zuul-jobs master: helm: Add job for linting helm charts  https://review.opendev.org/c/zuul/zuul-jobs/+/86179900:34
opendevreviewMichael Kelly proposed zuul/zuul-jobs master: helm: Add job for linting helm charts  https://review.opendev.org/c/zuul/zuul-jobs/+/86179900:37
opendevreviewMichael Kelly proposed zuul/zuul-jobs master: helm: Add job for linting helm charts  https://review.opendev.org/c/zuul/zuul-jobs/+/86179902:22
opendevreviewMerged opendev/system-config master: bootstrap-bridge: fix redirect  https://review.opendev.org/c/opendev/system-config/+/86167302:24
opendevreviewIan Wienand proposed opendev/system-config master: bootstrap-bridge: fix production undefined variable  https://review.opendev.org/c/opendev/system-config/+/86181102:51
opendevreviewMichael Kelly proposed zuul/zuul-jobs master: helm: Add job for linting helm charts  https://review.opendev.org/c/zuul/zuul-jobs/+/86179903:10
opendevreviewMerged opendev/system-config master: bootstrap-bridge: fix production undefined variable  https://review.opendev.org/c/opendev/system-config/+/86181104:59
opendevreviewIan Wienand proposed opendev/system-config master: bootstrap-bridge: use hostname for play  https://review.opendev.org/c/opendev/system-config/+/86181805:35
*** pojadhav- is now known as pojadhav06:08
*** bhagyashris is now known as bhagyashris|ruck06:24
opendevreviewMerged opendev/system-config master: bootstrap-bridge: use hostname for play  https://review.opendev.org/c/opendev/system-config/+/86181806:27
opendevreviewIan Wienand proposed opendev/system-config master: bridge-bootstrap: pass hostname for testing  https://review.opendev.org/c/opendev/system-config/+/86182407:14
*** jpena|off is now known as jpena07:37
opendevreviewDmitriy Rabotyagov proposed opendev/system-config master: Fix linuxcontainers proxy URL  https://review.opendev.org/c/opendev/system-config/+/86182707:41
*** rlandy|out is now known as rlandy10:31
*** frenzy_friday is now known as frenzyfriday|rover12:52
*** dasm|off is now known as dasm13:55
opendevreviewFelipe Reyes proposed openstack/project-config master: Create 'Backport-Candidate' for Charms repos  https://review.opendev.org/c/openstack/project-config/+/86189214:29
*** ykarel is now known as ykarel|afk15:27
opendevreviewDavid Wilde proposed opendev/irc-meetings master: Change chair contact information for keystone  https://review.opendev.org/c/opendev/irc-meetings/+/86189415:28
opendevreviewDavid Wilde proposed opendev/irc-meetings master: Change chair contact information for keystone  https://review.opendev.org/c/opendev/irc-meetings/+/86189415:29
*** dviroel is now known as dviroel|lunch15:46
*** ykarel|afk is now known as ykarel15:48
clarkbfungi: I had your openstack security ptg meeting on in the background and meetpad seemed to do well16:02
clarkbI've since managed to track this specific pip caching issue down to 22.2.2 hashing a cache dir that includes the sdist sha256 sum in the input to the hashed cache dir path but 22.3 is not16:02
fungiyes, no complaints other than one attendee noted the shared document didn't open automatically for them and they had to open it from the ellipsis menu16:03
clarkbwhich explains why it doesn't work across pip versions (I don't understand the underlying reason for the different hash inputs yet). However, it still doesn't fully explain why my fix didn't fix it16:03
clarkbits possible my fix isn't leading to a consistent version of pip as I thought I guess.16:03
clarkbupstream has said use `pip wheel` I want to say we didn't do that because it doens't actually get all your deps but may be that is a bad assumption and we should just switch to pip wheel16:04
clarkbhowever, as a pip user I'm still a bit annoyed that every time I upgrade pip I might end up with a stale useless pip wheel cache16:04
clarkbI think there may still be a bug here despite upstreams assertion the cache isn't portable16:05
corvusclarkb: wasn't one of your attempts to use the same version of pip on both sides?16:10
clarkbcorvus: yes, either I'm failing to do that properly in the docker images (one of the other things I need to look at is improving logging of that info in the image builds) or we're able to trigger a similar mismatch of wheel cache dirs across the same version of pip as well16:15
clarkbI was hoping that understanding the delta between 22.2.2 nd 22.3 in calculating the wheel cache dir hash would make it easier to evaluate that in the docker image builds16:16
corvusyeah.  a cache that doesn't work on the same host with the same versions isn't much of a cache.16:17
fungiokay, puc is working again for me now16:21
clarkball this started this mroning when I discovered the `pip cache` command which under 22.3 was able to list and happily show you a valid wheel for netifaces that was built with 22.2.2. This made me fairl certain the issue isn't a format change or some incompatibility. ANd sure enough through some printdebugging its calculating hash paths different acrsso the versions. I think I would16:21
clarkbbe ok with "the cache isn't valid because we had to change formats" but "the cache isn't valid bceause we lost your data due to hash change" feels more buggy16:21
clarkbfungi: puc?16:21
fungipackages.ubuntu.com16:21
fungii was trying to search it for the python3.11 rc, but it's only showing it in kinetic. likely it doesn't index -proposed-updates, only -updates16:22
*** dviroel|lunch is now known as dviroel16:28
*** jpena is now known as jpena|off16:45
clarkbI suspect bad03ef931d9b3ff4f9e75f35f9c41f45839e2a1 broke this16:48
clarkbyup I'm like 98% sure now. The issue is that Link() is instantiated with hashes passed in but not link_hash it appears16:53
clarkbin 22.2.2 it look at Link._hashes set from the hashes input but in 22.3 it does not16:53
clarkbI don't know their hash checking mechanism well enough but it is possible this could lead to not properly checking hashes of downloaded files?16:54
fungithat seems possible, at least16:57
corvus"bad03..." it's RIGHT THERE in the hash!16:59
fungideadc0d317:00
corvusit's like the git equivalent of being rfc3514 compliant17:00
clarkbso basically pip creates these internal models of Links to packages and it builds them using Link.from_json(). That is called against simple api json results for a package. This returns hashes data for each package version. These are recorded but then subsequently ignored. I'm reasonably confident this is a real bug now17:02
fungithe ietf just doesn't get into april fool's jokes like it used to17:02
clarkband understanding that, I'm less confident that my version stuff in he docker images is doing what I expect since this seems to be an actual bug and not a behavior thing?17:03
corvusclarkb: what "version stuff"?17:04
clarkbcorvus: removing the -U pip to ensure that we get a consistent version of pip17:07
clarkbcorvus: the testing we've got failed both for the uwsgi image and nodepool with the same error. In my debugging of this issue I'm fairly certain I understand why 22.2.2 and 22.3 don't share cache values. That implies to me that we've still got a pip version mismatch in our docker imags17:08
opendevreviewTony Breeds proposed zuul/zuul-jobs master: [docs][trivial] Remove redundant colon :  https://review.opendev.org/c/zuul/zuul-jobs/+/86190917:14
clarkbI've updated the github issue for the pip thing. I'm going to take a break, but afterwards my next step is adding mroe debugging to our image builds to cross check if we are mixing pip versions17:44
opendevreviewClark Boylan proposed opendev/system-config master: Stop updating pip in our docker assemble script  https://review.opendev.org/c/opendev/system-config/+/86180018:14
opendevreviewClark Boylan proposed opendev/system-config master: Record pip version in our python image builds  https://review.opendev.org/c/opendev/system-config/+/86191418:14
clarkbstarting there just collecting data on pip versions18:14
corvusi wonder how silly it would be to attach all of that as image metadata18:16
clarkbcorvus: how does that work? But ya having the python --version and pip --version info (and maybe setuptools and wheel and build too) is probably a good idea18:17
corvusclarkb: currently we stick some info in with cli args when building the image.  theoretically, i'd look into trying to exfiltrate the info from the image maybe do a "docker run pip freeze"? and then adding it after the fact.  but that might make another layer.   so i don't know if it's worth it, etc.  mostly just brainstorming/spitballing atm.18:20
clarkback. I think it is a good idea if feasible18:20
clarkbthe thing that made our image build failures weird I noticed is that we update pip everywhere (I dind't realize that yesterday) which means in theory it should all be in sync18:25
clarkbits possible that the issue I found in pip creates problems with 22.3 and 22.3 rather than across versions, though I haven't been able to reproduce that locally yet.18:26
clarkbAnyway that extra logging should give us more details. And at some point I'll also try to look at using pip wheel instead of install with a wheel cache dir18:26
fungimaybe it's when pip calls the plaintext simple api vs the json simple api?18:27
fungithough i can't imagine what would be happening there to cause it to switch18:28
clarkboh ! I have a theory18:38
clarkbwe use a venv created by python3 -m venv in the assemble script. That will install the version of pip included with the python install but not the same as what we update to in the image for /usr/bin/pip ?18:39
clarkbits possible that the real fix here ws simply to rebuild all our imges so they end up on a consistent pip version (22.3.0)18:39
clarkbya I think that may be it18:39
clarkbbecause the assemble script runs when we make the new layer on top. I'll have to think this over if there is a good way to avoid this issue generally.18:40
clarkbif 861914 doesn't all fail I think that supports this theory18:40
clarkbthen what we do is land 861914 assuming we're happy with the extra logging. Not merge 861800. And then figure out how to make this more robust as a followup18:41
fungiyes, the venv module will use ensurepip's version18:41
clarkbya so we actually probably do need to always pip install -U, except we also need to do it in the base layer...18:42
clarkbI guess switching to pip wheel might make this problem largely go away assuming we can make that work18:42
fungiwe could take full advantage of pip 22.3's new features: splat its zipapp distribution somewhere, then call it and tell it to install packages in our venv rather than relying on in-venv pip18:42
clarkbya uwsgi builds are succeeding on 861914. infra-root I think landing 861914 willallow us to build docker images for projects that have wheel deps that need to be built18:42
clarkbfungi: ya that is probably worth investigating too18:43
fungitheir long-term goal is to no longer install pip in venvs unless the user expressly requests it18:44
clarkband maybe they will release 22.3.1 with my patch in it :)18:44
fungisince it can now be run independent of any particular python environment (the python interpreting pip doesn't have to to be the same python as the one for the environment being managed)18:45
clarkbhttps://zuul.opendev.org/t/openstack/build/31f91f8fda1e4a82917cbb125b8d012b/log/job-output.txt#2910-2914 seems to confirm my theory which further backups up that rebuilding the images is the fix19:21
clarkbbasically what that shows is when we upgrade pip in the venv we are upgrading from 22.2.2 to 22.3. That means when this first started we were using 22.3 to build the wheel cache then 22.2.2 to install it in install-from-bindep. Then when I stopped doing venv/bin/pip install -U pip what happened was the global pip was updated to 22.3 but we our venv pip was 22.2.2 and we had the same19:23
clarkbproblem in the other direction19:23
clarkbsimply rebuilding things and getting everything onto 22.3 fixes this19:23
clarkbfungi: frickler: any chance you have time to review https://review.opendev.org/c/opendev/system-config/+/861914 ? Once those image update and promote we can land updates to other images like nodepool19:23
corvusclarkb: more review is great (especially for visibility), but if ppl are busy today, i think we can land that with just our reviews. it's effectively a noop change.19:38
fungii just now approved 86191419:39
corvusfungi to the rescue :)19:41
opendevreviewMerged opendev/system-config master: Fix linuxcontainers proxy URL  https://review.opendev.org/c/opendev/system-config/+/86182720:47
*** dviroel is now known as dviroel|biab20:47
corvusclarkb: https://zuul.opendev.org/t/openstack/build/47b46b7beb9c4897aea5227065d49cf8 is worth a look20:54
clarkbdo we know why it seems to run install-from-bindep multiple times?20:58
clarkbI think this is related to the uwsgi build issues we looked at in the past. THe builder fails to build a wheel for uwsgi then builds uwsgi with setup.py allowing things to continue. Making assemble fail if no wheel is built would be a good improvement. Let me see if I can page the uwsgi build issues back in to see if we can improve that at all21:02
clarkbhowever I think it is safe to recheck (this is uwsgi specific) I will do so now21:02
corvusok cool; it was close enough to the error du jour that i wasn't sure21:04
clarkbI believe https://github.com/unbit/uwsgi/pull/2384 is the fix in uwsgi but uwsgi hasn't made a release more recently than that merge21:05
clarkbpip has changed how it reports the error though so its slightly different in the job log21:06
clarkbbut I'm like 99% sure its the same thing21:06
clarkbhttps://github.com/unbit/uwsgi/issues/2471 and https://github.com/unbit/uwsgi/issues/2398 are different similar issues too.21:12
opendevreviewMerged opendev/system-config master: bridge-bootstrap: pass hostname for testing  https://review.opendev.org/c/opendev/system-config/+/86182421:22
opendevreviewIan Wienand proposed zuul/zuul-jobs master: stage-output: use links in docs  https://review.opendev.org/c/zuul/zuul-jobs/+/86192421:22
opendevreviewClark Boylan proposed opendev/system-config master: Attempt to make uWsgi builds more reliable  https://review.opendev.org/c/opendev/system-config/+/86192521:24
clarkbthats uwsgi specific and attempts to apply some of the suggestions from that set of issues21:24
clarkbI would remove uwsgi except that I think paste uses it and maybe refstack?21:25
clarkbso it is actually used. Maybe another option is to install distro uwsgi instead?21:25
clarkb861925 might need to be squashed into 861914 which will make it difficult to tell if it actually helps or not. I hope we don't have to do that21:32
*** dviroel|biab is now known as dviroel21:59
opendevreviewMerged opendev/system-config master: Record pip version in our python image builds  https://review.opendev.org/c/opendev/system-config/+/86191422:16
clarkbwoot22:16
fungino small fear22:17
fungifeat too22:17
fungifear no smalls22:17
clarkbonce the promotions happen I can go recheck some changes22:17
*** dasm is now known as dasm|off22:19
opendevreviewIan Wienand proposed opendev/system-config master: Move clouds definitions into control-planes-clouds group  https://review.opendev.org/c/opendev/system-config/+/86113022:49
opendevreviewIan Wienand proposed opendev/system-config master: Run jobs with a jammy bridge.openstack.org  https://review.opendev.org/c/opendev/system-config/+/85779922:49
opendevreviewIan Wienand proposed opendev/system-config master: testinfra: Update selenium calls  https://review.opendev.org/c/opendev/system-config/+/85800322:49
opendevreviewIan Wienand proposed opendev/system-config master: Abstract name of bastion host for testing path  https://review.opendev.org/c/opendev/system-config/+/85847622:49
opendevreviewIan Wienand proposed opendev/system-config master: bootstrap-bridge: use abstracted hostname  https://review.opendev.org/c/opendev/system-config/+/86103122:49
opendevreviewIan Wienand proposed opendev/system-config master: Convert production playbooks to bastion host group  https://review.opendev.org/c/opendev/system-config/+/85848622:49
opendevreviewIan Wienand proposed opendev/system-config master: Run a base test against "old" bridge  https://review.opendev.org/c/opendev/system-config/+/86080222:49
opendevreviewIan Wienand proposed opendev/system-config master: Switch testing bridge name to bridge01.opendev.org  https://review.opendev.org/c/opendev/system-config/+/86111222:49
ianwinfra-root: if someone could double check 861130 that would be good.  i'm 99% sure it's a no-op moving the variables22:56
clarkbianw: yup agreed its a noop. But see note about the prod side of that data being elsewhere and maybe needing similar cleanup22:59
clarkb(I think as part of the bridge move we'll probably want to do a fair bit of cleanup of the prod hostvars and group vars just to limit the amount of confusion going forward on the new host and that can be done as a separate step)22:59
ianw++23:00
*** dviroel is now known as dviroel|out23:03
clarkbcool the cpu count flag setting on the uwsgi build does seem to limit it to two cpus. I'm sure this slows the jobs down but they still run in under 20 minutes23:53

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