Monday, 2018-06-11

tristanCjohanssone: i'm no pip expert, though you can grab the web stuff from http://tarballs.openstack.org/zuul/zuul-content-latest.tar.gz00:36
*** yolanda has joined #zuul03:44
*** yolanda_ has quit IRC03:46
*** swest has joined #zuul04:35
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Change test prints to log.info  https://review.openstack.org/55405805:38
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Fix logging in tests to be quiet when expected  https://review.openstack.org/55405405:38
*** Rohaan has joined #zuul05:39
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Fix logging in tests to be quiet when expected  https://review.openstack.org/55405405:44
tobiashmordred: I took over your logging changes, hope that's ok05:44
*** hashar has joined #zuul05:52
*** AJaeger has quit IRC05:54
*** AJaeger has joined #zuul05:58
openstackgerritMerged openstack-infra/zuul master: Add timestamps to multiline debug message logs  https://review.openstack.org/57284506:06
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Fix logging in tests to be quiet when expected  https://review.openstack.org/55405406:22
*** pcaruana has joined #zuul06:26
RohaantristanC: ping06:45
tristanCRohaan: Hey!06:48
RohaantristanC: I was trying to install rh-python35-python-openshift, but yum complains : No package rh-python35-python-openshift available. Which repository needs to be enabled for this package?06:55
*** bhavik1 has joined #zuul06:59
tristanCRohaan: it's only in sf-master, it will be part of the next release. you can try it out using this repo: http://softwarefactory-project.io/repos/sf-release-master.rpm07:01
tristanCRohaan: or you can install using "pip install openshift" as root07:01
* Rohaan checks07:05
*** bhavik1 has quit IRC07:11
RohaantristanC: Did you try this with a local openshift instance or some hosted openshift instance?07:49
*** jpena|off is now known as jpena07:50
tristanCRohaan: only with a dedicated all-in-one "oc cluster up" setup07:50
RohaanI tried with one Openshift instance which we get with subcribing to Openshift.io, but seems like we don't have access to create namespaces there :(07:52
RohaanNow I'm trying with a local openshift cluster on my machine.07:52
tristanCarg, yes this proposed implementation needs to be able to create project and use the kubectl ansible connection plugin to run task on the pods07:53
RohaanI'm running sfactory in Virtualbox in a centos instance07:53
tristanCwell i wrote another driver that create pods in an existing project, but that's not part of the current container spec implementation in zuul, fwiw this driver is: https://review.openstack.org/#/c/535557/07:54
tristanCRohaan: you can run oc cluster up on the zuul host or on a seperate instance. I've tried both the fedora origin package and the upstream release binary on centos too07:55
RohaanO, would it be okay if I do on Zuul host?07:56
Rohaanlemme try07:56
tristanCyes sure, just grab the server binary from https://github.com/openshift/origin/releases and run it along side zuul07:57
rcarrillocruztristanC: the creation of the openshift node for a given job will be in its project. How is that creation, is it a template where you just plumb the node type from nodepool or is that created within python code? I assume the latter...08:06
rcarrillocruzasking cos...it would be VERY interesting if the driver could allow pushing a $deployment_template , thinking of networking use cases were we spin up a topology per a given job08:07
*** Wei_Liu has joined #zuul08:09
tristanCrcarrillocruz: afaiu, it's better to create a new project for each PR so that they each get isolated image registry08:11
tristanCrcarrillocruz: the current driver i propose create the project and service account using python sdk here: https://review.openstack.org/#/c/570667/3/nodepool/driver/openshift/provider.py L8808:11
rcarrillocruzagreed, not saying the opposite. What I'm asking is the driver is I assume just addressing the creation of the PR node08:11
rcarrillocruzin terms on how you are developing, wondering if you create with python or you create a YAML template then push with kubectl/openshift plugin08:12
rcarrillocruzso python08:12
rcarrillocruzgotcha08:12
tristanCrcarrillocruz: then the job starts with an access to this namespace, the initial implementation just build an image and start a single pod with a sleep command: https://review.openstack.org/#/c/570669/2/playbooks/openshift/deploy-project.yaml08:13
rcarrillocruzalso tristanC , i've started poking at kubevirt and it works, i can get VMs on openshift08:13
rcarrillocruzit's VERY intriguing for zuul purposes :-)08:13
rcarrillocruzgetting in a world where you can have zuul in openshift running containrs when possible and VMs when not possible is very interesting08:14
tristanCbut this openshift-base job could easily be extended to use a more complex deployment recipie, e.g. to deploy cross project environment08:14
tristanCultimately, here's what looks like a job to test a container deployment: https://softwarefactory-project.io/draft/zuul-openshift/#orgheadline1008:15
*** electrofelix has joined #zuul08:16
tristanCrcarrillocruz: it seems like kubevirt is another openshift use case that may need another nodepool. Does it setup floating ip and ssh access, presumbably setup with cloud-init?08:18
rcarrillocruzyeah, if you look at the kubevirt demo repo, they spin up a cirros pod by attaching to it a volume for cloud init consumption08:19
rcarrillocruzhttps://raw.githubusercontent.com/kubevirt/demo/master/manifests/vm.yaml08:19
tristanCthat's neat :-)08:21
*** gtema has joined #zuul08:28
rcarrillocruzmordred , corvus : ^ , openshift *can* run VMs08:34
rcarrillocruzi tested it over the weekend08:34
RohaantristanC: Hey, I've installed and logged into openshift. Is there some way to force nodepool to create empty openshift project again? I was at step 3.1 with previous openshift instance08:51
RohaanI've tried restarting nodepool/zuul services but that doesn't seem to create it08:52
tristanCRohaan: unfortunately, you can swap out nodepool provider like that, you need to first set it to max-servers: 0, then remove it...08:56
tristanCRohaan: since it's a test setup, I think you can "systemctl stop zookeeper; rm -Rf /var/lib/zookeeper/version-2/*; systemctl start zookeeper"08:57
tristanCthat should purge nodepool database08:57
tristanC /you can not* swap out nodepool provider/08:58
openstackgerritFabien Boucher proposed openstack-infra/zuul master: Accumulate errors in context managers - part 2  https://review.openstack.org/57402809:01
openstackgerritFabien Boucher proposed openstack-infra/zuul master: Accumulate errors in context managers - part 2  https://review.openstack.org/57402809:01
RohaantristanC: I restarted zookeeper, but now nodepool list returns nothing :(09:03
tristanCRohaan: perhaps restart the nodepool service, or does the openshift-project label has a min-ready value?09:05
tristanC(systemctl restart rh-python35-nodepool-launcher)09:05
Rohaanyes, I restarted nodepool also09:06
RohaanHow can I check if openshift-project label has a min-ready value?09:07
tristanCRohaan: could you share /var/log/nodepool/launcher.log ?09:07
tristanCand /etc/nodepool/nodepool.yaml  , label definition is in this file09:08
Rohaannodepool.yaml: https://pastebin.com/vSzdLt1k09:10
Rohaannodepool launcher.log : https://pastebin.com/3B0ijhng09:10
tristanCRohaan: oh, you are missing the openshift provider, you need to add https://softwarefactory-project.io/draft/zuul-openshift/#orgheadline9 to /etc/nodepool/nodepool.yaml09:12
tristanCno need to restart nodepool, it auto reloads the configuration when it changes09:13
*** fbo has joined #zuul09:14
tristanCRohaan: make sure to follow all the steps of that draft zuul-openshift documentation09:15
Rohaanah, sorry09:16
RohaanI had added that in /root/config/nodepool/openshift.yaml file09:17
tristanCRohaan: then you need to git commit && git push that file to trigger the config-update that will copy the content in /etc/nodepool/nodepool.yaml09:18
RohaantristanC: Have I added it correctly? https://pastebin.com/8WnhfXmF09:22
tristanCRohaan: that should work, though next time you better merge the "providers" and "labels" list to not confuse the yaml parser09:24
RohaanNow previous nodepool providers are back but still I don't see openshift project :(09:29
tristanCRohaan: could you paste new launcher.log ?09:31
Rohaanhttps://pastebin.com/b52g0sKV09:32
tristanCRohaan: you need to setup nodepool .kube/config: sudo -u nodepool oc login -u developer https://localhost:844309:34
RohaanI remember I did that. but let me try again09:35
RohaanHm, .kube/config just got created. Earlier I used to login successfully but I used to get a small "stat .: permission denied" error/warning09:40
tristanCRohaan: hum, perhaps the sudo needs to be ran from a public directory, not from /root09:41
RohaantristanC: Yay, I can now see openshift provider https://pastebin.com/Pcu7Rj5409:47
tristanCRohaan: nice!09:47
RohaantristanC: Hey, Have I changed .zuul.yaml in demo project correctly? https://pastebin.com/dpcXLAj5 . Somehow I can't see job status in zuul console after doing git review10:05
tristanCRohaan: I think you need to remove the initial "- project" statement and only keep the one that sets the openshift-test job10:07
RohaanDo I need to create a patch again? Or would amending and doing git review again would trigger it?10:10
RohaanRight now I'm just amending it and pushing it again10:11
tristanCboth action would work, though it sounds better to amend10:12
RohaanSomehow it's not coming up, Do you know where zuul store it's logs?10:15
Rohaanhttps://ibin.co/44uRhpaq0ztW.png10:17
RohaantristanC: Any idea?10:21
tristanCRohaan: clicking the "toggle ci" button at the bottom should show zuul configuration errors in gerrit comments10:21
tristanCRohaan: otherwise you need to look at /var/log/zuul/scheduler.log10:22
RohaantristanC: Thanks. I see it's complaining about base-openshift being not defined https://pastebin.com/jyVEhrXX10:24
tristanCRohaan: you need to copy those file in /root/config/playbooks: https://review.openstack.org/#/c/570669/10:25
tristanCand define the openshift-base job in /root/config/zuul.d/openshift.yaml using this: https://review.openstack.org/#/c/570669/2/zuul.yaml10:25
tristanCthen commit and push those10:26
*** Wei_Liu has quit IRC10:31
RohaantristanC: I found mistake, in https://review.openstack.org/#/c/570669/2/zuul.yaml job name is openshift-base but in doc we are writing base-openshift . Now it seems to be coming up10:35
*** Wei_Liu has joined #zuul10:35
Rohaanbut it fails giving : openshift-test finger://dhcppc4:7979/7e3edec464a942a9be90d17879af6fd6 : RETRY_LIMIT in 1s10:36
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Fix signature of overridden methods in LogStreamHandler  https://review.openstack.org/57420410:44
tristanCRohaan: to debug RETRY_LIMIT, change the zuul handler to DEBUG in /etc/zuul/executor-logging.yaml; then "systemctl restart rh-python35-zuul-executor";10:45
tristanCRohaan: then run "/opt/rh/rh-python35/root/usr/bin/zuul-executor verbose"10:46
tristanCRohaan: that will make the executor write ansible-playbook (the job execution) output to /var/log/zuul/executor.log10:46
tristanCRohaan: you can comment "recheck" on the code review to retrigger the job10:46
RohaantristanC: Thanks. Getting some python import errors there https://pastebin.com/QqyuHSwr10:52
tristanCRohaan: oh, after you installed the "sf-release-master.rpm", did you run "yum update -y" ?10:54
Rohaanoops10:54
openstackgerritFabien Boucher proposed openstack-infra/zuul master: Add a config_errors info to {tenant}/config-errors endpoint  https://review.openstack.org/55387310:56
openstackgerritFabien Boucher proposed openstack-infra/zuul master: Add .stestr to .gitignore  https://review.openstack.org/57421311:00
RohaantristanC: After doing `yum update -y` do I need to restart nodepool also?11:02
tristanCRohaan: I guess mostly ansible got upgraded to the version 2.5, then you can just recheck the job without restarting the zuul-executor11:04
tristanCif zuul got upgraded, then you need to re-apply the tiny patch to support openshift resource, it's: https://review.openstack.org/#/c/570668/11:05
*** GonZo2000 has joined #zuul11:08
*** jpena is now known as jpena|lunch11:19
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Switch content type of public keys back to text/plain  https://review.openstack.org/57422011:23
*** Rohaan has quit IRC11:36
*** Rohaan has joined #zuul11:50
*** jpena|lunch is now known as jpena12:03
*** Rohaan has quit IRC12:03
*** rlandy has joined #zuul12:17
*** rlandy is now known as rlandy|rover12:18
*** pcaruana has quit IRC12:39
*** odyssey4me has quit IRC12:39
*** odyssey4me has joined #zuul12:39
*** Wei_Liu has quit IRC12:45
*** Wei_Liu has joined #zuul12:45
*** myoung|off is now known as myoung13:19
*** pcaruana has joined #zuul13:32
openstackgerritMerged openstack-infra/nodepool master: Fail quickly for disabled provider pools  https://review.openstack.org/57376213:35
openstackgerritMonty Taylor proposed openstack-infra/zuul master: Hide queue headers for empty queues when filtering  https://review.openstack.org/57258813:36
*** GonZo2000 has quit IRC13:38
openstackgerritMerged openstack-infra/nodepool master: Fix 'satisfy' spelling errors  https://review.openstack.org/57382313:42
Shrewsmordred: thx13:44
openstackgerritMerged openstack-infra/zuul master: Add .stestr to .gitignore  https://review.openstack.org/57421313:46
openstackgerritMerged openstack-infra/zuul master: github: Optimize getPullReviews() a bit  https://review.openstack.org/57007713:46
*** gtema has quit IRC13:50
openstackgerritFabien Boucher proposed openstack-infra/zuul master: Add tenant yaml validation option to scheduler  https://review.openstack.org/57426513:52
openstackgerritFabien Boucher proposed openstack-infra/zuul master: Add tenant yaml validation option to scheduler  https://review.openstack.org/57426513:55
openstackgerritFabien Boucher proposed openstack-infra/zuul master: Add tenant yaml validation option to scheduler  https://review.openstack.org/57426513:56
*** ianychoi has quit IRC14:02
*** needssleep is now known as TheJulia14:15
openstackgerritMerged openstack-infra/nodepool master: Correctly use connection-port in static driver  https://review.openstack.org/56933914:22
corvusi need to run an errand this morning that could take a while; i hope to be back around lunch but it's hard to say.14:25
pabelangerfetch-zuul-cloner seems to only work with a single zuul connection, multiple will fail14:46
openstackgerritMerged openstack-infra/zuul master: Make file matchers overridable  https://review.openstack.org/57174514:46
openstackgerritMonty Taylor proposed openstack-infra/nodepool master: Consume Task and TaskManager from openstacksdk  https://review.openstack.org/41475914:54
openstackgerritMonty Taylor proposed openstack-infra/nodepool master: Switch to RateLimitingTaskManager base class  https://review.openstack.org/57428714:57
mordredShrews, corvus: ^^ those two patches, along with "Import rate limiting TaskManager from nodepool https://review.openstack.org/574285" - should be basically a no-op/cleanup from a nodepool perspective, but should help people over in sdk land see the whole picture15:00
mordredI've got at least 2 people who have expressed interest in improving the caching story over there, but if you don't understand the nodepoool task manager you really can't touch the shade/sdk caching code15:01
mordredI broke it up into two patches so that we could see the is-a-thread to has-a-thread change in place- that first patch should basically work today as-is15:03
Shrewsmordred: ++15:05
Shrewsmordred: why does 547285 depend on 414759?15:09
Shrewsseems backwards, but i havent look too closely yet15:10
mordredShrews: just so we can make sure that the has-a-thread rework is good in nodepool before importing it into sdk15:12
mordredthe patches don't *actually* depend on each other - but if nodepool reviewers find a flaw in 414759, I don't want the flawed code landing in sdk-land15:13
Shrewsk15:13
openstackgerritMonty Taylor proposed openstack-infra/nodepool master: Consume Task and TaskManager from openstacksdk  https://review.openstack.org/41475915:21
openstackgerritMonty Taylor proposed openstack-infra/nodepool master: Switch to RateLimitingTaskManager base class  https://review.openstack.org/57428715:21
openstackgerritMerged openstack-infra/nodepool master: Log connection port in static driver on timeout  https://review.openstack.org/56933415:39
openstackgerritMonty Taylor proposed openstack-infra/nodepool master: Use openstacksdk instead of os-client-config  https://review.openstack.org/56615815:42
*** electrofelix has quit IRC15:53
*** dtruong_ has quit IRC16:05
*** GonZo2000 has joined #zuul16:30
openstackgerritqingszhao proposed openstack-infra/nodepool master: fix tox python3 overrides  https://review.openstack.org/57434417:03
*** jpena is now known as jpena|off17:13
openstackgerritDoug Hellmann proposed openstack-infra/zuul-jobs master: allow build-python-release consumers to override python version  https://review.openstack.org/57437318:17
*** dtruong has joined #zuul18:31
clarkbtristanC: I wanted to followup on the nodepool azure driver. Any chance you would be interested in working with kata to see if you can get that tested? I can introduce you to people and help too18:34
*** myoung is now known as myoung|lunch18:52
openstackgerritDoug Hellmann proposed openstack-infra/zuul-jobs master: allow build-python-release consumers to override python version  https://review.openstack.org/57437319:09
*** bhavik1 has joined #zuul19:14
openstackgerritDoug Hellmann proposed openstack-infra/zuul-jobs master: allow build-python-release consumers to override python version  https://review.openstack.org/57437319:17
*** GonZo2000 has quit IRC19:48
*** bhavik1 has quit IRC19:58
-openstackstatus- NOTICE: Zuul was restarted for a software upgrade; changes uploaded or approved between 19:30 and 19:50 will need to be rechecked19:58
*** myoung|lunch is now known as myoung19:59
*** dkranz has quit IRC20:05
clarkbcorvus: not sure if you saw but on friday I noticed that github event handling in zuul doesn't always handle depends on properly20:26
corvusclarkb: no, i missed that20:26
corvusclarkb: have more detail yet?20:26
clarkbcorvus: http://paste.openstack.org/show/723011/ shows the logs from that. The TL;DR is that the depends on processing path wans't handled properly when I edited the PR to add the depends on. I had to push a new "patchset" for it to process the depends on20:27
corvusclarkb: i bet we can come up with a test case for that; i think our fake github is sufficiently expressive for that20:28
corvusclarkb: do you know what the event github sent was?20:28
clarkbcorvus: I don't. But reading teh code in independent pipeline manager's checkForChangesNeededBy the issue is we return True (and check for True) to know if the depends on are managed properly but we return the list of needed changes if there are needed changes. Then lesewhere in independent manager we call addChange() on those changes to tie them up properly. But in the base manager class we check against true20:30
clarkbonly20:30
clarkb_processOneItem() specifically doesn't handle if a list of needed changes is returned20:30
clarkbso I think this may be an issue on any event if the event does not go through the addChange() path20:31
corvusclarkb: i think i understand.  so it's github-only by virtue of the fact that changing a gerrit commit message means a new patch, but in github does not.  i do think we ought to be able to repro in a test case.20:34
clarkbya, where I am still a little lost reading the code is how a change gets into the pipeline queue as an update PR event without having gone through the addChange path somewhere along the way20:36
corvusit should not be able to20:36
clarkbsince getChangeQueue (which creates the queues in independent pipelines) creates them as part of addChange()20:39
clarkbmaybe it was using cached data?20:39
clarkbalso there is a possibly related problem of sometimes changes show up in the third party check pipeline twice. tobiash said that was a known issue he was debugging though20:40
clarkbI'll start by trying to write this up into a bug as it doesn't sound like a known issue20:42
*** hashar has quit IRC20:44
tobiashclarkb: actually I planned to debug the double enqueue this week but haven't done so far21:12
clarkbtobiash: that is ok, week only just started :)21:13
tobiashclarkb: regarding adding dependsin later, I also observed this and I think it doesn't update the cached change in this case isn't really a new patchset21:14
tobiashSo I guess we need to handle some event properly21:15
tobiashI saw that dependson issue also in our deployment btw21:16
corvusclarkb: moving our discussion about the log issue here --  ( http://logs.openstack.org/20/564220/1/check/devstack-multinode/7a4d81d/ara-report/result/ba7fbc30-b825-4650-a903-a6c4afdcbcb8/ )21:17
corvusare we certain that any v3-native multinode jobs are working?21:17
corvusthat error looks like the 'command' module is being called without the zuul_log_id argument.  that argument is set by the zuul_stream callback plugin inside v2_playbook_on_task_start.  i'm starting to wonder if that method isn't always called in the same way that it previously was.21:18
corvustobiash: ^21:19
clarkbah ok you are about where I am21:20
corvusi'm looking at the job-output.json from that build, and i see some  "zuul_log_id": null  in it21:25
tobiashAra says it's a shell zask but the shell rask before is ok21:25
tobiashcorvus: maybe within the with_items it works differently now?21:26
corvuswhat's the previous shell task that's okay?21:27
tobiashhttp://logs.openstack.org/20/564220/1/check/devstack-multinode/7a4d81d/ara-report/result/1ee921c4-34c4-4294-bf7d-d9b042ea4a6e/21:27
corvustobiash: that's on a different host21:27
corvuslooks like http://logs.openstack.org/20/564220/1/check/devstack-multinode/7a4d81d/ara-report/result/0c83e4f7-8241-4edf-9df6-8cf0455c9775/ is the previous shell task on that host, and it didn't have the error21:28
clarkbmaybe it doesn't call v2_playbook_on_task_start once for every node running the task?21:28
corvustobiash: the failed task isn't in a with_items, is it?21:29
corvusit looks like it's just in a when block21:29
tobiashAh, so it's not with_items but a task which ix executed on several hosts at once21:29
corvus(but it is in a block, which is notable)21:29
tobiashclarkb: yes, that's maybe the problem21:32
tobiashcorvus: thos might be testable with tox-remote if we fake two ansible hosts with the same ip21:33
corvus++21:33
clarkbreadingthe code I think it actually calls the callback on each host21:37
clarkbthe free StrategyModule's run method seems to do this21:37
corvusmost of the "zuul_log_id" entries in the json have uuids.  only one task has "null" as the value.  it's the apt-get update command in the pre-playbook.  it's null for both hosts.21:38
corvusi don't see the connection yet21:38
tristanCclarkb: providing an azure account, or shell access to a system with one already setup, i could find some time to get it working. Though I can't promise to maintain it and it's probably better if someone from the infra^Wwinterscale team be assigned to it21:39
corvus(i suspect that it's the proximate cause for the error though -- you get to write to one log file called "None", but not a second time)21:39
corvustristanC: we don't really "assign" people :)21:39
corvuspeople volunteer for things21:40
tobiashcorvus: is there something else special with this command task.21:44
tobiash?21:44
tristanCcorvus: heh, my bad wording. though it is a proprietary service, so supporting it should deserve some sort of compensation :-)21:44
tobiashMaybe task.action doesn't match 'command' or 'shell' in this case21:45
corvustobiash: hrm, i can't see why it wouldn't...21:45
tristanCclarkb: and moving forward, i guess we need to reconsider some sort of label restriction per project or tenant21:45
clarkbtristanC: yes, we have an open story for that and I think to start we can operate on an honor system and if people abuse it go from there21:46
tobiashcorvus: i need sleep now. If you need help with this just ping me and I try to reproduce and debug this tomorrow.21:47
corvustobiash: thanks21:49
tristanCclarkb: fair enough. well let me know when i can start putting the code together21:49
*** myoung is now known as myoung|off21:50
corvusi think we want to finish reworking the driver interface and make sure it can handle containers, then add more drivers21:50
tristanCcorvus: the first step is more of prototype and get the sdk working (e.g. create instance, clean-up leaks, etc...), that shouldn't be hard to rebase on driver interface change21:51
corvustristanC: yep21:52
clarkbya I think both of those things can be worked in parallel particularly if we have azure access in the near future21:52
tobiashcorvus: one thing I noticed is that the task is skippex on one node21:55
tobiashMaybe that's the special thing21:55
clarkbthe action value comes out of the yaml parser for tasks21:56
corvusthe other task is a role handler.  i don't know what a role handler is21:56
corvusok, now i understand what a role handler is21:57
corvusanyway, that's a special thing about it21:57
tobiashThe failed task is skipped for compute1 and fails for controller21:58
tobiashSo there could be a side effect of the on skipped callback21:58
corvusso far, we have null values on: 1) a handler in a role in a playbook; 2) a task with a when argument in a block with a when argument in a role in a playbook21:59
corvusadd "after a skipped task" to #2 :)21:59
corvusi don't think we can add that to #1 though22:00
clarkbit is also a parse error to not have a task action value22:00
corvusi'm going to start seeing if i can reproduce any of this locally22:03
clarkbok, I was wrong about running the v2_playbook_on_task_start() function for each host. Reading the linear strategy instead (which appears to be default), it will only do this for the first host,task pair in its loop22:18
clarkbbut it also seems to have always had this behavior22:19
corvusclarkb: that probably is good enough if we assume that the hosts are distinct (we actually can't because of the new ability to add the same host to the inventory twice, but that's really a separate problem.  that's not what we're running into here.  so let's set that aside for later)22:22
corvusclarkb: it has also occured to me that we're modifying a data structure here.  i wonder if there's a code path in ansible 2.5 where this modification is no longer permanent.  like, we get passed a copy of the task structure.22:23
corvusclarkb: unless i misunderstood what you said about the first host,task pair...22:24
clarkbcorvus: my reading of it is that you have task command to echo foo that gets turned into a list of (hostx, task_command_foo), (hosty, task_command_foo)22:25
corvusclarkb: do you mean that it only runs once for each task?  (and that one invocation just gets whichever host happens to be first?)22:25
clarkbthe first time through that list it will run the callback against task_command_foo. What I am not sure about is if that task object is the same for hosty and hostx or if that chaged (but it might explain the behavior if it is a different task object)22:25
clarkbcorvus: yup that22:25
openstackgerritMerged openstack-infra/zuul-jobs master: allow build-python-release consumers to override python version  https://review.openstack.org/57437322:27
clarkbit does look like blocks play into this as well in the get next task code22:29
corvusi haven't been able to reproduce it by including this role: http://paste.openstack.org/show/723237/22:31
clarkbthis quickly gets into internal ansible state machien stuff and I'm losing my way through it. But d6872a7b070d1179e7d76bcda1490bb7003c4574 and b107e397cbd75d8e095b08495da2ac2aad3ef96f appear suspicious22:33
clarkbthat second one in particular, I think meant the old behavior was that all the tasks were premade and when you iterate through that host,tasks list they will share task objects22:35
clarkbbut now I don't know that that happens as they don't cache them upfront22:35
*** EmilienM|PTO is now known as EmilienM22:41
corvusi have been able to get a null log id by using handlers22:41
clarkbcorvus: what does that look like?22:44
clarkb(I'm not sure I've seen that example)22:44
corvusclarkb: patterned after configure-mirrors role22:44
corvusthere's a handlers/main.yaml with the task in it, and then elsewhere, something says "notify: [task name]"22:45
clarkband its the handler itself in handlers/main.yaml that breaks?22:46
corvusclarkb: not so much breaking as being called with zuul_log_id=null22:46
*** snapiri has quit IRC22:47
*** snapiri has joined #zuul22:47
corvusclarkb: in the real exemplar, this happened first, so it didn't break either (it's okay to have a log file called "log-None".  but only once.  the second time breaks)22:47
corvusclarkb: so the block task in devstack (which i still haven't gotten to run with a null task locally) broke because it ran after the handler task had already written a log-None file22:48
clarkbwhy can't it just keep writing to the existing file? similar to how the zuul_log_id will be reused by tasks in a job I think22:48
clarkboh each log is its own uuid22:49
clarkbI thought it was the job uuid for some reason22:49
corvusclarkb: yeah.  i suspect it can't write to the file because the first task is done as root, the second as 'stack' user22:50
corvusthus the permission denied error on the file22:50
corvuswhich, i guess is something i'm missing from my local test :)22:51
clarkbjust thinking out loud here, if each task gets its own uuid for the log file anyway, each task already has a built in uuid. We could possibly use that instead of passing in an explicit argument22:52
corvusclarkb: that seems plausible22:52
clarkbgranted it is task._uuid so maybe that is why we provide our own22:53
corvusi've got something like this in a test locally: http://paste.openstack.org/show/723242/  but it's still not failing on the 'test block' task23:11
corvusi think i've got all the significant things23:12
clarkbon the block side of things maybe you need it to have some nodes evaluate to false?23:16
clarkbthe discover nodes one will only run on one of the multiple hosts due to a when clause23:16
corvusclarkb: oh good point23:16
corvusstill no joy23:20
corvus(and i have compute1 and controller in the same inventory ordre)23:21
corvusi don't have any groups though23:21
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool master: Implement an Azure driver  https://review.openstack.org/55443223:24
corvusclarkb: i'm nearing EOD, i wrote up a story here: https://storyboard.openstack.org/#!/story/200252823:36
corvusmordred, tobiash: ^ that's as far as i've gotten23:36
openstackgerritJames E. Blair proposed openstack-infra/zuul master: DNM: reproducer for 2002528  https://review.openstack.org/57448723:38
corvusmordred, tobiash, clarkb: ^ that's my incomplete attempt to modify test_zuul_console to reproduce that23:39
clarkbcorvus: before you go I dug up the original from oepnstack-helm http://logs.openstack.org/55/574055/3/check/openstack-helm-infra-ubuntu/9e9ac15/ara-report/result/54b51530-2857-4003-83e2-53fe446808b0/ that is failig on a shell task without a block or conditional at least not at the level the task is defined. Its pretty boring other than a delegate to23:44
corvushuh23:45
clarkbit is the running of that task on the second node that makes it unhappy (runs fine on the first node)23:48
corvuswhy isn't the previous task on node-1 a pause?23:48
clarkbI was just wondering that myself23:49
clarkbif you filter to node-1 there in ara there is no task at all23:49
clarkbperhaps pause is implicitly a one node thing in ansible?23:50
clarkbit just picks one and does it?23:50
corvusyeah, that seems to be the behavior23:52
clarkbI wonder if this is the sort of thing where if we ask ansible upstream about the behavior they will know off the top of their heads what is going on23:52
clarkbI too need to EOD here shortly. We finally have sun and that means yardwork23:53
corvusclarkb: i tried this, still no joy: http://paste.openstack.org/show/723246/23:53
*** rlandy|rover is now known as rlandy|rover|bbl23:55

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