| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [openstack/diskimage-builder] 995426: Replace uses of sudo -E with calls to sudo.ws https://review.opendev.org/c/openstack/diskimage-builder/+/995426 | 00:20 | |
| @mordred:waterwanders.com | fungi, Clark ^^ there's a quick stab | 00:21 |
|---|---|---|
| @abelur:matrix.org | fungi: Clark The Matrix spec lists a "meetbot replacement" as TBD. I've got a working POC - that reuses opendev/meetbot's engine unchanged (byte-identical minutes), thin matrix-nio transport, plus a gate that spins up a throwaway Synapse to replay a meeting. A few quick questions before I write anything up formally: | 02:39 |
| 1. Is there appetite to land a native Matrix meetbot now, or is it still parked behind statusbot/eavesdrop on the Matrix roadmap? | ||
| 2. Repo placement: would you prefer a Matrix transport inside opendev/meetbot (shared engine, one codebase) or a new repo like the Matrix gerritbot? | ||
| 3. Is there a preferred Matrix client library I should standardize on for consistency with gerritbot/the other bots, or is matrix-nio (Python) fine? | ||
| 4. For deployment - is running it as a container on eavesdrop02 via system-config (compose, like gerritbot) the right shape, or is there a different home you'd want? | ||
| 5. What's the homeserver client URL the bot should connect to? opendev.org delegates via .well-known, so I assume not opendev.org itself - matrix.opendev.org? something Element-hosted (EMS)? | ||
| 6. Is a @meetbot:opendev.org bot account acceptable, and who provisions it / generates the access token? | ||
| 7. Should the container build + publish via a Zuul image job (like gerritbot), and to which registry/name? | ||
| 8. For minutes: should output land on the existing meetings.opendev.org volume so Matrix meetings sit beside the IRC ones, same format/path? | ||
| @fungicide:matrix.org | Anil Belur: 1. now is probably fine, the rest of the bots are working with matrix now, i think | 12:20 |
| @fungicide:matrix.org | 2. is up for debate but there's a third option (my preference), to start with something lightweight like https://opendev.org/opendev/system-config/src/branch/master/docker/matrix-eavesdrop | 12:21 |
| @fungicide:matrix.org | 3. we used matrix-nio for the matrix-eavesdrop example above, i think that's fine | 12:22 |
| @fungicide:matrix.org | 4. yes i think that's the best plan still | 12:22 |
| @fungicide:matrix.org | 5. `https://opendev.ems.host` per https://opendev.org/opendev/system-config/src/commit/543a185/playbooks/roles/matrix-eavesdrop/templates/config.yaml#L3 | 12:24 |
| @fungicide:matrix.org | 6. that's probably fine, or even just `@meet` or something similarly short, i can create the account when it's closer to time to try deploying | 12:25 |
| @fungicide:matrix.org | 7. yes, to something like `quay.io/opendevorg/meetbot` similar to our others | 12:27 |
| @fungicide:matrix.org | 8. yes definitely | 12:27 |
| @jim:acmegating.com | fungi: Clark https://review.opendev.org/993695 is a housekeeping change we should not forget | 14:13 |
| -@gerrit:opendev.org- Zuul merged on behalf of Monty Taylor https://matrix.to/#/@mordred:inaugust.com: [zuul/zuul-jobs] 995203: Redirect skopeo container cache to zuul_user_dir https://review.opendev.org/c/zuul/zuul-jobs/+/995203 | 14:36 | |
| @clarkb:matrix.org | fungi: Anil Belur yes for 1) I think meetbot is the only functionality that is missing. I think matrix-nio is fine as matrix-eavesdrop uses it. One thing that we might consider is putting the functionality in matrix-eavesdrop so that we can reduce the number of bot accounts we need to manage (and image builds etc) | 14:36 |
| @clarkb:matrix.org | corvus: ^ do you have concerns with combining the functionality like that? I know zuul uses eavesdrop for logging and also doesn't intend to do meetings so maybe there is a reason to not do that? | 14:37 |
| @jim:acmegating.com | Clark fungi Anil Belur yes, in our earlier discussions i was also imagining that it would be added to matrix-eavesdrop since the functionality is so similar and related. so just extending that existing program to support meetings sounds good. that also takes care of several of the other questions (library, account, server, operation, etc). | 14:41 |
| @clarkb:matrix.org | great in that case I think the thing that makes the most sense to me is to port the work you've already done into matrix-eavesdrop here: https://opendev.org/opendev/system-config/src/branch/master/docker/matrix-eavesdrop/src which should hopefully be straightforward as both use matrix-nio and then let that handle container image builds etc | 14:49 |
| @clarkb:matrix.org | * great in that case I think the thing that makes the most sense to me is to port the work you've already done into matrix-eavesdrop here: https://opendev.org/opendev/system-config/src/branch/master/docker/matrix-eavesdrop/src which should hopefully be straightforward as both use matrix-nio and then let that handle container image builds etc cc Anil Belur | 14:49 |
| @clarkb:matrix.org | wiki seems happier this morning so I've syned up the agenda page with the email I sent yesterday | 14:54 |
| -@gerrit:opendev.org- Zuul merged on behalf of James E. Blair https://matrix.to/#/@jim:acmegating.com: [opendev/base-jobs] 993695: Update base-minimal post-logs https://review.opendev.org/c/opendev/base-jobs/+/993695 | 14:54 | |
| @clarkb:matrix.org | Jens Harbott: ^ I noted on the change that I Think we can fix up the commented out providers that are enabled now the next time we do a provider enable/disable for an outage. Or we can fix it in a followup | 14:55 |
| @clarkb:matrix.org | but I figured the change as is was an improvement over what we were doing before so went ahead and approved it | 14:55 |
| @mordred:waterwanders.com | corvus, Clark speaking of base-jobs changes, next time you're in the mood, https://review.opendev.org/c/opendev/base-jobs/+/994539 is the fix for the honor_container_command change we tried landing last week. | 16:50 |
| @mordred:waterwanders.com | corvus: Also, use-buildset-registry is still keeping a ~/.docker/config.json around triggering a preserve-home-paths. Should we fix that in base-jobs rather than zuul-jobs? (I'm honestly not sure how we'd fix it in zuul-jobs, this isn't a secrets file we're shredding) | 16:51 |
| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [opendev/base-jobs] 995544: Add .docker/config.json to preserve-home-paths https://review.opendev.org/c/opendev/base-jobs/+/995544 | 16:53 | |
| @mordred:waterwanders.com | corvus: like that ^^ ? | 16:53 |
| @jim:acmegating.com | mordred: we could think about whether we should be doing that on the executor... | 16:55 |
| @jim:acmegating.com | mordred: do you have a simple failure i can look at? | 16:56 |
| @jim:acmegating.com | i mean "job with warning" not real failure of course | 16:56 |
| @mordred:waterwanders.com | corvus: https://review.opendev.org/c/drizzle/drizzle/+/995423 | 16:56 |
| @clarkb:matrix.org | that is a good point. There is a good chance we don't need those creds there unless we're using the executor to shuffle the data around? | 16:56 |
| @mordred:waterwanders.com | the "funny" part is that in that particular change I don't actually need docker at all, but given the honor_container_command patch isnt' in yet, it's helpfully surfacing the docker path :) | 16:58 |
| @jim:acmegating.com | hrm, i feel like we probably should have included the job name in that warning.... | 17:00 |
| @jim:acmegating.com | because i'm not 100% sure which job is actually causing those... do you know? | 17:00 |
| @mordred:waterwanders.com | I was actually going to say the same thing. I'd guess it's the build-image job - but then I would have expected our intermediate registry fix to have fixed that | 17:03 |
| @mordred:waterwanders.com | the others are using opendev-buildset-registry-consumer | 17:04 |
| @mordred:waterwanders.com | and they're all calling "use-buildset-registry" explcitly in a pre-run | 17:05 |
| @jim:acmegating.com | that *should* only be running on the remote node (unless there's a 'delegate' on them?) | 17:07 |
| @jim:acmegating.com | i still feel like i'm missing something | 17:07 |
| @mordred:waterwanders.com | oh! I think it's going to be the image build job | 17:07 |
| @mordred:waterwanders.com | because of push to intermediate registry | 17:07 |
| @mordred:waterwanders.com | which we fix here: https://review.opendev.org/c/zuul/zuul-jobs/+/995346 | 17:07 |
| @jim:acmegating.com | yeah -- it should be only *one* job since we only see the warnings once | 17:08 |
| @mordred:waterwanders.com | oh, or, rather the buildset-registry job | 17:08 |
| @mordred:waterwanders.com | so - my money is on opendev-buildset-registry being the job, and the file persisting from push-to-intermediate-registry | 17:09 |
| @jim:acmegating.com | i'll buy that. i think we should merge that now so i'll upgrade to a +3 | 17:09 |
| @mordred:waterwanders.com | ++ | 17:09 |
| @mordred:waterwanders.com | I will abandon my preserve-home-paths patch | 17:09 |
| @jim:acmegating.com | mordred: meanwhile https://review.opendev.org/995547 should help with diagnosis | 17:09 |
| @mordred:waterwanders.com | YES | 17:10 |
| @jim:acmegating.com | mordred: +3 on 994539 i think we'll be around to deal with fallout | 17:10 |
| @mordred:waterwanders.com | thanks! I'll go look for an easy patch to recheck when it lands | 17:11 |
| @mordred:waterwanders.com | ok - I have a small easy patch I can recheck | 17:13 |
| @mordred:waterwanders.com | https://review.opendev.org/c/wandertracks/wandertracks/+/995549 (also the patch itself removes the local podman workarounds, so should be a good trial ballon either way) | 17:14 |
| -@gerrit:opendev.org- Zuul merged on behalf of Dmitriy Rabotyagov: [openstack/project-config] 982878: Deprecate Vitrage project https://review.opendev.org/c/openstack/project-config/+/982878 | 17:18 | |
| -@gerrit:opendev.org- Zuul merged on behalf of Monty Taylor https://matrix.to/#/@mordred:inaugust.com: [opendev/base-jobs] 994539: Reapply "Honor container_command in buildset-registry playbooks" https://review.opendev.org/c/opendev/base-jobs/+/994539 | 17:19 | |
| @mordred:waterwanders.com | ok - rechecked - watching the container job | 17:33 |
| -@gerrit:opendev.org- Zuul merged on behalf of Monty Taylor https://matrix.to/#/@mordred:inaugust.com: [zuul/zuul-jobs] 995346: Update uses of shred to actually remove the files https://review.opendev.org/c/zuul/zuul-jobs/+/995346 | 17:37 | |
| @clarkb:matrix.org | still seeing gitea slowness impacting manage-projects. Its not the end of the world right now, but something to be aware of and keep an eye on | 17:41 |
| @mordred:waterwanders.com | uhoh. my image build job is on 2nd attempt. | 17:51 |
| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [opendev/base-jobs] 995552: Revert "Reapply "Honor container_command in buildset-registry playbooks"" https://review.opendev.org/c/opendev/base-jobs/+/995552 | 17:52 | |
| @mordred:waterwanders.com | I didn't catch the live console logs this time around, but I'm pretty sure we're going to need that ^^ :( | 17:53 |
| @mordred:waterwanders.com | ok - caught the live console | 17:54 |
| @mordred:waterwanders.com | https://zuul.opendev.org/t/opendev/stream/a2553eccb4114ead8c111ab3ff3bf2ca?logfile=console.log | 17:54 |
| @clarkb:matrix.org | +2 from me once we confirm it is needed I can approve | 17:54 |
| @mordred:waterwanders.com | yeah. go ahead and do it | 17:56 |
| @mordred:waterwanders.com | ``` | 17:56 |
| 2026-06-30 17:55:53.210102 | TASK [pull-from-intermediate-registry : Load information from zuul_return] | ||
| 2026-06-30 17:55:53.302536 | localhost | Output suppressed because no_log was given | ||
| failure | ||
| 2026-06-30 17:55:53.303962 | | ||
| ``` | ||
| @clarkb:matrix.org | ``` | 17:56 |
| 2026-06-30 17:55:53.210102 | TASK [pull-from-intermediate-registry : Load information from zuul_return] | ||
| 2026-06-30 17:55:53.302536 | localhost | Output suppressed because no_log was given | ||
| failure | ||
| ``` | ||
| @mordred:waterwanders.com | so - that'll probably take more debugging | 17:57 |
| @clarkb:matrix.org | but that is happening in pre run right? | 17:57 |
| @mordred:waterwanders.com | yeah | 17:57 |
| @clarkb:matrix.org | your chagne is only changing post run? | 17:57 |
| @clarkb:matrix.org | oh you affect pre.yaml too sorry my brain is in a million places today | 17:57 |
| @clarkb:matrix.org | I've approved it. Probably some weird side effect from the pre.yaml changes | 17:58 |
| @mordred:waterwanders.com | my change consumes the opendev-build-image jobs with container_command: podman ... in theory this should work - I'm doing use ... | 17:59 |
| @mordred:waterwanders.com | OH | 17:59 |
| @mordred:waterwanders.com | oh | 17:59 |
| @mordred:waterwanders.com | I totally get it | 17:59 |
| @mordred:waterwanders.com | oh, nevermind. | 18:00 |
| -@gerrit:opendev.org- Zuul merged on behalf of Monty Taylor https://matrix.to/#/@mordred:inaugust.com: [opendev/base-jobs] 995552: Revert "Reapply "Honor container_command in buildset-registry playbooks"" https://review.opendev.org/c/opendev/base-jobs/+/995552 | 18:03 | |
| @clarkb:matrix.org | Airship says they will start looking at Zuul config errors now | 18:25 |
| @mordred:waterwanders.com | Clark, corvus : | 18:46 |
| ``` | ||
| 2026-06-30 17:55:05.096852 | TASK [Run buildset registry (if not already running)] | ||
| 2026-06-30 17:55:05.141674 | ubuntu-noble | ok | ||
| 2026-06-30 17:55:05.169201 | ubuntu-noble | included: run-buildset-registry | ||
| 2026-06-30 17:55:05.183790 | | ||
| ``` | ||
| Looking back further at that failed job run from earlier - we didn't detect the running buildset registry even earlier in the playbook. So for some reason I don't yet understand, we're not detecting the previously zuul_returned buildset registry info | ||
| @mordred:waterwanders.com | I cannot see anything in the patch that even touches that. | 18:51 |
| @clarkb:matrix.org | was it just a coincidence maybe? | 18:52 |
| @clarkb:matrix.org | somethign else caused the lookup failure potentially | 18:52 |
| @mordred:waterwanders.com | yeah - maybe? I'm at a loss. (I'm still trying to poke, but I'm running out of places to look) | 18:54 |
| @mordred:waterwanders.com | https://zuul.opendev.org/t/opendev/build/1d7ee404e8464298b5717dd32c88a405/log/job-output.txt#333 <-- another container build job during the new patch timeframe in a different repo also decided to try to run the buildset registry - so not grokking the zuul_return (it ran twice, failed both times) - that job is now correctly working. so SOMETHING about that patch is breaking the zuul_return processing and skipping of running a registry on host | 19:21 |
| @clarkb:matrix.org | weird | 19:22 |
| @mordred:waterwanders.com | yeah. I _cannot_ fathom anything in that patch that would have that impact | 19:22 |
| @clarkb:matrix.org | mordred: is it `Error: could not find pasta, the network namespace can't be configured: exec: "pasta": executable file not found in $PATH` | 19:24 |
| @clarkb:matrix.org | maybe the podman installation is insufficient | 19:24 |
| @mordred:waterwanders.com | that would be a different bug - an actual issue with running a buildset registry on podman | 19:24 |
| @clarkb:matrix.org | ya I guess that failure doesn't match what we saw in the other failure | 19:25 |
| @mordred:waterwanders.com | like - that's a real break, but that job should never have gotten to that line | 19:25 |
| @mordred:waterwanders.com | they both fail in that neither one should have attempted to run a buildset registry in the first place | 19:25 |
| @clarkb:matrix.org | well it says when buildset registry is not defined then run a buildset registry | 19:28 |
| @clarkb:matrix.org | so it seems ok that it ran that? | 19:28 |
| @mordred:waterwanders.com | it shouldn't - because there is an opendev-buildset-registry job in that project pipeline that this job depends on. In other runs it will load the existing buildset registry information that was zuul_return'd by opendev-buildset-registry and skip running it | 19:29 |
| @clarkb:matrix.org | got it | 19:30 |
| @mordred:waterwanders.com | so runing it is a symptom of "something broke processing the returned data" | 19:30 |
| @mordred:waterwanders.com | (which we then saw in the fetch-from-intermediate failure too) | 19:30 |
| @clarkb:matrix.org | I wonder is ensure-docker loading that info | 19:32 |
| @mordred:waterwanders.com | incidentally - the wandertracks change successfully ran the buildset registry, but it's running on default nodes (noble I think) whereas the drizzle change, which runs on resolute nodes, failed on the pasta thing. so _Second_ bug is that ensure-podman on resolute is missing a package even in the non-rootless case | 19:32 |
| @clarkb:matrix.org | mordred: I think that you have to explicitly load it in a role/playbook. If ensure-docker was doing that and we aren't in ensure-podman then maybe that is the cause | 19:32 |
| @mordred:waterwanders.com | looking | 19:33 |
| @clarkb:matrix.org | push/pull-to/from-intermediate-registry do that loading | 19:33 |
| @clarkb:matrix.org | https://codesearch.opendev.org/?q=result_data_file&i=nope&literal=nope&files=&excludeFiles=&repos= | 19:34 |
| @clarkb:matrix.org | so maybe this is an order of operations thing. I wonder if we pull-from-intermediate-registry earlier in other jobs and this is just an interaction around that in your jobs? | 19:35 |
| @mordred:waterwanders.com | no - it works properly without the patch - same order.(and I'm just running opendev-build-container-image really) ...but, we reutrn it in the opendev-buildset-registry job with: | 19:38 |
| ``` | ||
| - name: Return registry information to Zuul | ||
| zuul_return: | ||
| secret_data: | ||
| buildset_registry: "{{ buildset_registry }}" | ||
| ``` | ||
| @clarkb:matrix.org | mordred: it looks like the successful run is running a buildset registry with docker. This is because nothing is defining that buildset registry value before we do the checks in the chagne we've reverted/reapplied | 19:43 |
| @clarkb:matrix.org | mordred: so maybe the first thing to address is that? | 19:43 |
| @clarkb:matrix.org | and figure out what if any errors exist from there | 19:43 |
| @mordred:waterwanders.com | Clark: it does this: https://zuul.opendev.org/t/opendev/build/d988388430c5435d9edd2e4c2ea20694/log/job-output.txt#459 in a successful run | 19:54 |
| @mordred:waterwanders.com | (that's a recent run after our revert - but same behavior before the revert) | 19:55 |
| @clarkb:matrix.org | thats weird because it seems like we don't load the info until https://zuul.opendev.org/t/opendev/build/d988388430c5435d9edd2e4c2ea20694/log/job-output.txt#685 | 19:58 |
| @mordred:waterwanders.com | I agree. | 20:00 |
| @mordred:waterwanders.com | Clark: there's a note in front of one instance of that that says: "# This can be removed if we add this functionality to Zuul directly" | 20:00 |
| @mordred:waterwanders.com | Clark: also - fwiw, that load is what failed on the original failures we both posted in | 20:04 |
| @clarkb:matrix.org | yes I'm half operating under the assumption that that load is maybe a one off or some state problem and not a fundamental issue in the jobs | 20:05 |
| @mordred:waterwanders.com | so, I'd say that construct failing is the thing that was broken in all the failure cases - although it manifested slightly differently in a couple of them | 20:05 |
| @clarkb:matrix.org | and then the podman can't run buildset registry showing that buildset_registry was expected to already be loaded is the actual bug | 20:05 |
| @clarkb:matrix.org | but I don't understand how buildset_registry is ever set that early at all | 20:05 |
| @mordred:waterwanders.com | thing is - podman _can_ run buildset registry (and did successfully) on noble. that was the original wandertracks job | 20:06 |
| @clarkb:matrix.org | it isn't set in the inventory | 20:06 |
| @mordred:waterwanders.com | no, it isn't - because it has secret info in it | 20:06 |
| @mordred:waterwanders.com | (it has the buildset registry password) | 20:07 |
| @clarkb:matrix.org | ya so I would expect it to always run the buildset registry locally, but your example clearly doesn't so now I'm digging through logs and ansible to figure out why | 20:07 |
| @mordred:waterwanders.com | so we showed 2 bugs: | 20:07 |
| 1. whatever is going on with zuul_return and buildset_registry data not being able to be read by pull from intermediate registry | ||
| @mordred:waterwanders.com | 2. podman + buildset registry is broken on resolute (I'll fix that independently) | 20:08 |
| @mordred:waterwanders.com | For tracking purposes: | 20:11 |
| - Failing job 1: https://zuul.opendev.org/t/opendev/build/5f50c032dacf4c90b637d604b5325370 (on resolute, will show as podman error) | ||
| - Successful recheck of failing job 1: https://zuul.opendev.org/t/opendev/build/d988388430c5435d9edd2e4c2ea20694 | ||
| - Failing job 2: https://zuul.opendev.org/t/opendev/build/62891e2ddd034690b3e274ee16c2bc1f (on noble, will show at pull from intermediate) | ||
| - Successful recheck of failing job 2: https://zuul.opendev.org/t/opendev/build/d2c526e423cd4f82b18bf33b87d0addf | ||
| @clarkb:matrix.org | I'm basically reading https://zuul.opendev.org/t/opendev/build/d988388430c5435d9edd2e4c2ea20694/console and working backward from the skipped run-buildset-registry role inclusion | 20:12 |
| @clarkb:matrix.org | since at that point we should have buildset_registry defined, btu I'm not seeing where | 20:12 |
| @clarkb:matrix.org | myhunch is in ensure-docker somewhere | 20:12 |
| @clarkb:matrix.org | since that would explain why podman tries to run it | 20:13 |
| @clarkb:matrix.org | but I really don't see it in there | 20:13 |
| @mordred:waterwanders.com | Clark: | 20:14 |
| ``` | ||
| def getResultData(self): | ||
| data = {} | ||
| secret_data = {} | ||
| try: | ||
| with _safe_open(self.jobdir.result_data_file) as f: | ||
| file_data = f.read() | ||
| if file_data: | ||
| file_data = json.loads(file_data) | ||
| data = file_data.get('data', {}) | ||
| secret_data = file_data.get('secret_data', {}) | ||
| # Check the variable names for safety, but zuul is allowed. | ||
| data_copy = data.copy() | ||
| data_copy.pop('zuul', None) | ||
| check_varnames(data_copy) | ||
| secret_data_copy = data.copy() | ||
| secret_data_copy.pop('zuul', None) | ||
| check_varnames(secret_data_copy) | ||
| ``` | ||
| @mordred:waterwanders.com | that's in zuul now, so it _should_ be being injected into secret data for the job | 20:14 |
| @mordred:waterwanders.com | sorr, there's a ```return data, secret_data``` at the end of that | 20:14 |
| @clarkb:matrix.org | ohhh that would explain why the docker based run is skipped I guess | 20:14 |
| @mordred:waterwanders.com | it would? | 20:15 |
| @clarkb:matrix.org | it doesn't explain why the podman based run does not skip. I checked the diffs and the var doesn't get renamed or anything liek that so I don't think its a typo mismatching the values | 20:15 |
| @mordred:waterwanders.com | ah - yes. explains why it works when it works | 20:15 |
| @mordred:waterwanders.com | does NOT explain why it's broken where it's broken :) | 20:15 |
| @mordred:waterwanders.com | Clark: I've tried to bring a fun weird bug for our debugging pleasure | 20:16 |
| @clarkb:matrix.org | mordred: hrm that code you linked is used around pausing to load the info out of the job context for zuul to use | 20:16 |
| @clarkb:matrix.org | we aren't doing a job pause in the successful runs as far as I can tell so maybe it doesn't explain that | 20:16 |
| @mordred:waterwanders.com | we are though | 20:16 |
| @mordred:waterwanders.com | the opendev-buildset-registry _job_ pauses | 20:16 |
| @clarkb:matrix.org | oh are we? | 20:16 |
| @mordred:waterwanders.com | yeah | 20:17 |
| @clarkb:matrix.org | right but that is a different job | 20:17 |
| @clarkb:matrix.org | in this particular job we would need to load the result data somewhere to know about the paused buildset registry running in the other paused job | 20:17 |
| @clarkb:matrix.org | and its that load that I'm not finding (but seems to exist when using docker) | 20:17 |
| @mordred:waterwanders.com | https://zuul.opendev.org/t/opendev/buildset/4b2e54d4a95544bb9319f0f40eef18fd | 20:17 |
| @mordred:waterwanders.com | I'm _pretty_ sure zuul auto-injects it these days | 20:18 |
| @mordred:waterwanders.com | corvus: ^^ ? | 20:18 |
| @clarkb:matrix.org | mordred: I think the next debugging step may be to add debugging around whether or not buildset_registry is defined and what the contents are (can we safely print bits of info like the ip address without exposing the password? but even then exposing the password is probably fine if it is an ephemeral registry and we don't rely on it in jobs toat actually publish images) | 20:21 |
| @mordred:waterwanders.com | * For tracking purposes: | 20:27 |
| - Failing job 1: https://zuul.opendev.org/t/opendev/build/1d7ee404e8464298b5717dd32c88a405 (on resolute, will show as podman error) | ||
| - Successful recheck of failing job 1: https://zuul.opendev.org/t/opendev/build/578a4ea230534329976da07c42f486a0 | ||
| - Failing job 2: https://zuul.opendev.org/t/opendev/build/62891e2ddd034690b3e274ee16c2bc1f (on noble, will show at pull from intermediate) | ||
| - Successful recheck of failing job 2: https://zuul.opendev.org/t/opendev/build/d2c526e423cd4f82b18bf33b87d0addf | ||
| @jim:acmegating.com | i think the question is: if opendev-buildset-registry returns secret data, will it be present for dependent jobs? and my answer is yes it should be | 20:31 |
| @clarkb:matrix.org | corvus: but is it present as an ansible var without an explicit load of the data? Some roles like pull-from-intermediate-registry load it explicitly | 20:32 |
| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [zuul/zuul-jobs] 995585: Align podman packages on resolute and forward https://review.opendev.org/c/zuul/zuul-jobs/+/995585 | 20:32 | |
| @jim:acmegating.com | Clark: i expect the explicit load to be to handle the case where we want to use it in the same job | 20:33 |
| @clarkb:matrix.org | corvus: ah got it | 20:33 |
| @mordred:waterwanders.com | nod. so - the expectation is that with opendev-buildset-registry paused, we should see buildset_registry set as a varaible in other jobs in that buildset | 20:33 |
| @jim:acmegating.com | yep | 20:33 |
| @clarkb:matrix.org | ok so something about the change is causing that info to not be present to ansible | 20:33 |
| @mordred:waterwanders.com | now - why that got broken by that change is ... yeah | 20:34 |
| @mordred:waterwanders.com | a _very_ mystery | 20:34 |
| @mordred:waterwanders.com | (that zuul-jobs patch above is a fix for the incidental "podman+registry+resolute" bug we accidentally uncovered which is not really related) | 20:34 |
| @clarkb:matrix.org | it occurs to me that ensure-podman could unset the var, but I don't see evidence ofthat either | 20:38 |
| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [opendev/base-jobs] 995586: Reapply "Reapply "Honor container_command in buildset-registry playbooks"" https://review.opendev.org/c/opendev/base-jobs/+/995586 | 20:42 | |
| @mordred:waterwanders.com | Clark: I've got nothing - but there is an updated version of the patch, but I reverted out the block and the iptables changes to make it as small as humanly possible | 20:43 |
| @clarkb:matrix.org | +2 from me seems like reducing the possible scope and trying again may give us more info and might get things working as expected | 20:45 |
| @mordred:waterwanders.com | I wish I had even a theory | 20:45 |
| @mordred:waterwanders.com | do you want me to put in a debug print of one of the non-secret fields in buildset_registry? Like buildset_registry.username? | 20:47 |
| @clarkb:matrix.org | maybe just a buildset_registry is defined check at the very beginning of that? | 20:48 |
| @mordred:waterwanders.com | ++ | 20:48 |
| @clarkb:matrix.org | I dunno I don't think it is necessary without a theory your simplification chagne may be just as good | 20:48 |
| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [opendev/base-jobs] 995586: Reapply "Reapply "Honor container_command in buildset-registry playbooks"" https://review.opendev.org/c/opendev/base-jobs/+/995586 | 20:51 | |
| @mordred:waterwanders.com | oh, piddle. sorry - didn't see we already had the +A :( | 20:51 |
| @jim:acmegating.com | i think it's the block | 20:52 |
| @jim:acmegating.com | it must be something about the interaction of block and include_role, like it's applying the "when" to every task in the role | 20:53 |
| @jim:acmegating.com | https://zuul.opendev.org/t/opendev/build/f092094b4b774e44b95e4411e326681b/console#1/0/60/ubuntu-noble | 20:53 |
| @jim:acmegating.com | the zuul_return task was skipped in the opendev-buildset-registry job in the failing buildset | 20:54 |
| @jim:acmegating.com | i'm guessing that's because the "when buildset_registry not defined" block condition got propagated all the way down to the individual task in the role | 20:54 |
| @clarkb:matrix.org | in that case the latest version should be happier as it drops the block | 20:54 |
| @mordred:waterwanders.com | oh wild | 20:55 |
| @clarkb:matrix.org | do we want to go back to the non debug version of that and reapprove or keep the debugging anda pprove? | 20:55 |
| @jim:acmegating.com | yeah should be a good indication that's the right track | 20:55 |
| @mordred:waterwanders.com | yeah. let me strip that back out | 20:55 |
| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [opendev/base-jobs] 995586: Reapply "Reapply "Honor container_command in buildset-registry playbooks"" https://review.opendev.org/c/opendev/base-jobs/+/995586 | 20:55 | |
| @clarkb:matrix.org | +2 from me on ps3 | 20:56 |
| @jim:acmegating.com | +3 | 20:56 |
| @mordred:waterwanders.com | so - just saying this back so my incredulous mind can grok it. our theory is that the block propagated the when to every line inside of the role, so in the actual opendev-buildset-registry job, where that variable is not set and we expect it to run, it ran the role but added a set of "when: not set" to each task - which then caused it to not zuul_return the data | 20:59 |
| @jim:acmegating.com | yes, or something like that, i haven't tested/verified/researched that exact thing, but that's my starting theory. i know something like that happens with include_tasks or similar, i am (or will be) surprised that it's true for include_role too | 21:00 |
| @mordred:waterwanders.com | "When using when on a block that contains include_role , the when condition is evaluated before every single task inside the included role . This often causes early skips. The best practice is to place the when condition on the include_role task itself to evaluate the role as a whole." | 21:00 |
| @jim:acmegating.com | seems like the best practice may be "never use block" | 21:01 |
| @jim:acmegating.com | (if you can help it) | 21:01 |
| @clarkb:matrix.org | mordred: is that chatgpt explaining the situation? | 21:02 |
| @mordred:waterwanders.com | Clark: gemini :) | 21:03 |
| @mordred:waterwanders.com | but here's the link to the ansible docs on it: https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_blocks.html | 21:04 |
| -@gerrit:opendev.org- Zuul merged on behalf of Monty Taylor https://matrix.to/#/@mordred:inaugust.com: [opendev/base-jobs] 995586: Reapply "Reapply "Honor container_command in buildset-registry playbooks"" https://review.opendev.org/c/opendev/base-jobs/+/995586 | 21:04 | |
| @mordred:waterwanders.com | "All tasks in a block inherit directives applied at the block level. Most of what you can apply to a single task (with the exception of loops) can be applied at the block level, so blocks make it much easier to set data or directives common to the tasks. The directive does not affect the block itself, it is only inherited by the tasks enclosed by a block. For example, a when statement is applied to the tasks within a block, not to the block itself." | 21:04 |
| @mordred:waterwanders.com | I've rechecked https://review.opendev.org/c/wandertracks/wandertracks/+/995549 and https://review.opendev.org/c/drizzle/drizzle/+/995540 which are our two fail/success cases from earlier | 21:05 |
| @jim:acmegating.com | that excerpt doesn't seem to say that it would then recursively apply to the tasks in the included role | 21:07 |
| @mordred:waterwanders.com | ah - here's the more relevant link: https://github.com/ansible/ansible/issues/74382 | 21:08 |
| @mordred:waterwanders.com | https://github.com/ansible/ansible/issues/74382#issuecomment-824901121 | 21:08 |
| @jim:acmegating.com | that's more clear; looks like they added docs for that to the "playbook guide" | 21:11 |
| @mordred:waterwanders.com | https://zuul.opendev.org/t/opendev/stream/b0c5aaf42571417eb2bf38bfdbc97fec?logfile=console.log | 21:11 |
| @mordred:waterwanders.com | there's the stream of one of the test changes for anyone who wants to follow along | 21:11 |
| @jim:acmegating.com | https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_blocks.html#grouping-tasks-with-blocks | 21:12 |
| @jim:acmegating.com | there it is in docs! | 21:12 |
| @jim:acmegating.com | sorry the anchor isn't good there in my link | 21:12 |
| @jim:acmegating.com | i'm trying to point to the "Note" a bit below that | 21:12 |
| @jim:acmegating.com | `All tasks in a block, including the ones included through include_role, inherit directives applied at the block level.` | 21:13 |
| @clarkb:matrix.org | I'm not sure I like that | 21:13 |
| @jim:acmegating.com | i'm sure i don't | 21:13 |
| @clarkb:matrix.org | but I guess it is documented and we can be careful about it in the future | 21:13 |
| @mordred:waterwanders.com | we have gotten past previous failure points | 21:13 |
| @jim:acmegating.com | we've gotten very similar things wrong in the past, we'll mess it up again | 21:13 |
| @mordred:waterwanders.com | it's SO counterintuitive | 21:14 |
| @mordred:waterwanders.com | as a human what I clearly mean is "if this is not set, include this role" | 21:14 |
| @mordred:waterwanders.com | the github issue used the argument that you'd expect this behavior for become, which I agree with. If only there was a way for a program to say "these keys are applied transitively and these keys aren't" | 21:15 |
| @mordred:waterwanders.com | (please read that with maximum snark) | 21:16 |
| @clarkb:matrix.org | ya particularlyfor a when condition | 21:16 |
| @mordred:waterwanders.com | Id' say when+include_role is common enough that special-casing it in code would be entirely justified | 21:16 |
| @mordred:waterwanders.com | but, hey, what do I know | 21:17 |
| -@gerrit:opendev.org- Monty Taylor https://matrix.to/#/@mordred:inaugust.com proposed: [opendev/base-jobs] 995591: Only open iptables ports when running a buildset registry https://review.opendev.org/c/opendev/base-jobs/+/995591 | 21:21 | |
| @mordred:waterwanders.com | https://zuul.opendev.org/t/opendev/stream/50f4ccb3218745bd93ef3e0fa37baa7d?logfile=console.log <-- otherjob also past the point. looking good overall | 21:22 |
| @mordred:waterwanders.com | image build jobs succeeded \o/ | 21:29 |
| @abelur:matrix.org | Thanks - that makes sense, and it's actually less work. I'll port the meeting handling into matrix-eavesdrop rather than stand up a separate bot, reusing the existing image/account/role. The POC already uses matrix-nio, so it's mostly lifting the command parsing + the OpenDev minute-rendering engine into bot.py and adding a reply path (eavesdrop currently only logs, never sends). | 21:41 |
| @abelur:matrix.org | Clark: fungi corvus Two minor things before I push a change up: | 21:43 |
| 1. Engine reuse — the OpenDev minute/log formatting comes from the ircmeeting engine in opendev/meetbot, which isn't on PyPI. Easiest for a first pass is to vendor it into the eavesdrop src/ package. Any objection to vendoring, or would you prefer I pull it in as a build-time dependency from opendev/meetbot? | ||
| @abelur:matrix.org | * Clark: fungi corvus Two minor things before I push a change up: | 21:43 |
| 1. Engine reuse - the OpenDev minute/log formatting comes from the ircmeeting engine in opendev/meetbot, which isn't on PyPI. Easiest for a first pass is to vendor it into the eavesdrop src/ package. Any objection to vendoring, or would you prefer I pull it in as a build-time dependency from opendev/meetbot? | ||
| @abelur:matrix.org | 2. Account UX - happy to reuse @logs:opendev.org to keep account count down. Only thing is it'll be the sender of meeting replies ("Meeting started", minutes links), which reads a little oddly under "logs". Fine as-is, or would you prefer a friendlier display name on the same account? | 21:43 |
| @abelur:matrix.org | I'll target a single change against system-config under topic matrix. | 21:44 |
| Will test locally against a throwaway Synapse first (that's how the POC gate works today). | ||
| @jim:acmegating.com | Anil Belur: I'm going to reply in the main room instead of the thread -- we generally try to avoid threads in these public rooms because for a lot of matrix clients (including, weirdly, element) they can be hard to discover and follow. (non-threaded replies work pretty well though) | 21:55 |
| To your questions: 1) vendor is fine with me, but i don't feel strongly about that; happy to yield to clark or fungi if they have stronger opinions. | ||
| 2) agree that logs as a display name is weird... i could live with it (it's still... a log), but if we can find something better that would be great. that is of course the hardest problem in computer science, so... good luck to us all in picking a name. | ||
| @jim:acmegating.com | * Anil Belur: I'm going to reply in the main room instead of the thread -- we generally try to avoid threads in these public rooms because for a lot of matrix clients (including, weirdly, element) they can be hard to discover and follow. (non-threaded replies work pretty well though) | 21:55 |
| To your questions: | ||
| 1) vendor is fine with me, but i don't feel strongly about that; happy to yield to clark or fungi if they have stronger opinions. | ||
| 2. agree that logs as a display name is weird... i could live with it (it's still... a log), but if we can find something better that would be great. that is of course the hardest problem in computer science, so... good luck to us all in picking a name. | ||
| @clarkb:matrix.org | vendoring/forking that ircmeeting stuff seems fine. For 2. do we think we want to change the display name of that account and share the account? it will still be `@logs:opendev.org` but we can have it display as meetbot or something? | 22:10 |
| @clarkb:matrix.org | on the irc side the nick is `opendevmeet` so maybe we change the display name to something like that? | 22:11 |
| @clarkb:matrix.org | and yes element makes threads really hard to discover, I had no idea a thread had been started | 22:11 |
| @jim:acmegating.com | `opendevmeet` sounds good, especially with the web hostname being 'meetings' these days. `OpenDevMeet` `OpenDev Meeting` `meet` would all work for me | 22:14 |
| @jim:acmegating.com | but then i'd be okay with `meat` so yeah don't listen to me either | 22:15 |
| @mordred:waterwanders.com | mmm meat | 22:17 |
| @clarkb:matrix.org | our local butcher is "The Meating Place" | 22:18 |
| @clarkb:matrix.org | I'm popping out for a bike ride | 22:33 |
| @mordred:waterwanders.com | corvus: so - funny story. image builds on podman with container_command set to podman ... and then fails on push to buidset registry | 23:02 |
| @jim:acmegating.com | cool what will it be this time? ipv6? docker/podman protocol mismatch? ansible weird? i can't wait to find out | 23:10 |
| @mordred:waterwanders.com | corvus: leading candidate is "podman does chunked PATCH uploads concurrently, then ignores one of them for no apparent reason until the registry times out" https://zuul.opendev.org/t/opendev/build/d99ec2106c85465db2d867f76ac48c42/log/podman/buildset_registry.txt#1004 | 23:17 |
| @jim:acmegating.com | so door #2 | 23:19 |
| @mordred:waterwanders.com | yah | 23:20 |
| @mordred:waterwanders.com | I wonder if skopeo would do any better | 23:20 |
| @mordred:waterwanders.com | (I'm going to try to come up with a reproducer that doesn't involve an end to end zuul job :) ) | 23:23 |
Generated by irclog2html.py 4.1.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!