Friday, 2019-02-15

*** jamesmcarthur has quit IRC00:22
*** jamesmcarthur has joined #zuul00:26
*** jamesmcarthur has quit IRC00:31
*** jamesmcarthur has joined #zuul00:47
*** jamesmcarthur has quit IRC00:58
mnaserdoes the zuul-cloned repos include tags by any chance?01:01
mnaseraka can operations that grab things like git tags be done on those git checkouts?01:01
openstackgerritMerged openstack-infra/zuul-jobs master: Fix undefined attrs in registry push/pull roles  https://review.openstack.org/63707201:08
clarkbmnaser: yes it should have those too01:11
clarkbthat is how openstack release jobs work01:11
mnaserok, i'm porting some jobs to zuul and a script that runs git describe seems to return "fatal: No names found, cannot describe anything." .. i'll dig in a bit more01:12
*** jamesmcarthur has joined #zuul01:15
*** jamesmcarthur has quit IRC01:20
mnaserinteresting01:27
mnaser"fatal: No names found, cannot describe anything." when i run "git tag"01:27
*** jamesmcarthur has joined #zuul01:34
mnaserGAH01:38
mnaserthere was no tags oops01:38
*** jamesmcarthur has quit IRC01:46
*** ruffian_sheep has joined #zuul01:50
*** jamesmcarthur has joined #zuul02:06
*** jamesmcarthur has quit IRC02:11
*** jamesmcarthur has joined #zuul02:27
*** jamesmcarthur has quit IRC02:32
*** jamesmcarthur has joined #zuul02:48
*** jamesmcarthur has quit IRC02:53
*** jamesmcarthur has joined #zuul03:00
ruffian_sheepSometimes the service can be shut down and restarted directly, but sometimes there will be a timeout. Is this situation normal for the service? I have not made any changes. Just restart the service03:06
ruffian_sheephttp://paste.openstack.org/show/745130/03:06
*** jamesmcarthur has quit IRC03:18
*** jamesmcarthur has joined #zuul03:19
mnaserhmm, fetch-output and stage-output are using different paths by default04:27
mnaseris this by purpose?04:27
mnaseri think ideally we want both to be the same default?04:27
*** jamesmcarthur has quit IRC04:49
*** jamesmcarthur has joined #zuul04:50
*** jamesmcarthur has quit IRC04:54
*** jamesmcarthur has joined #zuul05:10
*** jamesmcarthur has quit IRC05:15
*** pabelanger has quit IRC05:15
*** mhu has quit IRC05:15
*** mhu has joined #zuul05:15
*** jamesmcarthur has joined #zuul05:31
*** jamesmcarthur has quit IRC05:35
*** jamesmcarthur has joined #zuul05:51
*** jamesmcarthur has quit IRC05:56
*** rlandy|bbl has quit IRC06:04
*** jamesmcarthur has joined #zuul06:12
*** jamesmcarthur has quit IRC06:16
*** jamesmcarthur has joined #zuul06:33
*** jamesmcarthur has quit IRC06:38
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Re-use the github PR object when fetching reviews  https://review.openstack.org/63670506:49
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Add comment about extra issues request  https://review.openstack.org/63670606:50
*** saneax has joined #zuul06:51
*** jamesmcarthur has joined #zuul06:54
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Add dockerized test setup  https://review.openstack.org/63642406:54
*** quiquell|off is now known as quiquell|rover06:54
*** saneax has quit IRC06:55
*** jamesmcarthur has quit IRC06:59
*** saneax has joined #zuul06:59
quiquell|rovercorvus: thanks we can try to put both versions of the comment the clear text with unsafe and the base64 will do at a follow up07:05
quiquell|rovercorvus: a suspect yaml tagging will be just metadata at other parser07:07
*** bjackman has joined #zuul07:07
quiquell|rovercorvus: one concern would be dumping to json but UnsafeTag has __str__ so this should work07:08
*** jamesmcarthur has joined #zuul07:15
*** jamesmcarthur has quit IRC07:20
*** chkumar|pto is now known as chkumar|ruck07:29
*** quiquell|rover is now known as quique|rover|brb07:36
*** jamesmcarthur has joined #zuul07:37
*** jamesmcarthur has quit IRC07:42
*** jamesmcarthur has joined #zuul07:58
*** jamesmcarthur has quit IRC08:03
*** manjeets has quit IRC08:09
*** manjeets has joined #zuul08:11
*** gtema has joined #zuul08:14
*** quique|rover|brb is now known as quiquell|rover08:17
*** jamesmcarthur has joined #zuul08:19
*** jamesmcarthur has quit IRC08:24
*** jamesmcarthur has joined #zuul08:41
*** jamesmcarthur has quit IRC08:45
openstackgerritFabien Boucher proposed openstack-infra/zuul master: gerrit: add support for report only connection  https://review.openstack.org/56821608:48
*** jpena|off is now known as jpena08:57
*** jamesmcarthur has joined #zuul09:02
*** jamesmcarthur has quit IRC09:07
*** jamesmcarthur has joined #zuul09:23
*** jamesmcarthur has quit IRC09:28
openstackgerritTobias Henkel proposed openstack-infra/zuul master: WIP: Manage ansible installations  https://review.openstack.org/63193009:40
openstackgerritTobias Henkel proposed openstack-infra/zuul master: WIP: Symlink ansible plugins  https://review.openstack.org/63602209:40
*** jamesmcarthur has joined #zuul09:45
openstackgerritTobias Henkel proposed openstack-infra/zuul master: WIP: Manage ansible installations  https://review.openstack.org/63193009:46
openstackgerritTobias Henkel proposed openstack-infra/zuul master: WIP: Symlink ansible plugins  https://review.openstack.org/63602209:46
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Support boolean values in get_default  https://review.openstack.org/63715809:46
*** jamesmcarthur has quit IRC09:49
*** saneax has quit IRC09:59
*** saneax has joined #zuul09:59
*** saneax has quit IRC10:00
*** saneax has joined #zuul10:01
*** saneax has quit IRC10:03
*** saneax has joined #zuul10:04
*** saneax has quit IRC10:04
*** saneax has joined #zuul10:05
*** saneax has quit IRC10:06
*** jamesmcarthur has joined #zuul10:06
*** saneax has joined #zuul10:07
*** saneax has quit IRC10:10
*** jamesmcarthur has quit IRC10:11
*** saneax has joined #zuul10:11
*** saneax has quit IRC10:12
*** saneax has joined #zuul10:12
*** saneax has quit IRC10:23
*** saneax has joined #zuul10:24
*** jamesmcarthur has joined #zuul10:28
*** jamesmcarthur has quit IRC10:32
jktis it safe to use a zuul-executor on a separate node which is from git master, and the rest of zuul on another node running the latest release?10:32
jkt(I'm trying to avoid having to bring that whole JS toolchain to my centos 7 machine which runs my Zuul)10:33
jktand I would like to try these parallel git preparations that tobiash mentioned a few days ago10:33
*** saneax has quit IRC10:45
*** jamesmcarthur has joined #zuul10:49
*** jamesmcarthur has quit IRC10:54
*** saneax has joined #zuul10:59
*** saneax has quit IRC11:03
*** jamesmcarthur has joined #zuul11:10
*** jamesmcarthur has quit IRC11:15
tobiashjkt: most of the time we try to stay backwards compatible so there is a high chance that this just works11:16
jkttobiash: thanks11:18
tobiashjkt: but you should be aware of the differences if you do that and judge on each change if it's just targeting one service or more at once11:23
tobiashjkt: so it is not really recommended ;)11:24
tobiashjkt: so I usually run the whole system at the same version (latest master)11:26
*** gtema has quit IRC11:26
*** ruffian_sheep has quit IRC11:28
*** jamesmcarthur has joined #zuul11:31
*** rfolco|off is now known as rfolco11:33
*** jamesmcarthur has quit IRC11:36
*** saneax has joined #zuul11:50
*** jamesmcarthur has joined #zuul11:53
*** jamesmcarthur has quit IRC11:57
*** electrofelix has joined #zuul11:57
jkttobiash: is there an easy way of pregenerating a release-like tarball with built webapp/JS thingy, and feeding that to pip on my real zuul node?12:01
tobiashjkt: I normally just pip install from the source dir12:02
jkttobiash: I'm afraid that installing the JS dev stack on centos 7 is not really trivial12:03
tobiashjkt: I think the tools/install-js-tools.sh already covers centos12:05
jkttobiash: thanks :)12:06
*** jamesmcarthur has joined #zuul12:14
*** gtema has joined #zuul12:14
*** jamesmcarthur has quit IRC12:19
openstackgerritTobias Henkel proposed openstack-infra/zuul master: WIP: Manage ansible installations  https://review.openstack.org/63193012:19
openstackgerritTobias Henkel proposed openstack-infra/zuul master: WIP: Symlink ansible plugins  https://review.openstack.org/63602212:19
chkumar|ruckHello12:27
chkumar|ruckIs there a way to access project canonical git url with in the playbook while running it in ci?12:28
*** jpena is now known as jpena|lunch12:32
jktchkumar|ruck: if you mean within the build node itself, then note that the build node might not have access and/or credentials to access the git server12:34
*** jamesmcarthur has joined #zuul12:35
chkumar|ruckjkt: in tripleo ci jobs, we have this action plugin https://github.com/openstack/tripleo-quickstart-extras/blob/master/roles/build-test-packages/library/zuul_deps.py12:36
chkumar|ruckjkt: where it clones specific projects based on depends-on12:36
chkumar|ruckjkt: it works fine with openstack project, but if there is github hosted project, it does not work12:37
chkumar|ruckjkt: there I wanted to access the project url for the github project if depends-on is added12:37
chkumar|ruckjkt: here it is called https://github.com/openstack/tripleo-quickstart-extras/blob/master/roles/build-test-packages/tasks/main.yml#L19112:38
jktchkumar|ruck: it looks like there should be zuul.projects.$project.canonical_hostname and .name, but they do not contain everything that one might need (e.g., ssh:// vs https:// prefix)12:39
jktbut anyway, I thought that the executors do this "on their own" as long as you list all projects that you ever need in job.required_projects12:39
chkumar|ruckjkt: job.required projects seems to be a good idea12:40
chkumar|rucklet me try that12:40
*** jamesmcarthur has quit IRC12:40
jktmy expectation is that Zuul will then check out correct refs based on depends-on etc12:41
*** EmilienM is now known as EvilienM12:43
*** jamesmcarthur has joined #zuul12:57
*** bjackman has quit IRC12:58
*** jamesmcarthur has quit IRC13:01
*** electrofelix has quit IRC13:14
openstackgerritFelix Schmidt proposed openstack-infra/zuul master: List changed files for all commits between refs  https://review.openstack.org/63179713:17
openstackgerritFelix Schmidt proposed openstack-infra/zuul master: Retrieve full list of jobs with details per tenant via API  https://review.openstack.org/63571413:17
openstackgerritFelix Schmidt proposed openstack-infra/zuul master: Add new merger job to get role definitions from a repository  https://review.openstack.org/63718113:17
*** jamesmcarthur has joined #zuul13:18
*** bjackman has joined #zuul13:18
*** jamesmcarthur has quit IRC13:24
*** jamesmcarthur has joined #zuul13:40
*** jpena|lunch is now known as jpena13:41
*** rlandy has joined #zuul13:42
*** jamesmcarthur has quit IRC13:44
*** jamesmcarthur has joined #zuul13:45
*** jamesmcarthur has quit IRC13:50
*** jamesmcarthur has joined #zuul14:06
*** jamesmcarthur has quit IRC14:10
*** gtema has quit IRC14:15
*** gtema has joined #zuul14:18
*** pabelanger has joined #zuul14:27
*** jamesmcarthur has joined #zuul14:27
*** gtema has quit IRC14:29
*** jamesmcarthur has quit IRC14:31
jktI'm looking at Zuul's new support for artifacts. Is that being used in some openstack jobs already?14:42
jkt(there's one downside to projects defining jobs in their repos -- it makes it hard to grep for these :) )14:42
jktthe docs are a bit short on this, so I wonder how exactly artifacts work. Accoridng to this: https://zuul-ci.org/docs/zuul/user/jobs.html#var-zuul.artifacts14:49
jktit looks that my job will only get the `zuul.artifacts` variable set *iff* there's a preceding job in the same pipeline14:50
jktbut if the change that is being tested is a consumer of some artifacts which come from another project, then I'm out of luck, right?14:50
jktI was hoping for something nifty such as Zuul remembering what artifacts were produced in a build which corresponds to the current tip of the other project's branch, etc14:51
*** quiquell|rover is now known as quiquell|off14:51
jktI think that the "zuulish" way of doing this is to have a post-merge job which promotes/registers/etc whatever got produced during gate. This promotion/registration should probably do something like setting a symlink in a file server to point to the just-produced artifacts14:55
jktthen, in my consumer project, I take a look at zuul.artifacts; if it is set, I can get my dependencies from there; if not, just fetch them from that well-known place14:56
jktdoes that sound about right?14:56
*** bjackman has quit IRC15:01
tobiashjkt: as far as I remember zuul will store the artifact info in the sql database15:06
tobiashjkt: so you need to add an sql connection if not done yet and add the sql reporter to every pipeline15:07
tobiashjkt: this will give out also the builds tab in zuul-web15:07
*** jamesmcarthur has joined #zuul15:08
jkttobiash: I have not used these zuul's artifacts, but I do have an sql reported, and I can see the build tab15:09
jkttobiash: my question is related to whether these artifacts get populated from branch state if there's no preceding job in the queue15:10
tobiashjkt: I think that should be the case15:10
tobiashbut probably corvus knows better15:10
jkttobiash: I would love that to be the case, but the docs do not mention that feature15:11
clarkbI dont think it works that way15:11
jktalso, how would zuul infer the artifacts for a branch state of the other project (the one which provides artifacts)15:12
clarkbthe docker image roles that make use of this default to pulling the 'latest' tag iirc15:12
clarkbso the registry is responsible for that (along with the roles) not the artifact system itself15:12
jktclarkb: amd there's the "gate" queue which builds these images, and the "promote" which uploads them to the registry, right?15:12
*** jamesmcarthur has quit IRC15:13
clarkbyes and the promote job moves the latest tag along15:13
clarkbso if there are no preceeding artifacts you grab the latest aiui15:13
jktmy use case involves depending on external projects that I cannot gate on15:13
jktabout once a month, these projects change their function signatures, which requires a change in my downstream projects15:14
jktso far, I've been using git submodules for these, pinning a specific ref of the external, unstable projects15:14
jktif there's a change, I can easily adapt our code and update the submodule ref in one commit15:15
jktbut as I'm moving to zuul v3, I'm thinking on how to improve this15:15
jktwe already have two projects consuming these external deps, and it makes sense to keep the pinned version in a lockstep among these two leaf/child projects15:15
jktso I was thinking of bringing in a thrid projects, let's call it common-dependencies, letting that project produce artifacts, with two leaf projects consuming them15:16
jktwhen I adapt to an incompatible change in the external deps, I can add a Depends-on: <change in the common-deps>, and that would ensure that I will get a fresh artifact in leaf's build15:17
jktrecent Gerrit supports "topics", and cross-project changes sharing the same topic can only be submitted together15:18
jktI don't think Zuul recognizes these, does it?15:18
clarkbnot yet, there is a mailing list thread or two about adding support for commiting changes together.15:19
clarkbI think its mostly down to finding someone to implement it15:19
jkthow come I missed that? I browsed the archive only yesterday I think15:19
*** cmurphy is now known as cmorpheus15:22
clarkbthe conversations werent specific to that gerrit feature but more gsnsralized support for submitting more than one "change" at atime. I'dhave to dig archives myself to find it15:23
tobiashjkt, clarkb: http://lists.zuul-ci.org/pipermail/zuul-discuss/2018-November/000615.html15:29
*** jamesmcarthur has joined #zuul15:29
*** kmalloc is now known as needscoffee15:32
*** jamesmcarthur has quit IRC15:34
*** chkumar|ruck is now known as chandankumar15:38
*** jamesmcarthur has joined #zuul15:51
*** jamesmcarthur has quit IRC15:53
*** jamesmcarthur has joined #zuul15:53
corvusjkt: the idea with provides/requires + artifacts is for artifacts to be speculative, just like git repos.  so if change A depends-on change B, and change A is in gate, then obviously B is either ahead of A, in which case artifacts will be populated with the results of B, or it previously landed, in which case it's expected that the artifacts will already have been published, so they won't be populated.16:20
jktcorvus: thanks16:21
jktso there's an assumption that there's "a registry" somewhere, got it16:21
corvusjkt: in check, it's similar -- if B has landed, zuul will not populated the artifacts.  But if B is still an open change, zuul will populate artifacts from the most recent run by querying the sql database16:21
jktI was hoping that zuul could be that registry for me16:21
corvusjkt: different artifacts require different kinds of storage.  i'm working on a set of jobs now that use this system with a docker image registry16:22
jktah, by Iregistry" I meant a single field holding a "blessed" URL which is known to work, not really actual content storage16:23
corvus(but this system could work similarly with a deb/rpm repo, etc)16:23
jktbasically, just storing URLs, similarly to what the artifact feature is doing now -- but also for already merged changes16:23
corvusjkt: well, the storage is still there, and you can look it up for any change using the web ui or api.  zuul just doesn't populate the field with data from merged changes when it runs new jobs...16:25
corvus(because once a change merges, it isn't speculative anymore)16:26
jktcan I ask zuul for a job result based on a git ref which triggered it?16:27
jktI'm still thinking about post-merge vs. promote, too16:27
corvusjkt: yes16:27
jktso right now there's this build at the top of http://zuul.openstack.org/builds : http://zuul.openstack.org/build/22d5f1e5ac6446a3a32193c9dcea45a516:29
clarkbfwiw the github cache seems to have maybe improved things but I still see us going out to ansible on getPRBySha far more often than I would expect based on logs16:29
clarkbI'm working on the cleanup that tobiash suggested yesterday around project vs project_name then will see if I can't sort out why that is still hitting the github api so frequently16:30
jktbut using its "newrev", I'm making a search such as http://zuul.openstack.org/builds?change=1f104a093c1f27ddb1967e72cd452d43120b4cc2, and it returns no builds16:30
clarkbMaybe the cache update in getPullBySha isn't working right16:30
*** saneax has quit IRC16:30
corvusjkt: i haven't completely wrapped my head around your use case yet, but what you described at 14:55 ('I think that the "zuulish" way') is a correct description of how provides/requires+artifacts was designed to work.  the thing i worry about hitting the api is making the jobs too dependent on zuul.  in general, if changes are already merged, you shouldn't need to ask zuul how to build something.  but i16:31
corvusadmit, that concern is a bit vague and general.  :)16:31
openstackgerritClark Boylan proposed openstack-infra/zuul master: Rename project to project_name in getPullBySha  https://review.openstack.org/63721816:32
jktyeah, I'm currently only using "check", not "gate", so my point of view might be a bit biased16:32
jktalso, I'm reading through that thread that tobiash mentioned16:32
jktI have not seen a mention of gerrit's new topic restrictions in there16:32
corvusjkt: that's a search by change number; theoretically, this should be the search: http://zuul.openstack.org/builds?newrev=1f104a093c1f27ddb1967e72cd452d43120b4cc216:33
corvusjkt: but it returns too many results, so it seems like it may be broken16:33
jktbasically, there's a way to submit either all changes, or no changes, in upstream gerrit if projects are appropriately configured16:33
corvusjkt: zuul doesn't have support for simultaneous, or bi-directional, depends-on.  it assumes it's going to merge things in strict sequence.  we could expand zuul to support the other case if we get a volunteer to write that -- there are a few steps involved.  one of them, perhaps surprisingly, is actually having zuul perform the merges rather than gerrit.16:35
corvus(so gerrit's support for this becomes somewhat irrelevant)16:35
jktthanks16:37
corvusjkt: here's a search for the latest builds of the master branch of openstack/neutron; your build from earlier is at the top: http://zuul.openstack.org/builds?project=openstack%2Fneutron&branch=master16:38
corvusjkt: the jobs i'm working on to use provides/requires+artifacts with a docker registry are being tested here: https://review.openstack.org/637037  (the system doesn't work yet, but you can trace those jobs and roles if you want to see more examples.  the parent job is in project-config, and the roles are in zuul-jobs)16:40
jktcorvus: on the other hand, it is IMHO an interesting point that Gerrit now effectively implements that point (B) from http://lists.zuul-ci.org/pipermail/zuul-discuss/2018-November/000634.html16:41
corvusjkt: yes, though i believe it was implemented before that discussion too, so i think the conclusions there are still relevant16:44
SpamapScorvus: there's one problem with relying on "latest" in containers. Often times latest has moved, but things like kubernetes will not know it has changed, so ideally there's a way to find out what the latest *unique* tag is, so you can look at the git repo, and tell kubernetes to update.16:50
SpamapSI've done that with a series of tags.. pipeline_post is my default, then I have newrev_{sha} for when I need to make k8s pick up the new image.16:51
SpamapSBut that only works in post. I'd love to be able to discern the unique tag from gate just by looking at the git repo + zuul.16:52
clarkbSpamapS: I think our gitea k8s config has a serial number like bind zone files and that gets incremented16:54
corvusSpamapS: for the jobs i'm building, i'm tagging in the intermediate registry with the build uuid.  if you can find a build record in zuul, you can find the image.16:54
corvusand yes, that's how we're currently doing deploys -- it's a separate git commit to cause a deploy to happen.  it's not the only way to interpret 'gitops' but it is one way :)16:55
SpamapSRight, so I can probably go git sha -> github -> pr -> zuul search by change -> build16:56
SpamapScorvus: I think I actually prefer that gitops paradigm.16:56
SpamapSI have a lot of issues with the way I do it, not the least of which is that whole prod/master branch disaster.16:56
SpamapSGoing to be switching to deploy-on-tag I think, which is essentially the same thing.16:57
SpamapSand would have the same breadcrumbs.16:57
corvusyeah, i like the breadcrumbs, it's why i lean in that direction17:00
corvus(i'm just being careful to indicate that zuul is not opinionated about *this* thing :)17:00
clarkbI've written a small test class for GithubShaCache and it passes :/17:08
clarkbI mean I expected it to, but was hoping that would offer insight into why the cache doesn't seem to always be used17:09
tobiashclarkb: maybe we should log cache hits and misses so we can easier debug this17:11
clarkbtobiash: ya that is probably going to be the next step. I'm going to clean up this test suite and push it since I've written it anyway so may as well have continuing value17:12
tobiash++17:12
corvusclarkb: can you paste some log lines that are making you suspicious?17:12
corvus(and yeah, that test class will be helpful if we do anything to make the cache more sophisticated)17:13
corvusnew topic -- i think we need a role to read data from zuul_return and use it to set_fact.  that way we can easily transfer data from a pre playbook to a post.  does that sound useful?  does that exist already?  :)17:13
clarkbcorvus: http://paste.openstack.org/show/745171/ log lines (there are ~170 of those according to wc -l)17:15
corvusclarkb: do you know one of the prs it's looking for?17:16
corvusmight be useful to see if we're getting status updates on closed prs, or somesuch.17:16
corvusor, i guess, what sha it's looking for :)17:17
corvusmaybe it's a superceded sha or something17:17
openstackgerritClark Boylan proposed openstack-infra/zuul master: Test GithubShaCache  https://review.openstack.org/63722817:17
SpamapScorvus: is there any reason not to just set any zuul returns from pre's on all post's somewhere under zuul?17:18
clarkbcorvus: http://paste.openstack.org/show/745172/ is a more recent one where I've gathered more data17:18
clarkbthat one is "special" in that the queue grew afterwards17:18
clarkbre superceded sha that could be it17:19
clarkbI'll cross check that shaqw17:19
clarkber17:19
corvusSpamapS: that's a good question.  we do that for later jobs, so why not later playbooks?  i can't come up with much of an argument against it, other than a general wariness of altering ansible expectations too much.  but i can't even convince myself with that argument.17:19
clarkbsha17:19
corvusSpamapS: i think that was the push i needed to avoid writing a role and instead write a code patch.  :)17:20
SpamapScorvus: I've taken a rigor of not referencing zuul.* inside roles.. I only map it in playbooks. This makes my roles pretty reusable outside zuul, and helps me know where I'm relying on zuul magic. So for me, there's really no conflict. :)17:20
clarkbcorvus: https://github.com/ansible/ansible/pull/52177 looking at that I think the reason we didn't see it is that sha was a merge commit sha17:21
clarkbcorvus: so it didn't previously exist in our cache17:21
clarkband ansible is running checks on merge commits17:22
clarkbhttps://app.shippable.com/github/ansible/ansible/runs/107670/summary/console is the check that ran17:22
corvusclarkb: say more words about merge commit -- i'm not following.17:23
clarkbcorvus: http://paste.openstack.org/show/745172/ has more details logs and points out the sha is 25323155d2996831744df11dfc6a8ff28ba8201f. That sha doesn't exist until the PR above merges.17:23
clarkbso our earlier cache population won't have it in the table17:23
clarkbthen shippable runs those checks on that merge commit and sets a status. Because this commit is brand new post merging we end up doing the full scan17:24
corvusdoes 25323155d2996831744df11dfc6a8ff28ba8201f show up on that page at all?17:24
clarkbcorvus: yes https://github.com/ansible/ansible/pull/52177 as the very end "gundalow merged commit 2532... into ansible:devel"17:24
corvusclarkb: ok, and shippable ran after that merge event, yeah?17:25
clarkbcorvus: yup17:25
corvusclarkb: so i wonder why the merge event itself didn't update the cache17:25
clarkblet me do more grepping to see if we processed such an event17:26
corvuswow you just can't grep for 52177 in the log can you :)17:26
clarkbI started with the sha but I'll believe you that 52177 is noisy :)17:27
clarkbanother thing I notice, we processed three status events for that sha, all three did the 1.5 minute long lookup17:27
clarkb(so that probably helps explain why the queue grows at that point)17:28
tobiashmaybe we just don't call getPull when a pr gets merged17:30
clarkbtobiash: ya looking at the code I think that may be the case?17:30
tobiashdidn't look yet17:30
tobiashcurrently looking at the event docs of github17:31
corvuswhy do none of these services understand timestamps?17:31
corvusoh, right, because everyone is in san francisco17:31
tobiashclarkb, corvus: I think I know why it's not cached17:31
tobiashbecause we explicitly remove it if it's other than 'open'...17:32
clarkboh17:32
clarkbso we remove it, then we get the status event17:32
clarkbha17:32
tobiashand of course a merge pr has "state": "closed",17:32
tobiashso we may need to switch to ttl based cleanup17:33
clarkbor combo of both17:34
clarkbyou stay in cache indefinitely while open, but once not open start counting down17:34
corvusgive me a minute to find the definitive order of events here17:35
tobiashshould we use this: https://cachetools.readthedocs.io/en/stable/#cachetools.TTLCache ?17:37
corvusclarkb, tobiash: this is the sequence: http://paste.openstack.org/show/745174/17:43
corvusi got that info from github delivery log17:44
corvusthough i think i'm missing the events with 25323 as the sha17:44
corvusthose are the events in our log that mention pr 5217717:44
clarkbcorvus: my 25323 logs come after the pull request closed action17:45
clarkbso I think there is another set of events after that that will be interesting to look at17:45
corvusokay, i see 3 deliveries for that, so i'll find those now17:47
SpamapSWouldn't LRU invalidation handle the ttl/open/closed cases?17:47
SpamapSIf we're not using dogpile... and memcached... might make sense to consider.. this is sort of what they're for.17:47
* SpamapS hasn't looked closely.17:47
SpamapSEspecially since we don't have a scale-out scheduler yet, but we will, and when that happens, having cache outside process will be important.17:48
corvusSpamapS: we're just storing a mapping, we're not trying to store the data17:48
corvusi think external storage would be overkill17:49
SpamapSah, k17:49
SpamapSso yeah, then why isn't LRU sufficient?17:50
clarkblru probably would be, I think we just wanted easy and didn't anticipate this workflow from ansible (though its a totally valid workflow especially if you don't have a zuul)17:51
clarkbthe reason lru probably works well is CI results tend to be clustered to other events. So earlier events like a push, recheck, or merge will update cache, then not much later we get the ci status event17:53
clarkband in that time we likely don't evict the mapping17:53
tobiashthe question is what about superceded sha's?17:54
tobiashannotating the function with lru won't handle that17:55
tobiashoh, I think our cache doesn't handle this as well17:55
SpamapSSo you're saying that a sha gets disconnected from any PR's, and we don't invalidate that sha -> pr mapping?17:56
corvusgot it!17:56
corvushttp://paste.openstack.org/show/745176/17:56
corvusthe sha *isn't* superceded17:56
corvusthere's a new field -- merge_commit_sha17:56
corvusso we should not remove on closed events, and we should populate the mapping with the merge_commit_sha as well17:58
corvusit should be fine to have more than one sha go to the same pr -- it's only one sha going to more than one pr that's too confusing for us.17:58
clarkboh interesting17:59
clarkbthen use lru to remove them? or ttl?17:59
clarkbif we don't remove on closed events we probably need some other expiry right?17:59
corvusi still like lru for this because of what you said17:59
*** jpena is now known as jpena|off18:01
SpamapSYeah, LRU fits the access pattern well. The only thing I worry about is missed events.18:21
SpamapSTTL+LRU would actually be the best. In case something stays popular, but doesn't get any updating events, you want to invalidate it just because it is old.18:22
openstackgerritJames E. Blair proposed openstack-infra/zuul-jobs master: Load buildset registry data from zuul_return  https://review.openstack.org/63724518:27
corvusSpamapS, clarkb, fungi: ^ there's a quick update to the registry role to keep my work moving; it should be forward-compatible with doing that inside of zuul itself later18:30
SpamapScorvus: neat18:31
SpamapSI just hit a situation yesterday where I have one image build, and two deploys to do in post, and I need to start pulling in your work to have a promote pipeline.18:31
clarkbcorvus: does that need a from_json filter?18:31
corvusclarkb: not in local testing18:31
corvusthough perhaps with that i could have squashed it into one task18:32
corvuslemme see18:32
corvusyep18:32
corvuswill redo18:33
clarkbok18:33
openstackgerritJames E. Blair proposed openstack-infra/zuul-jobs master: Load buildset registry data from zuul_return  https://review.openstack.org/63724518:33
corvusSpamapS: the promote pipeline and associated roles seem to be working well so far.  i don't *think* we'll need to change them to integrate the buildset/intermediate registry stuff, but i'm not 100% sure about that.18:34
*** bjackman has joined #zuul18:54
*** jamesmcarthur has quit IRC19:22
*** jamesmcarthur has joined #zuul19:23
*** jamesmcarthur has quit IRC19:27
openstackgerritMerged openstack-infra/zuul-jobs master: Load buildset registry data from zuul_return  https://review.openstack.org/63724519:30
*** jamesmcarthur has joined #zuul19:33
*** jamesmcarthur has quit IRC19:37
*** jamesmcarthur has joined #zuul19:38
*** jamesmcarthur has quit IRC19:40
*** jamesmcarthur has joined #zuul19:48
-openstackstatus- NOTICE: The StoryBoard service on storyboard.openstack.org is offline momentarily for maintenance: http://lists.openstack.org/pipermail/openstack-discuss/2019-February/002666.html20:05
*** jamesmcarthur has quit IRC20:31
*** jamesmcarthur has joined #zuul20:38
*** jamesmcarthur has quit IRC20:48
*** jamesmcarthur has joined #zuul20:52
*** jamesmcarthur_ has joined #zuul20:55
*** jamesmcarthur_ has quit IRC20:57
*** jamesmcarthur has quit IRC20:58
openstackgerritJames E. Blair proposed openstack-infra/zuul-jobs master: Correct host variable in push-to-intermediate-registry  https://review.openstack.org/63731021:43
*** rlandy has quit IRC21:58
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul master: Uncap mypy and ignore out yaml ambiguity  https://review.openstack.org/63731322:08
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul master: WIP: Add type hints to zuul.model  https://review.openstack.org/63731422:08
gundalowcorvus: clarkb did I break something?22:10
SpamapS^^ just me, noodling around with mypy22:10
clarkbgundalow: no, more github api weirdness coupled with ansible workflow creating previously unknown problems for our zuul instance22:11
clarkbgundalow: I think what ansible is doing is a valid workflow, just creates fun for caching stuff on our end22:11
corvusgundalow: you're helping us test and improve zuul scaling :)22:12
gundalowEdge cases22:13
gundalowGlad I'm of use :p22:13
corvusgundalow: you are much appreciated :)22:13
clarkbgundalow: in particular github ci status events are per commit which forces zuul to map commit shas to PRs somehow. Currently thats done with a full scan of all open PRs (we're trying to cache that better)22:13
clarkbgundalow: we thought we had that fixed but then we discovered ansible runs CI jobs on post merge commits which is a totally valid thing to do particularly since you don't have a zuul gating stuff22:14
clarkband our cache was discarding "closed" PRs22:14
corvusnow we will cache even harder :)22:14
gundalowHum, I don't think that's a new new thing.22:18
corvusgundalow: nope, but we just noticed it recently22:19
corvus(it's a performance issue, not a break, so it crept up on us)22:20
gundalowCool. Well good spot :)22:30
openstackgerritMerged openstack-infra/zuul-jobs master: Correct host variable in push-to-intermediate-registry  https://review.openstack.org/63731022:31
*** EvilienM is now known as EmilienM22:56
*** panda is now known as panda|off23:28

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!