-@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/+/812732 | 00:16 | |
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] Fix typo in general cleanup method https://review.opendev.org/c/zuul/zuul/+/812794 | 05:13 | |
@westphahl:matrix.org | corvus, 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/+/812794 | 08:28 | |
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] Store RepoFiles for a build set in Zookeeper https://review.opendev.org/c/zuul/zuul/+/812673 | 08: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/+/812760 | 08:43 | |
@westphahl:matrix.org | corvus: I reordered 812673 and 812760 as I like the `truncate_on_create` better than my approach | 08: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/+/811969 | 09: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/+/811969 | 09:34 | |
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] Store RepoFiles for a build set in Zookeeper https://review.opendev.org/c/zuul/zuul/+/812673 | 12:58 | |
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] wip: only create build set when needed https://review.opendev.org/c/zuul/zuul/+/813014 | 14:04 | |
@clarkb:matrix.org | tristanC it might be nice to put change numbers in the gerritbot output as we tend to refer to changes by numbers still | 14:17 |
@jim:acmegating.com | Clark: true; i see them in weechat, but have to mouseover in element | 14:23 |
@tristanc_:matrix.org | How about `[zuul/zuul] <change-nr>: <title-link>` ? | 14:25 |
@clarkb:matrix.org | Works for me | 14: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/+/813034 | 14: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/+/813034 | 14: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/+/813034 | 14:52 | |
@bridgefan:matrix.org | I was wondering if someone could help explain the difference between requires/provides and dependencies in zuul job definitions? | 19:30 |
@jim:acmegating.com | bridgefan: 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.org | ok, so I think dependencies make sense to me. I'm trying to imagine an example of provides/requires. | 19:39 |
@jim:acmegating.com | bridgefan: 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 change | 19: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.org | corvus: how is the passed object exposed? | 19:42 |
@jim:acmegating.com | bridgefan: 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.com | basically, the provides job returns info through zuul_return, then that shows up in zuul.artifacts in the requires job | 19:44 |
@bridgefan:matrix.org | corvus: 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.com | bridgefan: 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.org | corvus: 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 example | 19:56 |
@jim:acmegating.com | bridgefan: 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.org | hello, 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.org | corvus: ok thanks a lot! | 19:59 |
@jim:acmegating.com | erbarr: semaphores may help https://zuul-ci.org/docs/zuul/reference/semaphore_def.html | 19:59 |
@jim:acmegating.com | bridgefan: https://zuul-ci.org/docs/zuul/reference/jobs.html#var-zuul.artifacts has some more info | 19:59 |
@bridgefan:matrix.org | corvus: ok nice | 20:01 |
@erbarr:matrix.org | corvus: 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 address | 20:02 |
@fungicide:matrix.org | that sounds more like what nodepool would be used for | 20:03 |
@erbarr:matrix.org | so, this is to lock baremetal which nodepool shouldn't deal with | 20:03 |
@fungicide:matrix.org | i thought there were folks using nodepool that way via the nova-baremetal driver | 20:04 |
@fungicide:matrix.org | but in theory i don't see a reason nodepool couldn't have an ironic native driver | 20:04 |
@jim:acmegating.com | nodepool 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.org | okay, I'll dig into that and try to make it work, thanks | 20:06 |
@fungicide:matrix.org | erbarr: Kenny Ho also started on a cobbler driver a year ago, and might like help finishing it: https://review.opendev.org/756569 | 20:11 |
@fungicide:matrix.org | no idea if cobbler is any better of a solution for what you're working on | 20:12 |
@fungicide:matrix.org | but it also might provide some insights for anyone interested in making an ironic driver | 20:12 |
@jim:acmegating.com | Clark 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.org | corvus: 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.com | corvus: ah - I was wondering about your ping | 22:01 |
@clarkb:matrix.org | I suppose that item.change.url might always be set somehow, but model.py doesn't seem to support that theory | 22:03 |
@clarkb:matrix.org | interesting grepping for that log string on an executor it has change_urls for commits not just changes | 22:05 |
@clarkb:matrix.org | so that must be it. item.change.url is valid for those objects except for when they are explicitly enqueued | 22:05 |
@jim:acmegating.com | Clark: yeah, that should always be set, so something's happening in the re-enqueue path where it isn't | 22:15 |
@jim:acmegating.com | like _getBranch sets it | 22:15 |
@clarkb:matrix.org | corvus: 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 it | 22:20 |
@clarkb:matrix.org | corvus: 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 it | 22:23 |
@jim:acmegating.com | shouldn't be necessary for the other types | 22:25 |
@clarkb:matrix.org | except 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 url | 22:27 |
@clarkb:matrix.org | corvus: is it possible that during startup we're populating the cache somehow without the url? | 22:42 |
@clarkb:matrix.org | As 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.com | newrev should be part of the cache entry | 22:47 |
@jim:acmegating.com | er the cache key | 22:47 |
@clarkb:matrix.org | correct, 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 url | 22:49 |
@clarkb:matrix.org | then 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 cache | 22:49 |
@clarkb:matrix.org | actually that may be it | 22:49 |
@jim:acmegating.com | sure, the question remains: what's the code path where it isn't set? | 22:50 |
@clarkb:matrix.org | I'm suspecting the issue is in serializing to the zk change cache | 22:50 |
@clarkb:matrix.org | the Change type in model seems to be url aware, but the Ref and Branch types are not | 22:51 |
@clarkb:matrix.org | and that may cause cache serialization to lose that information | 22:51 |
@jim:acmegating.com | yes that's it. it's not in Ref.serialize | 22:51 |
@clarkb:matrix.org | ok I'll work on refactoring the url up into the base Ref type | 22:52 |
@jim:acmegating.com | ++ | 22:52 |
@jim:acmegating.com | thx | 22:52 |
@jim:acmegating.com | swest: 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/+/813113 | 22:58 | |
@clarkb:matrix.org | It might be that ^ simple? | 22:58 |
@jim:acmegating.com | i think so | 22:59 |
@clarkb:matrix.org | Also I think if it isn't set in a driver we'll just have a None attribute which should be fine for this | 23:04 |
@jim:acmegating.com | ++ | 23:05 |
@clarkb:matrix.org | I added the sos hashtag too since as noted in the commit message I suspect thsi would've been a bigger problem with multiple schedulers | 23:07 |
@jim:acmegating.com | yeah, i think we should get that merged before doing the next point release | 23:29 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!