Thursday, 2021-10-07

-@gerrit:opendev.org- Zuul merged on behalf of James E. Blair https://matrix.to/#/@jim:acmegating.com: [zuul/zuul] Resolve cache keys when gathering related changes https://review.opendev.org/c/zuul/zuul/+/81273200:16
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] Fix typo in general cleanup method https://review.opendev.org/c/zuul/zuul/+/81279405:13
@westphahl:matrix.orgcorvus, zuul-maint: just noticed a small typo in 812732 that should be fixed by ^05:15
-@gerrit:opendev.org- Zuul merged on behalf of Simon Westphahl: [zuul/zuul] Fix typo in general cleanup method https://review.opendev.org/c/zuul/zuul/+/81279408:28
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] Store RepoFiles for a build set in Zookeeper https://review.opendev.org/c/zuul/zuul/+/81267308:43
-@gerrit:opendev.org- Simon Westphahl proposed on behalf of James E. Blair https://matrix.to/#/@jim:acmegating.com: [zuul/zuul] Add RepoState object https://review.opendev.org/c/zuul/zuul/+/81276008:43
@westphahl:matrix.orgcorvus:  I reordered 812673 and 812760 as I like the `truncate_on_create` better than my approach08:44
-@gerrit:opendev.org- Simon Westphahl proposed:08:47
- [zuul/zuul] Simplified attribute API for ZKObjects https://review.opendev.org/c/zuul/zuul/+/809532
- [zuul/zuul] Make QueueItem a Zookeeper object https://review.opendev.org/c/zuul/zuul/+/809414
- [zuul/zuul] Store pipeline state in Zookeeper https://review.opendev.org/c/zuul/zuul/+/810658
- [zuul/zuul] Store change queues in Zookeeper https://review.opendev.org/c/zuul/zuul/+/810920
- [zuul/zuul] Save and restore bundle with item in Zookeeper https://review.opendev.org/c/zuul/zuul/+/811422
- [zuul/zuul] Pass ZK context to deserialize method of ZKObjects https://review.opendev.org/c/zuul/zuul/+/811955
- [zuul/zuul] Move ZuulMark from configloader to model https://review.opendev.org/c/zuul/zuul/+/812450
- [zuul/zuul] Recursively delete all sub-nodes of ZKObjects https://review.opendev.org/c/zuul/zuul/+/812451
- [zuul/zuul] Only retry ZK operations for Kazoo exceptions https://review.opendev.org/c/zuul/zuul/+/812466
- [zuul/zuul] Store build sets in Zookeeper https://review.opendev.org/c/zuul/zuul/+/812452
- [zuul/zuul] Add support for sharded ZKObjects https://review.opendev.org/c/zuul/zuul/+/812467
- [zuul/zuul] Store RepoFiles for a build set in Zookeeper https://review.opendev.org/c/zuul/zuul/+/812673
-@gerrit:opendev.org- Simon Westphahl proposed on behalf of James E. Blair https://matrix.to/#/@jim:acmegating.com:08:47
- [zuul/zuul] Add an API for ZK-backed objects https://review.opendev.org/c/zuul/zuul/+/809293
- [zuul/zuul] Temporarily enqueue cycle changes for reporting https://review.opendev.org/c/zuul/zuul/+/810328
- [zuul/zuul] Dequeue items after we're done with them https://review.opendev.org/c/zuul/zuul/+/811244
- [zuul/zuul] Add LocalZKContext for job freezing https://review.opendev.org/c/zuul/zuul/+/812750
- [zuul/zuul] Add RepoState object https://review.opendev.org/c/zuul/zuul/+/812760
-@gerrit:opendev.org- Simon Westphahl proposed on behalf of Felix Edel: [zuul/zuul] WIP Put frozen jobs in ZooKeeper https://review.opendev.org/c/zuul/zuul/+/81196909:31
-@gerrit:opendev.org- Simon Westphahl proposed on behalf of Felix Edel: [zuul/zuul] WIP Put frozen jobs in ZooKeeper https://review.opendev.org/c/zuul/zuul/+/81196909:34
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] Store RepoFiles for a build set in Zookeeper https://review.opendev.org/c/zuul/zuul/+/81267312:58
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] wip: only create build set when needed https://review.opendev.org/c/zuul/zuul/+/81301414:04
@clarkb:matrix.orgtristanC it might be nice to put change numbers in the gerritbot output as we tend to refer to changes by numbers still14:17
@jim:acmegating.comClark: true; i see them in weechat, but have to mouseover in element14:23
@tristanc_:matrix.orgHow about `[zuul/zuul] <change-nr>: <title-link>` ?  14:25
@clarkb:matrix.orgWorks for me14:27
-@gerrit:opendev.org- Dong Zhang proposed: [zuul/zuul-jobs] WIP: Implement role for limiting zuul log file size https://review.opendev.org/c/zuul/zuul-jobs/+/81303414:32
-@gerrit:opendev.org- Dong Zhang proposed: [zuul/zuul-jobs] WIP: Implement role for limiting zuul log file size https://review.opendev.org/c/zuul/zuul-jobs/+/81303414:49
-@gerrit:opendev.org- Dong Zhang proposed: [zuul/zuul-jobs] WIP: Implement role for limiting zuul log file size https://review.opendev.org/c/zuul/zuul-jobs/+/81303414:52
@bridgefan:matrix.orgI was wondering if someone could help explain the difference between requires/provides and dependencies in zuul job definitions?19:30
@jim:acmegating.combridgefan: my rule of thumb: provides/requires is for dependencies between queue items (changes), job dependencies are for dependencies within a single item (change)19:35
@bridgefan:matrix.orgok, so I think dependencies make sense to me.  I'm trying to imagine an example of provides/requires.19:39
@jim:acmegating.combridgefan: server project builds a container image in one change, and a frontend-ui project depends on that container image and uses it in a second change19:40
@jim:acmegating.com(doesn't have to be different projects, could be the same project.  works either way; just one example)19:40
@bridgefan:matrix.orgcorvus: how is the passed object exposed?19:42
@jim:acmegating.combridgefan: metadata about it is passed through the zuul.artifacts variable (actually shipping the object around is an exercise for the job author; but we have roles in zuul-jobs to help with some cases like container images and rpm repositories)19:43
@jim:acmegating.combasically, the provides job returns info through zuul_return, then that shows up in zuul.artifacts in the requires job19:44
@bridgefan:matrix.orgcorvus: ok, I think I'm almost getting it.  Is the zuul.artifacts always the latest version? (ie. if container image project keeps checking changes, and frontend-ui runs less often)19:46
@jim:acmegating.combridgefan: it's only present if the change being tested depends on (in any form) a change which 'provides' something.  if there's nothing ahead of it that provides something it needs, or it doesn't depend on anything that provides something it needs, then it will be absent (so it's up to the job to get the latest thing from wherever it normally would)19:49
@jim:acmegating.com(so our example ui job would need to do something like "if there's a zuul.artifacts with my server container image, run that; otherwise run the latest published image".  the zuul-jobs roles for containers do that automatically with a buildset container registry.19:50
@bridgefan:matrix.orgcorvus: ok, so say in our that the container gets updated twice befpre frontend-ui job runs... which provided artifact would the frontend-ui get in zuul.artifacts?19:56
@bridgefan:matrix.org*our example19:56
@jim:acmegating.combridgefan: i believe it's an ordered list that includes both, so you'd generally want to use the last one.  i think the container roles in zuul-jobs just naively fetch both and overwrite the first with the second.  i'm not 100% sure on that.19:58
@erbarr:matrix.orghello, is there a way to create a lockable resource in zuul so I don't have to use molteniron or devise my own hardware management system?19:58
@bridgefan:matrix.orgcorvus: ok thanks a lot!19:59
@jim:acmegating.comerbarr: semaphores may help https://zuul-ci.org/docs/zuul/reference/semaphore_def.html19:59
@jim:acmegating.combridgefan: https://zuul-ci.org/docs/zuul/reference/jobs.html#var-zuul.artifacts has some more info19:59
@bridgefan:matrix.orgcorvus: ok nice20:01
@erbarr:matrix.orgcorvus: that looks like you can't assign useful attributes. I want to lock by a label that can match multiple resources then one gets picked and I can reference that to get info of that specific resource from the pool, like a mac address or ip address20:02
@fungicide:matrix.orgthat sounds more like what nodepool would be used for20:03
@erbarr:matrix.orgso, this is to lock baremetal which nodepool shouldn't deal with20:03
@fungicide:matrix.orgi thought there were folks using nodepool that way via the nova-baremetal driver20:04
@fungicide:matrix.orgbut in theory i don't see a reason nodepool couldn't have an ironic native driver20:04
@jim:acmegating.comnodepool also has a static driver.  neither that nor nova-baremetal may be what you're looking for, but i'd like to state for other folks in the channel that in the general sense, nodepool is absolutely intended for use with bare metal.20:05
@erbarr:matrix.orgokay, I'll dig into that and try to make it work, thanks20:06
@fungicide:matrix.orgerbarr: Kenny Ho also started on a cobbler driver a year ago, and might like help finishing it: https://review.opendev.org/75656920:11
@fungicide:matrix.orgno idea if cobbler is any better of a solution for what you're working on20:12
@fungicide:matrix.orgbut it also might provide some insights for anyone interested in making an ironic driver20:12
@jim:acmegating.comClark and i have restarted opendev's zuul on current master; (note that the matrix-oftc bridge is not functioning right now, so matrix-only folks may not see activity there)21:06
@clarkb:matrix.orgcorvus: I'm a little confused about that exception we noted when reenqueing non change objects after the restart. https://opendev.org/zuul/zuul/src/branch/master/zuul/executor/common.py#L68-L69 shows that this parameter isn't always there, but we seem to assume it is in multiple places in the executor server (in _execute(), pause(), and resume())22:01
@mordred:inaugust.comcorvus: ah - I was wondering about your ping22:01
@clarkb:matrix.orgI suppose that item.change.url might always be set somehow, but model.py doesn't seem to support that theory22:03
@clarkb:matrix.orginteresting grepping for that log string on an executor it has change_urls for commits not just changes22:05
@clarkb:matrix.orgso that must be it. item.change.url is valid for those objects except for when they are explicitly enqueued22:05
@jim:acmegating.comClark: yeah, that should always be set, so something's happening in the re-enqueue path where it isn't22:15
@jim:acmegating.comlike _getBranch sets it22:15
@clarkb:matrix.orgcorvus: ya, I think that maybe we should set url in the base Ref object since we expect it to always be there, but then it is still a bug that the enqueue path somehow avoids setting it22:20
@clarkb:matrix.orgcorvus: I'm wondering if it is related to the refresh flag. We set it to true in the EventQueue handler but only _getChange() seems to implement it22:23
@jim:acmegating.comshouldn't be necessary for the other types22:25
@clarkb:matrix.orgexcept that it seems we must be finding the change in the cache and there is no url set? Otherwise I can't see a path here that doesn't set the url22:27
@clarkb:matrix.orgcorvus: is it possible that during startup we're populating the cache somehow without the url?22:42
@clarkb:matrix.orgAs a side effect of config loading maybe? But then as other things merge the newrev moves ahead and the cache gets new entries?22:42
@jim:acmegating.comnewrev should be part of the cache entry22:47
@jim:acmegating.comer the cache key22:47
@clarkb:matrix.orgcorrect, I'm theorizing that if we stop zuul after a change merges but before its post jobs run, then start zuul again and reenqueue maybe that situation is such that the change cache entry for connection,project,branch,foo,newrev doesn't contain a url22:49
@clarkb:matrix.orgthen things work when the next chagne merges bceause newrev is different and zuul will do _getBranch and create a new change that it stashes in the cache22:49
@clarkb:matrix.orgactually that may be it22:49
@jim:acmegating.comsure, the question remains: what's the code path where it isn't set?22:50
@clarkb:matrix.orgI'm suspecting the issue is in serializing to the zk change cache22:50
@clarkb:matrix.orgthe Change type in model seems to be url aware, but the Ref and Branch types are not22:51
@clarkb:matrix.organd that may cause cache serialization to lose that information22:51
@jim:acmegating.comyes that's it.  it's not in Ref.serialize22:51
@clarkb:matrix.orgok I'll work on refactoring the url up into the base Ref type22:52
@jim:acmegating.com++22:52
@jim:acmegating.comthx22:52
@jim:acmegating.comswest: re truncateoncreate -- great, i was thinking the same might apply to repofiles too, but didn't have a chance to investigate.  i'm glad it makes sense there too.22:55
-@gerrit:opendev.org- Clark Boylan proposed: [zuul/zuul] Make url an attribute of the base Ref class https://review.opendev.org/c/zuul/zuul/+/81311322:58
@clarkb:matrix.orgIt might be that ^ simple?22:58
@jim:acmegating.comi think so22:59
@clarkb:matrix.orgAlso I think if it isn't set in a driver we'll just have a None attribute which should be fine for this23:04
@jim:acmegating.com++23:05
@clarkb:matrix.orgI added the sos hashtag too since as noted in the commit message I suspect thsi would've been a bigger problem with multiple schedulers23:07
@jim:acmegating.comyeah, i think we should get that merged before doing the next point release23:29

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