Thursday, 2017-07-27

openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Cleanup pipeline requirements  https://review.openstack.org/48761800:00
jeblairclarkb: updated; thanks ^00:00
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove ZUUL_CHANGES  https://review.openstack.org/48624500:21
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove ZUUL_BRANCH  https://review.openstack.org/48624600:24
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove ZUUL_VOTING and add zuul.voting  https://review.openstack.org/48624700:24
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove ZUUL_URL  https://review.openstack.org/48624900:24
*** dmsimard has quit IRC01:03
*** jamielennox has quit IRC01:08
*** jamielennox has joined #zuul01:15
*** dmsimard has joined #zuul01:17
*** harlowja has quit IRC01:19
*** jkilpatr has quit IRC01:20
*** jamielennox has quit IRC02:17
*** jamielennox has joined #zuul02:24
*** harlowja has joined #zuul03:31
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove extra GC debug info  https://review.openstack.org/48762203:48
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove ZUUL_PIPELINE  https://review.openstack.org/48625003:50
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove ZUUL_PROJECT  https://review.openstack.org/48625103:56
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove ZUUL_UUID  https://review.openstack.org/48625203:56
openstackgerritTobias Henkel proposed openstack-infra/zuul feature/zuulv3: Case sensitive label matching  https://review.openstack.org/46994604:09
jeblairtobiash, SpamapS: i think i have a log from the test_periodic_override hang.  i don't understand it yet, but i'll look closer tomorrow04:09
*** harlowja has quit IRC04:52
openstackgerritTobias Henkel proposed openstack-infra/zuul feature/zuulv3: Case sensitive label matching  https://review.openstack.org/46994605:50
openstackgerritTobias Henkel proposed openstack-infra/zuul feature/zuulv3: Use correct label casing in tests  https://review.openstack.org/48770305:50
*** amoralej|off is now known as amoralej07:04
*** hashar has joined #zuul07:59
*** yolanda has quit IRC09:11
*** yolanda has joined #zuul09:12
*** kklimonda has joined #zuul09:38
*** jkilpatr has joined #zuul11:10
*** smyers has quit IRC11:27
*** amoralej is now known as amoralej|lunch12:35
*** AJaeger has joined #zuul13:23
AJaegerFYI, I'm proposing a naming for Zuulv3 jobs as discussed in the last infra meeting: ttps://review.openstack.org/48784813:24
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Collect logging information into ara callback  https://review.openstack.org/48785313:32
*** amoralej|lunch is now known as amoralej13:34
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Collect logging information into ara callback  https://review.openstack.org/48785313:43
mordredpabelanger, dmsimard: ^^ that's what I was thinking for ara integration13:48
mordreddmsimard: I have an ara feature request - when we execute a playbook in zuul v3, the filesystem path it's in is ... ugly13:50
*** dkranz_ has joined #zuul13:51
dmsimardmordred, pabelanger: so in the spec I've ended up not re-writing because ENOTIME https://review.openstack.org/#/c/444088/13:51
mordreddmsimard: we pass in a value to use in logging for our other callback that has a cleaned up path to report for the playbook13:51
dmsimard(Which was also discussed during a Zuul meeting)13:51
mordreddmsimard: it would be neat if we could maybe set an env var or something and have the ara callback also pick up the same thing13:52
dmsimardWe sort of had consensus on not tight-coupling Zuul and ARA together but making it easy for users to enable it in their jobs if they needed13:52
dmsimardOr enabling callbacks in general13:52
dmsimardjeblair commented an example on the spec review of what this might look like, I don't know if this still translates well today13:53
dmsimardmordred: I'm not sure I understand your question13:54
dmsimardmordred: you mean the file tab ends up ugly ?13:54
mordreddmsimard: jeblair's comment can still apply, but I think writing the plumbing for that is going to take a little longer - so between now and denver I think just hardcoding it in, then refactoring it out before final v3 release will get us further13:55
mordreddmsimard: (I'm mostly pushing on this right now because I'm about to start poking at devstack-gate jobs which use ara - and without this there's no way to get it enabled in those jobs :) )13:56
mordreddmsimard: for the other thing ...13:56
mordreddmsimard: if you look at: http://logs.openstack.org/39/487539/5/check/tox-py35/135ad35/job-output.txt.gz13:56
mordredyou'll see it lists the playbook being run as git.openstack.org/openstack-infra/project-config/playbooks/base/pre13:57
mordredthen as git.openstack.org/openstack-infra/zuul-jobs/playbooks/unittests/pre13:57
mordredetc13:57
mordredthat's not ACTUALLY their real filesystem path13:57
mordredtheir real filesystem path is like /tmp/27255ad449624904bbf745fd2706ddf7/trusted/project_0/git.openstack.org/openstack-infra/project-config/playbooks/base/pre.yaml13:58
mordredbut the /tmp dir and project_0 and other bits are impl details and super not-interesting to an openstack develop13:59
mordreddeveloper13:59
mordreddmsimard: so we basically set a variable with a "friendly" name for th eplaybok that we use in logging to override the playbook name that's found in the playbook object13:59
mordreddmsimard: anyway - my 'feature request' is to be able to set a similar value - hopefully via an env var - and have ara use that in it's view of where a given playbook file lives14:01
mordreddmsimard: it's possible that doesn't make sense, which is fine14:01
dmsimardmordred: hm, ultimately ara picks up whatever ansible throws at it -- if the playbook path is foobar, then it picks up foobar. Are you using the vanilla ansible-playbook command or are you overriding it (like, say, the 'command' module) ?14:01
*** smyers has joined #zuul14:02
dmsimardmordred: probably silly but "ln -s /some/ugly/path/playbook.yml git.o.o/playbook.yml; ansible-playbook git.o.o/playbook.yml" would probably work too14:03
mordreddmsimard: we use the vanilla ansible-playbook command - and we started by just picking up what ansible threw at it14:03
dmsimardmordred: are the roles in similarly ugly paths ?14:03
mordredyup14:04
mordredI mean - honestly, I think having the report will be a large enough win that it's less important that we solve this any time in the short-term14:04
Shrewsanyone know why a tox run would report "db type could not be determined" ?14:04
mordredI think the 'ugly' path won't be as much of a problem in the ara web ui14:04
mordredShrews: yes14:05
mordredShrews: it's due to py2 vs. py3 impls of the dbm module - usually from running testr with py2 before py314:05
mordredShrews: just rm -rf .testrepository14:05
dmsimardmordred: yeah, like I said if you want a "clean" path, you can always substitute with symlinks and set a proper ANSIBLE_ROLES_PATH or something14:05
Shrewsmordred: danke14:05
dmsimardmordred: added some comments in your review14:06
mordreddmsimard: sweet - thanks!14:06
dmsimardmordred: also it seems like ara is installed late in the process (it's installed by ansible itself?) so you're ultimately missing out on some bits that happen beforehand14:07
dmsimardprobably not a big deal, but worth mentioning14:08
mordreddmsimard: I'm not sure what you mean by that? with this patch ara is installed alongside zuul itself14:09
mordreddmsimard: and added to the ansible.cfg before we run any ansible14:09
dmsimardmordred: that's some ansible running things: http://logs.openstack.org/53/487853/2/check/tox-cover/ed12ee2/job-output.txt.gz#_2017-07-27_13_43_45_45053514:10
dmsimardand then later ara is installed: http://logs.openstack.org/53/487853/2/check/tox-cover/ed12ee2/job-output.txt.gz#_2017-07-27_13_45_53_53516114:10
mordreddmsimard: right. that's because that's a tox test of zuul itself14:10
mordreddmsimard: if the zuul running that tox test had this patch applied, the playbook that runs tox would be running with an ara installed14:11
dmsimardahhh, makes sense14:11
mordredbut then on the test node the tox test will install ara14:11
mordreddmsimard: it's turtles all the way down around here14:11
dmsimardmordred: oh, for FWIW, one of the things I'm waiting on for the next release is this thing: https://review.openstack.org/#/c/480716/14:19
pabelangerdmsimard: mordred: left comment / questions on 48785314:19
dmsimardSo ideally we'll be able to export subunit from ARA14:19
dmsimardand then ship it to openstack-health or something14:19
mordreddmsimard: neat14:20
mordredpabelanger: looking14:21
mordredpabelanger: well - if we did it in a trusted playbook we'd be installing ara and its depends every job, and we'd be having a playbook modify the ansible.cfg - and we'd miss the logging for the playbook that had the installation of ara14:22
pabelangermordred: right, chicken and egg.14:23
mordredpabelanger: which is why I think having it directly in zuul gets us where we need to be - I do agree that making it optional is important, but I don't want to fall down that rabbithole too much as I mostly just want to be able to refactor devstack-gate jobs and not lose the ara :)14:23
mordredpabelanger: I think we should _definitely_ clean that up to make it optional for an admin to install before we cut a v3 release though14:24
mordredpabelanger: that said - I'm about ready to start hammering on more jobs with you (sorry, asia trip put a damper on my ability to help wit that task)14:24
mordredpabelanger: thanks for getting the shade jobs started going!14:25
pabelangerya, longer term, I think parsing job-output.txt would be an option too, for optional install.14:25
mordredpabelanger: yah - I agree14:25
pabelangermordred: np! I think I'm going to look at github connection stuff this morning14:25
mordredin fact - that would also solve the thing I was mentoined ot dmsimard above which is that we rework the playbook name in our callback14:25
mordredso if ara did grow an 'import json' feature that would be neat14:26
pabelanger++14:26
dmsimardyeah, definitely something we can do14:26
dmsimardneed some prior hacking first14:27
dmsimardI think async json importing is a better option for our context14:27
Shrewsanyone know offhand if there is a pathway to get tenant and project names from a zuul Build object?14:30
mordreduhm14:33
mordredShrews: I do not - but you saying that makes me realize the thing I've been wanting all this time14:34
mordredShrews: which is an ER diagram14:34
Shrewsmordred: yeah, that would be very helpful14:34
Shrewslike... VERY14:34
mordredturns out that's how my brain works14:34
mordredand without actual data types in python...14:34
mordredjeblair: ^^ not super urgent, but next time we think about zuul developer/internals docs, I think something similar to an ER diagram for the model objects could be quite helpful. I have no useful suggestions on how to accomplish that14:35
mordredooh! https://pypi.python.org/pypi/ERAlchemy <-- that's neat14:36
Shrewsbeing a very visual learner, i'm very on board with such a document14:36
mordredalso - once we're there - python 3.6 type annotations will make me a happy camper14:40
*** hashar has quit IRC14:41
Shrewsi am saddened that my unit test has no nodes for autoholding fun  :(14:50
mordredShrews: boo14:53
mordredShrews: also - it turns out I am a bad python person - we have type hints in 3.5 already14:54
mordredhttps://www.python.org/dev/peps/pep-0484/ - which also includes a suggested grammar for type hints in comments for variables14:54
Shrewsoh neat14:56
Shrewsi just tried it myself following https://docs.python.org/3/library/typing.html14:56
Shrewsi (correctly) cannot greet an integer!14:57
ShrewsTypeError: must be str, not int14:57
Shrewsmordred: balancing the comment type hints with pep8 rules for line length will be fun15:00
mordredyah. 3.6 is where variable annotations come in15:01
mordredShrews: how did you get it to TypeError?15:01
Shrewsmordred: greeting(1)15:01
Shrewsvs greeting("david")15:02
Shrewsi typed it directly into the interpreter. i assume (would hope) the same happens in a .py file15:02
mordredhrm. I did the same and didn't get a TypeError15:03
mordredare you on 3.6 maybe?15:03
pabelangermordred: jeblair: Do I need to restart zuul to pick up new github credentials or just reload?15:04
pabelangerI guess I can try a reload first15:04
Shrewsmordred: oh, hrm. that's failing on the + operation15:04
Shrewsmordred: 3.515:05
Shrewsmordred: oops, nope. 3.615:05
mordredwell - in any case, I like that we can use them15:06
Shrewsmordred: if i change it to "return 'Hello %s' % name", it will not error at all. I don't understand now15:06
mordredI think it's just that they're informational so you can use static type checkers15:06
Shrewsoh!15:06
mordredhttp://mypy.readthedocs.io/en/latest/ for instance, will do a static analysis pass of your code15:07
jeblairShrews: Build.pipeline.layout.tenant15:08
Shrewsjeblair: ah ha. i looked at Pipeline but missed that. thank you15:10
jeblairShrews: regarding nodes -- you may need to make a new zuul config for that test with a job that requests nodes.  easiest way is to stick the whole zuul.yaml in tests/fixtures/layouts/foo.yaml and then decorate the test with @simple_layout('foo.yaml')15:11
Shrewsok. thx again15:14
*** dmsimard is now known as dmsimard|afk15:14
Shrewsjeblair: hints for getting at project name from Build?15:16
jeblairShrews: yep.  gotta get to the QueueItem because that holds that context15:17
*** AJaeger has left #zuul15:17
jeblairShrews: Build.build_set.item15:17
jeblairmordred, dmsimard|afk: suggestion on 487853 to avoid the giant dep list pabelanger mentioned.15:18
jeblairmordred: unfortunately, it will *double* the number of lines of code in your patch.  :)15:19
jeblairbut at least it won't double our dependencies :)15:19
pabelangerpip install ara[callback-only] would work too15:19
pabelangerbut like try/import too15:20
jeblairpabelanger: that seems like the thing we should add to our puppet then15:20
pabelangerya15:20
Shrewsjeblair: ah, found it. would have taken me forever to figure that out15:24
mordredjeblair: ohno! double the lines15:32
mordredjeblair: ah - yes. easy fix15:33
clarkbtobiash: thank you for the update to case sensitivity change I have +2'd15:47
SpamapSjeblair: any luck so far?15:50
SpamapSthose "the process just died" bugs are awful15:50
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Fix race in test_periodic_override  https://review.openstack.org/48791715:54
jeblairSpamapS, tobiash: ^ yes, in fact!15:54
jeblairi could not see that yesterday, but it took me about 5 minutes today.  this is why we stop work and go do other things.  :)15:55
SpamapSbrains like rest15:57
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: WIP: Simplify run tox task  https://review.openstack.org/48755116:08
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Don't request empty nodesets  https://review.openstack.org/48724316:10
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Fix race in test_periodic_override  https://review.openstack.org/48791716:14
jeblairmordred, SpamapS, pabelanger, fungi: i think it's decision time for tobiash's case-sensitive label change: https://review.openstack.org/46994616:16
jeblairclarkb and I are +2 on that.  mordred is +2 on a previous version.  but it's a significant change, so i want to make sure folks are cool.16:17
fungiseems like it was necessitated at least by our change in database collation, unsure if it was gerrit 2.13-specific, right?16:18
jeblairfungi: that's my understanding16:18
jeblairfungi: could be one, the other, or both.16:18
fungieither way, seems like a reasonable change and 3.0 is the time to make such backward-incompatible breaking changes16:19
clarkbconsidering it is new behavior with postgres backend I think it may be gerrit delegating that behavior to the db whereas previously it may have normalized internally? Though I haven't found any evidence of that in the gerrit log16:19
jeblair(we don't have a convenient way to test <2.13 + binary collation, so we can't narrow it down further without spinning up another gerrit)16:19
fungiwell, regardless, we have conclusive evidence that at least _some_ gerrit deployments need it16:19
jeblairclarkb: i agree that seems (somehow) likely.16:20
fungino need to split hairs, i guess16:20
clarkbfungi: right I think that is the important info here. Some gerrits not our own have run into this16:20
clarkbfungi: and we should support them too16:20
jeblairfungi: yeah, that's kind of my thinking.  long term, capitalizing and/or quoting some things in the config is going to annoy users less than hitting this error and us being like "oh, yeah, run gerrit differently"16:20
mordredjeblair: ++16:21
fungiit's far from being the most significant behavior change in v3 ;)16:21
mordredjeblair: I went ahead and put a +2 on this version of the patch16:21
clarkbI'm going to work on testing zuulv2 today with tobiash's change on that branch just to be double sure both versions are happy16:22
jeblairi mean, it will annoy me Because Every Time I Hit The Shift Key I Swear.  But I Wil Get Over It.16:22
jeblairclarkb: ++16:22
fungiswitch emacs into title caps mode (i'm sure it has one!)16:22
jeblairfungi: probably a minor mode16:23
SpamapSjeblair: I think I remember seeing it and thinking "a minor version did this?"16:24
SpamapSbut I think I'm +2.. let me refresh, it's been a few weeks16:24
clarkbSpamapS: well they don't actually use any of this code base upstream aiui so its easy for these sorts of problems to get in16:24
clarkbSpamapS: they use a bunch of googly services that they patch in with guice (its the only reason to really have guice in gerrit) upstream16:25
clarkbgit repos don't live on disk, they don't use a sql database server, etc16:25
fungiincluding proprietary google database backend apparently16:26
SpamapSclarkb: perhaps we should ask if we can gate for them.... ;-)16:26
SpamapSGoogle's relationship with open source and free software is so weird.. I want to trust them. I want to think they get it.. but...... every time I get below the surface...16:27
SpamapSadded my (somewhat unfortunate) +2 ;)16:28
jeblairto be fair, a lot of the reviewdb work is so they can stop using their proprietary database and just use their, um, proprietary disk.16:28
SpamapSThat makes sense16:30
SpamapSI recall reading the description and thinking "I thought that's already how it worked..."16:30
clarkbSpamapS: in gerrits case it seems to be tension between google production deployment requirements and what is feasible using open source software16:30
clarkbSpamapS: google requires N+2 region redundancy or something crazy and good luck doing that without their googly bits16:31
SpamapSYeah16:32
fungis/reviewdb/notedb/ but yeah16:34
* SpamapS shutters at the similarity to Notes16:35
SpamapSshudders?16:35
SpamapSeither way16:35
SpamapSboth16:35
fungithough the accountpatchreviewsdb is a stepping stone to notedb aiui16:36
tobiasho/16:42
jeblairclarkb: want to go ahead and +3 https://review.openstack.org/487703 since it's a rebase magnet?16:57
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: WIP: Simplify run tox task  https://review.openstack.org/48755117:02
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Case sensitive label matching  https://review.openstack.org/46994617:05
tobiashyay17:06
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: WIP: Simplify run tox task  https://review.openstack.org/48755117:07
clarkbjeblair: will review17:07
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: WIP: Simplify run tox task  https://review.openstack.org/48755117:09
*** harlowja has joined #zuul17:09
clarkband done17:11
tobiash:)17:11
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: WIP: Simplify run tox task  https://review.openstack.org/48755117:16
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Use correct label casing in tests  https://review.openstack.org/48770317:23
jeblairpabelanger, mordred, clarkb: so, erm, i reckon we need to go capitalize some things in our zuul config now :)  i'll write a patch17:25
mordredjeblair: :)17:25
jeblairremote:   https://review.openstack.org/487955 Capitalize gerrit labels in zuulv3 config17:26
pabelangerjeblair: mordred: I'm going to stop / start zuulv3 to pickup github changes in zuul.conf. I don't think a reload is enough17:35
jeblairpabelanger: should probably wait until 487955 lands17:38
pabelangerah, I just stop / started17:39
pabelangerlet me stop it again17:39
jeblairpabelanger: well, it may or may not error when trying to leave reports in gerrit.  i'm not actually sure in this case.  :)17:40
pabelangerjeblair: Hmm, I actually think zuul-scheduler is hung ATM. Do you want to take a quick look?17:41
pabelangerwhy steps where, stop scheduler, the start (with new github setting). Then do the same on zuul-executor17:41
pabelangerI then stopped scheduler to wait for 487955 but didn't seem to respond17:42
*** amoralej is now known as amoralej|off17:44
jeblairpabelanger: no, just do what you need to kill it17:46
pabelangerjeblair: k17:47
mordredjeblair: do we need restarts for pipeline reconfig?17:55
mordredthat's live now, yeah?17:55
jeblairmordred: correct, updates on landing17:55
jeblairmordred: and you should get error messages in the speculative phase (even though the config isn't actually used)17:56
mordredjeblair: cool17:57
mordredjeblair: so only changes to zuul.conf and main.yaml require restarts now, yeah?17:57
jeblairmordred: yep.  theoretically they should only require reconfigurations.  pabelanger said that didn't work, but it sounds like there may have been other problems.17:58
mordredjeblair: nod.17:58
pabelangerYa, I was seeing a 'github' keyerror for connections, you can see it in debug.log17:58
jeblairi'd like us to assume that they should only require reconfiguration, and then, if it doesn't work, we investigate that as a bug17:58
mordredjeblair: ++17:59
tobiashjeblair: I wonder how nodepool fits into the multi tenant structure18:08
jeblairtobiash: there isn't a way to restrict labels to certain tenants, but we may want to add that.18:09
tobiashjeblair: do you see any possibility to isolate tenant specific images from each other?18:09
tobiashjeblair: how would you do that? Nodepool knowing the allowed tenants for an image and declining node requests from not allowed?18:10
jeblairtobiash: i think labels is the way to go (labels have associated images)18:10
jeblairtobiash: that would require tenant-specific labels18:11
tobiashjeblair: or would you specify the allowed labels in the tenant config?18:11
jeblairtobiash: if that's not acceptable, then yeah, we'd need to make nodepool tenant-aware.18:11
jeblairtobiash: yeah, that was my first thought.  allowed nodepool labels in zuul tenant config file.18:12
tobiashjeblair: sound easy and would fullfill my use case18:12
clarkb+1 to having zuul restrict that18:15
tobiashwill look into that tomorrow or next week18:19
pabelangerokay, zuulv3 changes on disk, going to bring it back online18:24
pabelangerjeblair: mordred: okay, figured out the issue. For some reason we have mysql connection settings in zuulv3.o.o, I take it we don't actually need them?  They looked to be blocking zuul from starting, I can only assume because it is firewalled?18:36
pabelangerjeblair: mordred: with github connection, we did get an exception: http://paste.openstack.org/show/616770/18:37
mordredpabelanger: we have them in so that we can do this: https://review.openstack.org/#/c/487950/18:37
mordredpabelanger: I'd love to figure out why it didn't work - but we can also defer that for a second if you want18:37
pabelangermordred: okay, possible our settings are not correct? Because once I removed the connection in zuul.conf the scheduler started properly18:38
mordredpabelanger: lemme poke for a sec18:41
pabelangermordred: sure18:41
mordredwell - that would explain that :)18:43
mordredno PyMySQL lib installed18:43
pabelangerah18:43
*** hashar has joined #zuul18:43
mordredpabelanger: https://review.openstack.org/48797418:44
pabelangermordred: actually, do we need that just for scheduler?18:46
pabelangeror does executor need it too18:46
Shrewsjeblair: You mentioned that in nodepool v0, you tell it how many nodes to accumulate for a given job (defaulting to 3). How does that work for multinode jobs? Trying to figure out how to manage the held node count for multinode jobs.18:48
mordredpabelanger: just need it for the scheduler - want me to update?18:50
pabelangermordred: If you don't mind18:50
Shrewsjeblair: I'd sort of expect if someone said "hold 3 nodes for job X", and job X used 2 nodes, then it would hold 6 nodes total (so count is really the number of runs for job X). I can't imagine it making any sense any other way18:53
mordredShrews, jeblair: that makes sense to me: "hold me nodes for X runs of job"18:56
pabelangerI don't see how github connection driver is working for bonnyci, if I am reading this correctly: http://git.openstack.org/cgit/openstack-infra/zuul/tree/zuul/driver/github/githubconnection.py?h=feature/zuulv3#n397 won't actually have a session yet18:56
Shrewsmordred: yeah, that's the only thing that makes sense to me18:57
pabelangerAh, I think I see the issue19:01
pabelangerwe don't seem to have the right version of github3.py installed19:01
mordredpabelanger: oh - maybe we installed it a while back and never updated?19:01
pabelangerpossible19:01
mordredpabelanger: cause I was just about to say - I don't see from the github lib how session could not exist19:01
pabelangermordred: going to stop scheduler, uninstall it and pip install /opt/zuul again19:02
mordred++19:02
mordredpabelanger: you might need to either do a -U or an explicit of that one, since we're tracking a git url for that lib19:02
mordredpabelanger: also- I updated the puppet-zuul patch and added a system-config patch to use it19:03
pabelangerI was able to reproduce the issue locally, but had pypi release19:03
mordredpabelanger: https://review.openstack.org/487974 and https://review.openstack.org/48797519:03
*** dmsimard|afk is now known as dmsimard19:04
jeblairShrews, mordred: agree with what mordred said.  i think that's actually the way it works in nodepool v0 too (incidentally due to the way subnodes work)19:05
Shrewsk19:05
pabelangermordred: I had to run: sudo pip3 install -U /opt/zuul/ -r /opt/zuul/requirements.txt just using pip3 install -U /opt/zuul was using github3.py from pypi19:07
pabelangermordred: do you know why that would be?19:07
mordredpabelanger: no - but maybe something weird with the git url19:09
pabelangergithub3.exceptions.AuthenticationFailed: 401 Bad credentials19:11
pabelangeryaya19:11
pabelangerthat is better19:11
mordredpabelanger: it is? why our credentials not right? :)19:12
pabelangermordred: I have no idea :D19:12
pabelangerchecking token now19:13
mordredpabelanger: I odn't see that error in the log ...19:13
pabelangermordred: debug.log on zuulv3.o.o19:14
dmsimardpabelanger: you remember the series of patches we landed in review.r.o in order to namespace the gerrit instance repositories ?19:14
mordredah - I was grepping bad19:14
dmsimardpabelanger: i.e, /var/lib/zuul/git/<review.rdo> and /var/lib/zuul/git/<review.openstack>19:14
pabelangerdmsimard: yes19:15
mordredpabelanger: something is running from your home directory19:15
dmsimardpabelanger: so these are aggregated here https://github.com/softwarefactory-project/zuul-distgit/blob/master/Fix-Third-party-CI-conflict.patch19:15
dmsimardpabelanger: it looks like this works well for gerrit triggers but periodic triggers end up using the review.rdo namespace :/19:15
pabelangermordred: Oh, that is old19:15
jeblairdmsimard: that should not be necessary for zuulv3, fwiw19:16
pabelangermordred: let me check path to github3.py19:16
dmsimardpabelanger: we have https://github.com/rdo-infra/review.rdoproject.org-config/blob/master/jobs/_default_jobs.yaml#L36-L43 to determine which git server to zuul clone from based on the pipeline19:16
mordredpabelanger: yah - it's installed globlaly from your home dir :)19:16
dmsimardpabelanger: but what's currently happening is that zuul cloner, albeit trying to clone from git.o.o, will use the review.rdo namespace and thus doesn't find the repo19:16
dmsimard(only for periodic jobs)19:17
dmsimardscratching my head what to do for this one19:17
pabelangermordred: Oh, I know why. Because I did pip install -U /opt/zuul -r /opt/zuul/requirements.txt from my homedir19:17
dmsimardI guess for periodic jobs they could use a builder that does a regular git clone instead of zuul clone19:17
mordredpabelanger: hahaha19:17
pabelangerand pip git cloned github3.py19:17
pabelangermordred: maybe should do it from /home/zuul ?19:18
pabelangeror just see why I have to pass -r requirements.txt19:18
pabelangerdmsimard: let me look at it in a bit, head down on zuulv3 ATM19:19
mordredpabelanger: ok - I see the issue with the auth things19:20
mordredthe docs are incomplete - patches coming19:21
pabelangercool19:21
mordredpabelanger: ok - I have updated the settings both in hiera on puppetmaster and directly in the zuul.conf file -so you can try restarting19:26
pabelangersure19:27
clarkbtobiash: jeblair zuulv2 case sensitive against gerrit 2.13 doesn't seem to work quite right http://paste.openstack.org/show/616780/19:28
clarkb--Verified is not a valid option19:28
pabelangermordred: ha, puppet just reverted it19:29
mordredpabelanger: heh19:29
mordredpabelanger: will fix again real quick19:29
pabelangerI'll kick it from puppetmaster in a minute19:29
pabelangersure19:29
mordredit should do it righ tnext time- it's updated in hiera19:29
mordredI musthave just managed to hit the window beween hiera copy and puppet run :)19:29
mordredpabelanger: k. done19:30
pabelangermordred: okay, I seen github event19:31
mordredwoot!19:32
mordrednow to fix docs ...19:32
mordredoh - I have another patch to send up ...19:33
clarkbdo v2 and v3 talk to gerrit different afterall?19:33
clarkbthis is weird19:33
mordredjeblair: so - this morning my chat with Shrews about type annotations and diagrams of object models led me down a little rathole of learning and I encoded it in a patch...19:33
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Use mypy to do static type checking  https://review.openstack.org/48816119:34
mordredjeblair: please feel free to -2 or ignore that19:34
Shrewslol. mypy is my bash alias for activating my python virtualenv19:34
mordredhaha19:35
Shrewsi also have a mypy3 for python 319:35
Shrewsmordred: it's interesting you mention ratholes from this morning convo: http://paste.openstack.org/show/616781/19:37
Shrewsthat was just to help me get my head straight19:37
clarkbthe gerrit review code in zuul looks the same between the two branches. I am really confused19:39
jeblairmordred: thanks.  i'm not sure how i feel about that.  but i'm deep into debugging an error condition with how the git directory is set up in a post job.  i don't think i have the mental space for it at the moment.19:39
jeblairclarkb: yes, nothing should have changed19:39
jeblairShrews: zuul has some block diagram stuff in its sphinx docs (gating.rst) which you could use if you felt like adding it to the dev guide19:41
Shrewsjeblair: oh, that's just a tiny portion of the entire ERD. doing the full thing would be exhausting19:41
jeblairShrews: yes, it also has been changing a lot recently19:42
jeblairShrews: heh, that was definitely not a request.  just trying to enable your ocd.  :)19:43
clarkbjeblair: tobiash --label Verified=1 works19:43
clarkbwhich we seem to do in v319:43
jeblairoh wow, did we change that?19:43
clarkbyup19:44
tobiashclarkb: there is somewhere such a patch for v2 lying around19:44
tobiash(which I have in my v2 deployment)19:44
jeblairclarkb: Ia9d3e3280995163ae2caee8ed25c7e987fcb00a419:44
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Update docs on github connection settings  https://review.openstack.org/48816519:44
jeblairclarkb: and Ib591997141b68708bee0b291bb88a93cd329430119:44
mordredok. there's the docs update19:44
clarkbjeblair: zuul/connection/gerrit.py is where the code lives in master now from what I can tell19:46
clarkbjeblair: possible that got lost when connections went in?19:46
tobiashclarkb, jeblair: this was merged in master and got lost somehow19:46
tobiashI2f3a338f18583ac7256b8a2a484cf52be4592fc319:46
tobiash^ re-adds it back to v219:46
clarkbtobiash: so I think we want to depeonds on ^ in your master change and also update your master change to remove the normalization function and usage like we did in v3. I can do that if you like or happy to have you do it19:47
mordredpabelanger: https://review.openstack.org/48816719:47
clarkber not depends on but rebase on that change19:47
pabelangermordred: +219:47
jeblairclarkb: i suppose that calls into question the results from earlier (inasmuch as this is another input variable), but maybe not the conclusion -- this is still something we should support.19:47
clarkbjeblair: yes I think that is the case. and v3 does it all properly19:48
clarkbjeblair: I also think we should probably just merge I2f3a338f18583ac7256b8a2a484cf52be4592fc3 since it is a regression and doesn't change behavior in a backward incompatible manner. Then we can worry about how to make the case sensitive change to master separately19:49
clarkbI've +2'd the change to master to use --label but not approved it in case you want to think about it more19:50
tobiashclarkb: I could update the patch tomorrow or monday, but feel free if you like to do it earlier19:52
clarkbtobiash: I'll do a local rebase update just to make sure it solves the problem but can push up the update when that is working19:53
tobiashclarkb: ok19:54
tobiashclarkb, jeblair: should the label case patch ever land in v2 or is it just for the case gerrit2.13 coming before zuulv319:58
tobiashthis could/would possibly break many existing 3rd party v2 deployments19:58
Shrewshrm, our 'nodepool list' output is really far too wide. i think we should scale it back, maybe add a --detail option20:00
tobiashShrews: it fits well on my 4k display ;)20:00
tobiashShrews: but yes, it is too wide...20:00
clarkbtobiash: ya thats the big question. I think we want to make the patch available and working but maybe not merge it. This way existing deployments aren't affected unless they intentionally go and upgrade gerrit20:01
clarkbtobiash: in which case hopefully they ask us why it doesn't work and we can point them to v2 patch they can apply20:02
clarkbyup with I2f3a338f18583ac7256b8a2a484cf52be4592fc3 and case sensitive patch zuulv2 works fine20:02
tobiashclarkb: are 3rd party installations also affected by openstack gerrit upgrade?20:02
* Shrews makes mental note to change the command... and to steal tobiash's 4k display20:03
jeblairclarkb: maybe send out a notice saying: pin to 2.5.2, switch your layout.yaml to match case, then upgrade to 2.5.320:03
tobiashclarkb: in other words, are there 3rd party installations involved in gating?20:03
clarkbtobiash: yes they will be, but there are also people running their own gerrits so this is a fun one20:03
clarkbtobiash: they aren't involved in gating but the weirdness around clearing votes will affect them20:03
* tobiash makes a mental note to buy a kensington lock...20:04
jeblairmordred: zuul aborted 2 jobs on 488165; any idea why?20:04
clarkbthere are actually about ~20 changes between --label fix and the case sensitive fix so might just easiest to merge --label fix in order to avoid rebase madness in reviews20:04
clarkbjeblair: any opposition to approving 424806?20:05
jeblairclarkb: nope done20:06
jeblairi'll abandon the conflict patch20:07
mordredjeblair: looking20:07
mordredjeblair: no - I do not - I'll look in the logs20:08
mordredjeblair: I will say that we've got some conflicting/confusing words in a log message:20:11
mordred2017-07-27 19:44:59,288 DEBUG zuul.AnsibleJob: [build: 5f0413ab86834c339111cad0a2f7ef82] Job 5f0413ab86834c339111cad0a2f7ef82: updating playbook or role {'connection': 'gerrit', 'type': 'zuul', 'target_name': 'project-config', 'implicit': True, 'project': 'openstack-infra/project-config'}20:11
mordredjeblair: (we can fix later of course- just noticing that the 5f0413ab86834c339111cad0a2f7ef82 id is showing up twice in the line and once prefixed by 'build' and once with 'job'20:11
jeblairmordred: yeah.  build is now, job is old and can go20:18
mordredjeblair: remote:   https://review.openstack.org/488183 Stop double-logging the build id20:18
mordredit didn't report in here- but I have made the cleanup patch while I was looking at it20:18
jeblairmordred: (if we were to be super-hyper-technical they're actually both right in this case but let's not go down that road :)20:18
mordredjeblair: :)20:19
jeblairmordred: small -1 on that20:20
mordredjeblair: oh - the aborts are because the executor got restarted20:21
*** jkilpatr has quit IRC20:21
jeblairmordred: kk20:22
mordredjeblair: sholdn't the scheduler re-scheduler those in that case?20:22
mordredjeblair: fixed20:23
jeblairmordred: theoretically20:23
mordredjeblair: I'm sure we'll be motivated at some point to investigate that theory20:24
jeblairmordred: it's on my list :)20:32
jeblair(which is to say, it's on my list of things to make stories about)20:33
mordredI feel like I should have a story to manage my lists of lists of things I need to make stories about20:34
*** jkilpatr has joined #zuul20:40
jeblairmordred: you'll just end up with an emacs buffer of things to add to that story20:42
mordredjeblair: then I have to remember which emacs buffer it's in20:42
SpamapSperhaps you could keep track in a story20:48
Shrewsshould i feel like a bad programmer because I'm placing Kinks lyrics in my code comments?21:09
mordredShrews: nope. you shold feel like a good programmer21:10
*** hashar has quit IRC21:12
*** dkranz_ has quit IRC21:15
jeblairmordred, pabelanger: i'm reminded that i think we should change the schema for the sql reporter before we get too far down the api/interface path.  i think we should replace score with the buildset result (which is actually a thing already -- it's what drives the success/failure reporter decision making; it's just not directly exposed anywhere)21:17
jeblairmordred, pabelanger: however, we should totally be able to do that with an alembic revesion and forward port the existing 'score' values21:17
jeblairso i +3d 487950 and figure we can test that on ourselves :)21:18
jeblair(to elaborate, 'score' makes sense when you see the sql reporter as "a log of what i did to gerrit", but less so in a multi-driver world or as a necessary backend for a dashboard)21:18
mordredjeblair: ++21:19
pabelangerwfm!21:19
mordredjeblair: so potentially the pipeline config would just not have any arguments21:20
mordred(and for a transition, we can have it just ignore the score argument for a bit)21:20
mordredjeblair, pabelanger: so - I think the next thing I want to crank on is actually translating over the infra-publish-jobs jobs for docs publication, and the publish-to-pypi jobs, getting gate, post, release pipelines defined in v3, then shifting zuul, zuul-jobs, openstack-zuul-jobs, openstack-zuul-roles and sphinx to be gating in v3 and not configured at all in v221:22
mordredI'd like to think I can get all of that done by EOD tomorrow21:23
mordredthat way next week we can hammer hard on devstack-gate21:23
pabelangermordred: Ya, I just need to finish up https://review.openstack.org/487551 and I think we'll be in a good spot for tox playbook / role21:25
jeblairmordred: sounds good.  i'm working on what i'm fairly confident is a problem with post pipelines, but not one that would block that (they work "good enough" atm) and the fix won't impact you21:31
mordredpabelanger: awesome21:35
mordredjeblair: \o/21:36
mordredjeblair: about to push up a fix to the ara patch based on your review - although I'm keeping ara in the test-requirements so that we make sure it doesn't bork ansible-playbook runs somehow - thatwork for you?21:38
jeblairmordred: i was kind of not looking forward to having all those extra things installed :|21:42
jeblairmordred: normally i'd say if we do what we had discussed, we would just create a dummy callback plugin for testing21:42
mordredjeblair: oh - right - it's just it's the extra things being installed is the only thing I'm actualy worried about21:43
mordredjeblair: I'm not worried about the callback plugin interface itself21:43
mordredjeblair: but - we can totally leave it out of test-requirements - we don't test that stuff super heavily there yet anyway21:44
mordredjeblair: and come back to it if we discover a need21:44
dmsimardfwiw ara packaging is approved for fedora and I'd eventually like to bribe someone with stickers to do ubuntu packaging work (if that can help with keeping dependencies in check)21:46
mordreddmsimard: doesn't really help - all of our normal dev/test is via pip anyway21:47
jeblairmordred: i'd like that.  i really want this to be a facility for anyone to be able to add their own callback plugins; i'd like this to work well with ara, but i'd also like to avoid special casing it more than necessary (because i don't want to have to have built-in support for everything)21:47
mordredjeblair: ++21:47
mordredjeblair: I also left a todo note about generalizing it21:47
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Collect logging information into ara callback  https://review.openstack.org/48785321:48
jeblairkk21:48
dmsimardmordred: what about inside the bubblewrap environment ?21:48
mordreddmsimard: whatcha mean?21:48
dmsimardmordred: I'm not sure how bubblewrap is being used tbh (didn't keep up with that line of work) but I mean it's used to isolate each job inside the runner, right ?21:49
dmsimardIs ara installed "globally", or inside each job/context ?21:49
mordreddmsimard: yes - so the python libs are bind-mounted in - so if it's instlaled on the executor host it'll be accessible from the bubblewrap21:49
mordreddmsimard: we treat each bubblewrap job context also like its own $HOME - so each job should get its own sqlite db into which its playbooks can be recorded21:50
mordredso it should work out pretty smoothly21:50
dmsimardright, okay21:50
dmsimardmordred: so, one thing about that callback_whitelist config I see in that review21:51
dmsimardmordred: anything in the callback_plugins path will be included automatically and do not need to be whitelisted21:52
dmsimardmordred: the whitelist feature is only for callbacks that are bundled in ansible proper21:52
dmsimardso, for example, profile_tasks out of https://github.com/ansible/ansible/tree/devel/lib/ansible/plugins/callback21:52
mordredah - gotcha. good to know21:52
mordredI may make an ansible docs patch for that - it is not clear in the documentation21:53
dmsimardmordred: https://github.com/ansible/ansible/blob/devel/lib/ansible/config/data/config.yml#L511 :P21:54
mordreddmsimard: :)21:55
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Collect logging information into ara callback  https://review.openstack.org/48785322:00
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Remove callback_whitelist setting  https://review.openstack.org/48821422:00
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Ensure ref-updated jobs run with their ref  https://review.openstack.org/48821622:03
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Ensure ref-updated jobs run with their ref  https://review.openstack.org/48821622:04
dmsimardoh man22:04
dmsimardthe new web console is super sweet22:04
mordreddmsimard: \o/22:05
clarkbits the old web console right just with streaming logs added in? /me making sure he isn't missing something else22:06
dmsimardI was looking at http://zuulv3.openstack.org/static/stream.html?uuid=5b8bf54dd9bd455197771585c2d7da20&logfile=console.log22:06
dmsimardI had never seen it before22:06
clarkbmordred: one thing I noticed with the logs is we have the node names in the lines which is great but not for things that run on the executor? might want to have the zuul executor hostname in there so that you can see the switch more clearly?22:07
clarkboh its just that the task headers don't have the name got it22:07
dmsimardThere's also the challenge around multinode, are the log lines just interleaved ?22:07
jeblairdmsimard: they are interleaved and tagged with the node name22:08
pabelangerclarkb: ya, I mentioned that already too. I think mordred has a patch up to fix that22:08
dmsimardjeblair: that's less than ideal and mostly the reason why upstream Ansible hasn't adopted data streaming iirc22:09
jeblairclarkb: ha.  "just with streaming logs".  if you mean "just with the first ever instance of streaming console output from arbitrary ansible tasks on multiple nodes simultaneously", yes.  *just* that.  :)22:09
dmsimardbut thankfully ara provides a solution for making sense of multi-host playbook runs \o/22:09
jeblairdmsimard: i disagree!22:09
clarkbI seem  to recall ansible rejecting related patches not because they are a problem but bceause it would cut into tower profits22:10
pabelangerjeblair: mordred: neat, a gerrit change attempted to report against github: http://paste.openstack.org/show/616792/22:10
clarkbpabelanger: don't cross the streams!22:10
pabelanger:)22:10
dmsimardjeblair: eh, I don't know, you think it's good UX to interleave lines from different hosts ?22:10
jeblairdmsimard: we have visibility into everything that's going on now, and we have plans (and have laid the foundation to support) letting folks request a subset of that, or even other log files.22:11
jeblairdmsimard: yep22:11
clarkbdmsimard: similar to how journald integartion with devstack is a big win but on a process level22:11
jeblairdmsimard: for a live stream of what's happening with a job, absolutely.22:11
clarkbdmsimard: being able to only see a tiny subset of a problem space makes it hard to understand what is happening at any given time22:11
jeblairdmsimard: if i want to see everything, *that* is everything.  if i want to see less, i can ask for less.22:11
dmsimardjeblair: you'd ask for less how ? is there filtering built in somehow ?22:12
jeblairdmsimard: but you can't ask for less if you don't have it to start with22:12
dmsimardjeblair: ah.22:12
dmsimardI missed the part where filtering/subsets would eventually be made available22:12
clarkbjeblair: sorry I meant "just" as in the console itself hasn't changed other than to add a feature. Not that the feature is inconsequential22:13
clarkbeg there aren't 10 featuers I missed22:13
jeblairclarkb: i know, i tease.  :)22:13
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Monitor job root and kill over limit jobs  https://review.openstack.org/48590222:15
jeblairdmsimard, clarkb: also, we chatted with upstream about streaming based on our work and they had some ideas about how ansible could be changed to support it in the future22:16
jeblairso there's definitely no ideological or profit reason at the moment (regardless of whether there was in the past -- i don't know).  only technical ones.22:16
dmsimardjeblair: ah, the fact that they're at least open about opportunities is interesting22:16
clarkbjeblair: ya this was pre red hat purchase so things could be completely different today22:17
dmsimardThey seem to be opening up and asking for feedback in general actually, I've surprisingly been chatting with bcoca a lot over some of the new stuff they're trying to land in 2.422:17
jeblairdmsimard: ya.  this is probably not an ansible 2.4 thing.  :)22:17
dmsimardThey're planning an interesting approach for letting plugins configure themselves automatically -- the new configuration manager in general is going to be great in fact22:20
dmsimardSay, completely changing topic but is toggling zuul v3 support for ara something we can consider if you are planning to use it ? I'd like to start self-testing ara with zuul v3 so that I can make sure I don't break stuff.22:22
dmsimardAs in, getting gate jobs to run with zuul v3 on ara code reviews22:23
jeblairdmsimard: we can definitely set up a cross repo job for that.  i don't think we're quite at the point of being ready to add ara to the v3 config yet, but you make a compelling case for doing so early when we are ready.  :)22:25
dmsimardjeblair: I'm totally down for being an early adopter/beta tester :D22:25
jeblairdmsimard: it should be a v3 job only, because switching zuul itself to v3 is coming up soon, so we wouldn't be running it for long with v2.22:26
dmsimardYeah, I mean the same thing that you are currently doing with the feature/v3 branch, some jobs out of v2 and some jobs out of v322:26
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Update SQL reporter to store results  https://review.openstack.org/48822122:28
mordredjeblair: ^^ there's the sql reporter update to use result22:29
dmsimardmordred: I was actually discussing something along those lines with tristanC this week22:29
dmsimardHe was telling me how the result is actually an aggregate result, say, if one job out of the buildset fails, it's marked as failed, even though some jobs may have passed22:30
dmsimardWe were discussing how we could display this in terms of UX in the eventual job dashboard22:30
jeblairmordred: looks great!  zuul doesn't like it.22:30
mordredjeblair: zuul never does22:31
mordreddmsimard: there also should be a record for each job, yeah? so with buldset result and build.result you should be alble to show it nicely?22:31
dmsimardmordred: maybe, but are builds and buildsets recorded separately ?22:32
mordreddmsimard: they're associated22:32
dmsimardoh, so a build is always the children of a buildset basically22:32
mordreddmsimard: every build in the build table has a reference to a buildset22:32
mordredyup22:32
clarkband whether or not a buildset is failing depends on voting attributes and the status22:33
dmsimardokay, so passing the result instead of the score sounds like what we need to indeed22:33
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Update SQL reporter to store results  https://review.openstack.org/48822122:34
mordredok. that should be better22:34
mordreddmsimard: yup - also should be more consistent across triggering mechanisms22:34
*** openstack has joined #zuul22:46
*** pleia2 has joined #zuul22:48
*** xinliang has quit IRC22:51
*** xinliang has joined #zuul23:04
*** xinliang has quit IRC23:04
*** xinliang has joined #zuul23:04
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Ensure ref-updated jobs run with their ref  https://review.openstack.org/48821623:22

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