Monday, 2020-08-03

*** rfolco has quit IRC00:51
openstackgerritPierre-Louis Bonicoli proposed zuul/zuul-jobs master: Avoid to use 'length' filter with null value  https://review.opendev.org/74231601:28
openstackgerritPierre-Louis Bonicoli proposed zuul/zuul-jobs master: Avoid to use 'length' filter with null value  https://review.opendev.org/74231601:32
*** wuchunyang has joined #zuul02:16
*** pots has quit IRC02:26
*** pots has joined #zuul02:27
*** wuchunyang has quit IRC02:36
*** bhavikdbavishi has joined #zuul04:01
*** bhavikdbavishi1 has joined #zuul04:04
*** bhavikdbavishi has quit IRC04:05
*** bhavikdbavishi1 is now known as bhavikdbavishi04:05
*** smyers has quit IRC04:16
*** evrardjp has quit IRC04:33
*** raukadah is now known as chkumar|rover04:33
*** evrardjp has joined #zuul04:33
*** smyers has joined #zuul04:33
*** saneax has joined #zuul04:38
*** Goneri has quit IRC04:44
swestcorvus: my comments were towards the modified method signatures in test_github_driver.py and not in anything unrelated to that change. I still stand by my statement that mutable defaults are never a good idea, even if currently not modified or it's 'just test code'.05:40
*** yolanda has quit IRC05:56
*** yolanda has joined #zuul05:58
*** bhavikdbavishi has quit IRC06:47
*** jcapitao has joined #zuul06:58
*** wuchunyang has joined #zuul07:19
*** frickler_pto is now known as frickler07:26
*** wuchunyang has quit IRC07:34
*** tosky has joined #zuul07:35
*** hashar has joined #zuul07:38
*** bhavikdbavishi has joined #zuul07:40
*** sgw1 has quit IRC07:40
openstackgerritIan Wienand proposed zuul/zuul master: github status api docs : update  https://review.opendev.org/74440607:47
*** holser has joined #zuul07:56
*** jpena|off is now known as jpena07:56
*** sshnaidm|afk is now known as sshnaidm07:58
*** ttx has quit IRC08:00
*** ttx has joined #zuul08:01
*** nils has joined #zuul08:07
openstackgerritJan Kubovy proposed zuul/zuul master: Scheduler's pause/resume functionality  https://review.opendev.org/70973508:19
openstackgerritJan Kubovy proposed zuul/zuul master: Separate connection registries in tests  https://review.opendev.org/71295808:19
openstackgerritJan Kubovy proposed zuul/zuul master: Prepare Zookeeper for scale-out scheduler  https://review.opendev.org/71726908:19
openstackgerritJan Kubovy proposed zuul/zuul master: Mandatory Zookeeper connection for ZuulWeb in tests  https://review.opendev.org/72125408:19
openstackgerritJan Kubovy proposed zuul/zuul master: Driver event ingestion  https://review.opendev.org/71729908:19
openstackgerritJan Kubovy proposed zuul/zuul master: WIP: Store unparsed branch config in Zookeeper  https://review.opendev.org/70571608:19
openstackgerritJan Kubovy proposed zuul/zuul master: Connect merger to Zookeeper  https://review.opendev.org/71622108:27
openstackgerritJan Kubovy proposed zuul/zuul master: Connect fingergw to Zookeeper  https://review.opendev.org/71687508:27
openstackgerritJan Kubovy proposed zuul/zuul master: Connect executor to Zookeeper  https://review.opendev.org/71626208:27
openstackgerritJan Kubovy proposed zuul/zuul master: WIP: Switch to using zookeeper instead of gearman for jobs (keep gearman for mergers)  https://review.opendev.org/74441608:27
openstackgerritJan Kubovy proposed zuul/zuul master: WIP: Switch to using zookeeper instead of gearman for jobs (keep gearman for mergers)  https://review.opendev.org/74441608:28
*** bolg has joined #zuul08:36
*** jcap has joined #zuul09:16
*** jcap has quit IRC09:16
*** jcapitao has quit IRC09:17
*** jcapitao has joined #zuul09:17
*** hashar has quit IRC09:28
openstackgerritFabien Boucher proposed zuul/zuul master: gitlab: support the approval requirement  https://review.opendev.org/74163709:54
openstackgerritFabien Boucher proposed zuul/zuul master: gitlab: support the labeled event  https://review.opendev.org/74166709:54
openstackgerritFabien Boucher proposed zuul/zuul master: gitlab: support the labels requirement  https://review.opendev.org/74189309:54
openstackgerritFabien Boucher proposed zuul/zuul master: gitlab: support the merge reporter  https://review.opendev.org/74193109:54
openstackgerritFabien Boucher proposed zuul/zuul master: gitlab: remove default mutables  https://review.opendev.org/74193809:54
openstackgerritFabien Boucher proposed zuul/zuul master: gitlab: support the MR merged event  https://review.opendev.org/74210709:54
*** wuchunyang has joined #zuul10:29
*** wuchunyang has quit IRC10:33
*** chkumar|rover is now known as chandankumar11:12
*** chandankumar is now known as chkumar|rover11:13
*** jpena is now known as jpena|lunch11:21
*** rfolco has joined #zuul11:54
*** jcapitao is now known as jcapitao_lunch12:01
*** rlandy has joined #zuul12:02
*** _erlon_ has joined #zuul12:19
*** jpena|lunch is now known as jpena12:23
cloudnullmornings12:33
tristanCcloudnull: good morning o/12:58
cloudnullp/12:58
fungiswest: if mutable defaults are never a good idea, why did python3 keep them ever after decades of prior art to inform the choice? (it made a number of other backward-incompatible changes, so certainly could have altered that detail as well)13:02
tristanCswest: i'm also curious what type of issue can you have when mutating a default? Do the modified value persist accross call?13:07
*** bhavikdbavishi has quit IRC13:07
fungitristanC: yes, it's effectively global state, so subsequent calls continue to use the updated mutable value13:08
fungiconsider it an implicit pass by reference13:09
fungii think that's the main objection some folks have, it's at odds with the python principle of "better explicit than implicit"13:10
tristanCfungi: makes me wonder in which situation would that be desirable?13:12
fungiwhich is why you'll see functions frequently define a parameter like def foo(..., bar=None, ...): and then reassign within the function like if bar == None: bar = list()13:12
fungitristanC: well, for one, if you know the function won't be called multiple times then you don't have to worry about keeping it reentrant and can dispense with the extra reassignment13:13
fungibut also if the program is designed to assume global state for something you want instantiated on the first call into that function, it can save you additional reference passing in long chains of nested function calls without separate global defines13:14
swestfungi: I think there are certain situations were mutable defaults make sense, that's probably why Python 3 allows them. But IMHO there needs to be a strong reason for that. I think "it needs a few more lines of code" doesn't fall into that category.13:14
fungiswest: yeah, i agree it's preferable to at least assert that it's being done intentionally (and why), since it's all too easy to do accidentally and then get surprised by later when your "default" values don't seem very default on subsequent calls into the same function13:16
swestfungi: I don't see any particular reason for that in Zuul, hence my review to not introduce more of that. And btw. I did not sugggest changing any of that in the existing test code.13:17
fungibut also "it was done this way previously and so i'm keeping consistency with preexisting code" is a good reason, at least until a refactor13:17
swestfungi: repeating a bad pattern just for consistencies sake sounds like a bad argument ;)13:18
fungino worse of an argument than not fixing all existing occurrences13:19
swestI'd be all for that, but apparently that doesn't seem to be wanted?!13:19
fungihaving a random mix where some are one way and some are the other can make the code harder to maintain13:19
tristanCfungi: thank you for the examples. Though it seems like they contradict with the zen of python13:20
*** jcapitao_lunch is now known as jcapitao13:20
fungitristanC: i agree with you, that's the case for the most part13:20
fungi(but also, not all python is especially zen)13:20
tristanCand thank you for the discussion, i didn't knew python behaved like that :-)13:21
fungitristanC: many folks don't, which is part of why they can be easily surprised when trying to troubleshoot the weird and unexpected behaviors resulting from unintended mutable default reuse13:21
fungithere are of course exceptions, but again they *could* be implemented in more explicit (and arguably inelegant) ways: http://effbot.org/zone/default-values.htm#valid-uses-for-mutable-defaults13:28
*** jhesketh has quit IRC14:14
*** jhesketh has joined #zuul14:16
*** sgw1 has joined #zuul14:28
*** masterpe has joined #zuul14:35
*** masterpe has quit IRC14:47
*** bhavikdbavishi has joined #zuul15:00
*** jpena is now known as jpena|off15:52
corvustobiash, swest: we just ran into the nodepool json empty string parse error (related to https://review.opendev.org/738013 ) but with a build rather than an upload16:15
*** hamalq has joined #zuul16:16
*** chkumar|rover is now known as raukadah16:18
*** nils has quit IRC16:22
*** jcapitao has quit IRC16:22
*** tosky has quit IRC16:45
clarkbcorvus: looking at the yappi situation the python-builder assemble script should install it I think16:47
clarkbcorvus: it attempts to detect any extras in the package and installs them (and yappi is listed as a nodepool extras)16:47
clarkband my laptop just crashedpulling the image. Its almost like any cpu governor change trips it16:51
*** sshnaidm has quit IRC16:55
clarkbhuh left it alone and eventually it recovered, so weird16:56
clarkbok I've confirmed there seems to be no yappi and objgraph in the image16:57
clarkbI think its a path mismatch16:59
*** bhavikdbavishi has quit IRC17:01
swestcorvus: interesting. I think in our case it was a restart/crash of a builder while multiple builder were trying to cleanup the same upload17:02
swestbut I did not have enough logs to confirm that17:03
*** jpena|off is now known as jpena17:04
*** jpena is now known as jpena|off17:17
*** saneax has quit IRC17:20
clarkbok I've figured out what the extras thing is trying to do17:21
clarkband running the steps manually locally it seems to probably be ok. That doesn't explain why we don't get yappi and objgraph in the final image though17:22
clarkboh ha I think I see the bug17:25
clarkbremote:   https://review.opendev.org/744531 Use pip install -r not -f to install extras17:29
clarkbI think ^ will fix it for nodepool and zuul image builds17:29
clarkbhowever zuul's image build isn't installing extras yet17:30
clarkbthat has me wondering how the zuul scheduler is getting pymysql17:31
fungihuh, yeah --find-links /some/path is supposed to "look for archives in the directory listing"17:33
clarkboh zuul fixes this by working around the bug17:35
clarkbhttps://opendev.org/zuul/zuul/src/branch/master/Dockerfile#L55 that is why zuul works17:35
clarkbso ya once the fix lands we can update the dockerfile for zuul to drop the workaround and nodepool should start to work17:35
openstackgerritClark Boylan proposed zuul/zuul master: Simplify dockerfile  https://review.opendev.org/74453317:39
clarkbthats the small zuul simplification based on the python-builder fix17:40
*** armstrongs has joined #zuul17:51
*** tosky has joined #zuul18:08
*** armstrongs has quit IRC18:09
*** sshnaidm has joined #zuul18:14
corvusmordred: i'm confused about node_version.  what in 739047 actually uses it?18:29
corvusis it build-javascript-deployment?18:30
corvusmordred: that should have the variable set already18:31
*** hashar has joined #zuul18:31
*** hashar has quit IRC20:23
*** sgw1 has quit IRC20:47
*** sgw1 has joined #zuul20:49
tristanCis there a way for a child job to erase attribute inherited from a parent job? For example to provide it's own set of required-project20:50
tristanCat first glance that doesn't seem possible, but perhaps there could be a semantic to indicate an attribute shouldn't be extended from parent definition?20:57
corvustristanC: no; the usual solution is to add in an extra entry to the hierarchy21:49
mordredcorvus: ah - yeah - there's an issue there - it's not needed on publish-javascript-to-netlify21:55
mordredbut we do need to set it on the test job because publish-javascript-to-netlify gets it from the js-build base job21:56
openstackgerritMonty Taylor proposed zuul/zuul-jobs master: Add a job for publishing a site to netlify  https://review.opendev.org/73904721:56
corvusmordred: ah that makes more sense :)21:56
tristanCcorvus: in our situation we would like to discard the parent attribute. It seems like one way to solve this is using tenant config shadow and provide our own copy of the job21:57
tristanCI was wondering if it is a good idea to support this in the job definition, for example using an explicit null value to indicate an attribute should not be inherited21:59
corvustristanC: i encourage you to consider another approach.  think of this as indicating that the modeling of the job is not currently correct.  by adding another layer to the hierarchy, you can add in what's needed in a more fine-grained manner.21:59
corvustristanC: er, wait, are you not in control of the parent job?21:59
tristanCcorvus: so the situation is another zuul using the tripleo-ci-base job provided by opendev.org/openstack/tripleo-ci/22:00
corvustristanC: if it's the case that you don't control the parent job, then yes -- first i'd suggest maybe talking to the folks who do control it to see about adding in another layer (eg, devstack-minimal -> devstack).  or failing that, then, yes, shadowing would be appropriate (hopefully while being able to re-use roles)22:01
corvustristanC: and the issue is that the required-projects over-specify the names?  (eg, they specify "opendev.org/openstack/tripleo-quickstart" instead of "openstack/tripleo-quickstart" ?)22:03
tristanCcorvus: the trick is that tripleo-ci-base job is used indirectly, i think the parenting start from one of its child22:03
corvustristanC: why is required-projects wrong for this case?22:04
corvuszuul-maint: i think it's time to send this email re v4/v5; how does this look?  https://etherpad.opendev.org/p/6Q5yrO5mVPUKIRMDW3tm22:05
fungicorvus: lgtm, thanks!22:07
clarkbcorvus: maybe link to docs for eahc of the 3 required items?22:08
corvusthe relnotes do that, but i'll copy it in22:10
tristanCcorvus: it seems like there is a conflict or something, but a similar issue happened with irrelevant-files, where basically a job would like to override an attribute (or change the parent) of a parent job22:10
corvustristanC: right, it's an issue, it's just the solution varies depending on the circumstances; i'd like to understand this circumstance more22:11
corvus(it's unclear to me why a project would be listed in required-projects if it's not required)22:11
openstackgerritClark Boylan proposed zuul/zuul-jobs master: Fix partial subunit stream logging  https://review.opendev.org/74456522:12
ianwthis question re status updates that zuul puts into github -- https://github.com/pyca/cryptography/pull/5341#issuecomment-66757460622:14
ianwi've tried to bootstrap myself on what's happening ... so we're not putting individual job results into githubs results for ... many reasons ... but basically it doesn't work with pipelines22:15
ianwdoes anyone have any other thoughts to respond with?22:15
tristanCcorvus: perhaps the job implementation uses a firstfound lookup that is affected by what is present on the test instance...22:16
corvusianw: iirc, opendev isn't using checks api; we could switch to that22:16
corvustristanC: i don't understand22:16
clarkbcorvus: is that a pipeline config or something we hvae to change in the zuul ini config?22:17
corvustristanC: i'd like to help, but in order to do so, i think i need a clear statement of the underlying problem22:17
corvusclarkb: pipeline i think22:17
tristanCwell I guess enabling a different parent hierarchy is not a good idea and using an appropriate job hierarchy is a better solution22:17
ianwcorvus / clarkb: yes, i was bootstrapping myself on the checks api which is why i came up with https://review.opendev.org/#/c/744406/1/doc/source/discussion/github-checks-api.rst22:19
corvusianw: let me check one other thing first22:19
ianwbut it's not clear to me if this will provide more info in the results overview22:19
ianwcorvus: no rush :)22:19
ianwthe other thing is how to setup checks on pushes to master22:20
ianw... i had a bit of a blind spot to this because post-hoc testing showing your push was broken is not a thing i think about, thankfully :)22:22
clarkbianw: for gerrit you can listen to update to refs/heads/*22:23
clarkbI imagine we can do similar with github22:24
ianwyeah i think it has a push event ... i don't want it to go mad though as i don't have any experience with it22:24
corvusianw: i expect the buildset page to be the status url on report22:24
corvusianw: however, it looks like it's just reported the top level dashboard url, right?22:25
ianwcorvus: i think that might be sufficient.  yeah, it goes to openstack.org status or something totally unrelated22:25
corvusianw: then i think it's worth looking into why that isn't being set as expected22:25
ianwok, https://zuul.openstack.org22:25
clarkbzuulians https://review.opendev.org/#/c/744107/1 may be a good one to approve to rebuild nodepool images with the python extras packages22:26
clarkbI've rechecked https://review.opendev.org/#/c/744533/1 too now that the depends on has merged to rebuild and test with the proper parent image state22:26
tristanCcorvus: not sure if that's it, but for example here the job is doing things based on what is available on the test instance: https://opendev.org/openstack/tripleo-ci/src/branch/master/roles/run-test/templates/toci_gate_test.sh.j2#L14322:27
tristanCcorvus: (the v4/v5 announces looks great to me)22:28
corvustristanC: my first thought is still: if it's not actually required, maybe it shouldn't be in required-projects, at least at that level.22:29
corvusianw: i'm *especially* puzzeled why it would use that url22:29
tristanCcorvus: thank you for offering to help, but i think you are right and the current modeling of the job is not correct22:30
corvusianw: oh i think i see22:30
ianwcorvus: perhaps the detail link is the final one that ends up in the status ... https://review.opendev.org/#/c/744384/1/zuul.d/pipelines.yaml would i think override this22:32
ianwhrm it looks like it calls formStatusUrl() https://opendev.org/zuul/zuul/src/branch/master/zuul/model.py#L278122:34
ianwhttps://opendev.org/zuul/zuul/src/branch/master/zuul/driver/github/githubreporter.py#L23222:34
openstackgerritJames E. Blair proposed zuul/zuul master: github: use the same status url for commit status as checks  https://review.opendev.org/74457022:34
corvusianw: ^ that match your understanding?22:35
ianwcorvus: haha yes you beat me to it :)22:35
corvusianw: having said that, perhaps opendev should switch to using checks api as well22:36
ianwaiui, moving to the checks api doesn't really do that much different?22:37
ianwit's still the overall pipeline status that is reported22:37
corvusianw: not at this point; mostly it would change how it's represented in the ui, and also allow file comments22:37
ianwright,that's what i was learning about yesterday, how the check run object seems at first glance to be a really good analogue for a pipeline, but isn't :)22:38
corvusianw: biggest thing is we'd show up in the "checks" tab22:38
corvusanyway, nbd22:39
ianwi don't mind trying, i guess i can just modify it in the pyca/project-config and recheck on our test change?22:40
corvustobiash: https://review.opendev.org/74440622:42
corvusianw: i'm 95% certain my change will fail tests (probably need to update test fixture data to match); switching to checks will probably resolve the issue sooner22:43
ianwcorvus: https://review.opendev.org/744573 Switch to checks API  look about right?22:48
openstackgerritClark Boylan proposed zuul/zuul-jobs master: Fix partial subunit stream logging  https://review.opendev.org/74456522:52
*** tosky has quit IRC23:11
openstackgerritIan Wienand proposed zuul/zuul master: github docs: clarify situation with checks/status API  https://review.opendev.org/74457723:13
ianwcorvus: ^ reflecting what i think i've learnt :)23:14
*** hamalq has quit IRC23:50

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