Friday, 2017-05-19

mordredSpamapS: I see two forms:00:03
mordredjob.sendWorkException(errors.encode('utf8'))00:03
mordredand00:03
mordredjob.sendWorkException(traceback.format_exc())00:03
mordredthe one where we're calling it and it's not doing RPCException is one of the job.sendWorkException(traceback.format_exc()) forms00:04
jeblairmordred: the lack of RPCFailure suggests that job.exception is evaling to false00:06
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add driver-specific pipeline requirements  https://review.openstack.org/46610500:06
jeblairjlk: ^ for real now; passes tests locally00:07
jeblair(will likely fail the rpc tests in zuul)00:07
mordredjeblair: yah - so if it's just an encoding error somehow from the traceback.format_exc() I'd expect that to fail python string processing before it even gets to actuallyy sending the Packet00:08
jeblairyeah, puzzling00:08
mordredand I don't see, at least yet, how anything here could break the way sendWorkException works00:08
mordredI swear it's going to be a missing comma - which are my favorite kind of puzzle ... but I will now interact with meat00:11
jeblairi've replicated it with zuulv3 tip00:13
jeblairi think i see it00:18
jeblair00:20 < openstackgerrit> James E. Blair proposed openstack-infra/gear master: Fix exception setter  https://review.openstack.org/46613100:20
mordredjeblair: yes. I agree - that is sadpanda00:22
SpamapSDERRRRPPP00:22
SpamapSthat is definitely a Delta Comfort+ Fail00:23
SpamapSIf I had gotten a full 1st class upgrade I'd have noticed that00:23
jeblairis there some way we can blame united?00:23
SpamapS(and written tests for the setters)00:23
SpamapSjeblair: yes, United drove me to Delta00:23
mordredwe should blame all of the airlines00:23
SpamapSand all of the airlines drove me to drink00:24
mordredalthough I'm holding out hope that aeromexico is going to be glorious00:24
jeblairunited has created a new kind of pain -- some of their new armrests have the call button right where your elbow goes, so on the 5.5 hr flight to boston, it was "DING!" every 5 seconds as someone on the plane hit the button.  the fa's made announcements telling people to be careful to no avail.00:30
jeblairmordred, SpamapS: i +2d both of your patches; hopefully they will land after rechecks00:32
SpamapSjeblair: the most recent recheck of 466112 still picked up 0.9.000:33
SpamapSjeblair: I have to detach for the evening, so another recheck will be needed at 46611200:34
SpamapSit's just about done with the current one00:34
jlkjeblair: LOL that United flight sounds like another case of 1 unit test and 0 integration tests.00:40
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add paste to the default list of loggers in tests  https://review.openstack.org/46611800:44
*** _ari_ has quit IRC01:04
*** pabelanger has quit IRC01:04
*** fbo has quit IRC01:04
*** dmellado has quit IRC01:04
*** pabelanger has joined #zuul01:08
*** _ari_ has joined #zuul01:08
*** fbo has joined #zuul01:12
*** jkilpatr has quit IRC01:17
*** dmellado has joined #zuul01:22
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove errant basicConfig calls in test suites  https://review.openstack.org/46611201:34
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: connections: only configure sql on the server  https://review.openstack.org/46614802:10
*** jamielennox is now known as jamielennox|away03:46
*** jamielennox|away is now known as jamielennox03:53
*** bhavik1 has joined #zuul05:25
*** bhavik1 has quit IRC06:33
*** adam_g has quit IRC07:00
*** adam_g has joined #zuul07:01
*** DangerousDaren has joined #zuul07:02
*** adam_g has quit IRC07:12
*** adam_g has joined #zuul07:13
*** adam_g has quit IRC07:21
*** adam_g has joined #zuul07:22
*** Cibo_ has joined #zuul09:04
*** hashar has joined #zuul09:17
*** Cibo_ has quit IRC09:42
*** bhavik1 has joined #zuul09:50
*** openstack has joined #zuul10:00
*** hashar has joined #zuul10:04
*** jkilpatr has joined #zuul11:00
*** bhavik1 has quit IRC11:18
*** hashar has quit IRC11:19
*** dougbtv_ is now known as dougbtv11:43
*** hashar has joined #zuul12:29
*** hashar has quit IRC12:35
*** hashar has joined #zuul12:35
*** dkranz has joined #zuul12:48
*** dkranz has quit IRC13:07
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove use of hacking lib  https://review.openstack.org/46606713:09
Shrewsoh wow. that merged. neato13:12
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: WIP: Add web-based console log streaming  https://review.openstack.org/46335313:27
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Re-enable F405 pep8 errors  https://review.openstack.org/46628513:36
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Re-enable E305 pep8 errors  https://review.openstack.org/46628613:39
*** hashar has quit IRC13:40
Shrewsjeblair: i'm going to leave (E402 module level import not at top of file) and (W503 line break before binary operator) as ignored by pep8 b/c we can't avoid the first, and the 2nd is just silly13:47
Shrewswell, i guess we *could* avoid the 1st, actually13:50
Shrewsit would require fixing up the alembic version files, which, iirc, are autogenerated13:52
Shrewsand the ansible stuff. bleh... i'd rather ignore13:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: skip py3 failing tests  https://review.openstack.org/46390313:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: fix webapp tests for py3  https://review.openstack.org/46390213:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: misc py3 changes  https://review.openstack.org/46390113:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: base64 changes for py3  https://review.openstack.org/46390013:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Encoding changes in tests for py3  https://review.openstack.org/46389913:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Explicitly decode decrypted secrets for py3  https://review.openstack.org/46404913:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: view changes for py3  https://review.openstack.org/46389813:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: writing yaml to disk needs bytes  https://review.openstack.org/46389713:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Fixes for test_model in py3  https://review.openstack.org/46389613:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: None does not compare to int  https://review.openstack.org/46389513:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: make Job and ZuulRole hashable  https://review.openstack.org/46389413:53
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: py3 hashlib error  https://review.openstack.org/46389313:54
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: py3 Changes in __del__ for gitpython  https://review.openstack.org/46389213:54
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: fix imports in py3  https://review.openstack.org/46389113:54
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Use gear Text interface  https://review.openstack.org/46146813:54
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Fix github driver tests for py3  https://review.openstack.org/46607813:54
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Enable py3 tests  https://review.openstack.org/46607913:54
* SpamapS wakes and rebases13:54
Shrewsall your rebase are belong to you13:54
SpamapSnow that we sorted gear 0.9.1, would be nice to start landing those13:54
SpamapSI wanna rock right now now, I'm not internationally known, but I've been known to rebase a microphone13:55
ShrewsRE-base... not ROB Base. silly13:55
jeblairShrews: ++ on the pep8s13:56
* Shrews watches the non-grey beards scratch their heads in confusion13:56
ShrewsSpamapS: jeblair: any idea what's up with this zuul test fail? http://logs.openstack.org/85/466285/1/check/gate-zuul-python27-ubuntu-xenial/946889c/testr_results.html.gz14:05
Shrewsi guess that's a better question for jlk, actually14:05
SpamapSShrews: I think it may be racey14:05
SpamapSI've seen it a couple of times now14:06
SpamapSalso holy crap14:06
jeblairShrews: yeah, it's been flaky lately.  it times out while the test is running.  i haven't looked enough yet to know if it's just slow or theres something more wrong.14:06
SpamapSI have never seen that testr results thing14:06
SpamapShow many years of time have I wasted not discovering it?14:06
* SpamapS sees clock and goes to shuffle children to school14:06
*** rcarrillocruz has quit IRC14:09
openstackgerritMerged openstack-infra/zuul feature/zuulv3: fix imports in py3  https://review.openstack.org/46389114:15
pabelangermorning14:17
jeblairpabelanger, Shrews: i've +2d all of SpamapS's zuul py3 stack if you want to hit some +3s14:19
pabelangersure, let me grab a coffee and give a look14:19
jeblairShrews, SpamapS: aha -- that test does have a race, i just caught it locally14:20
mordredjeblair: should we yaml.safe_dump in https://review.openstack.org/#/c/463897 (as a followup)14:30
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Ignore exceptions in fake nodepool  https://review.openstack.org/46630214:31
jeblairSpamapS, jlk, Shrews: ^ that should fix the flappy test_github_driver test14:32
jeblairmordred: it's "just tests" but probably a good idea to develop good habits and prevent copy pasta mistakes later :)14:33
mordredjeblair: ++14:33
mordredcool - wasn't sure if it was an on-purpose use of dump14:34
jeblairmordred: on that note, if there *are* any on-purpose uses of dump/load, we should probably comment them explaining14:34
mordredjeblair: I +A'd through to "skip py3 failing tests" ... should we add a py3 unittest job to the gate before landing the next two?14:34
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Use gear Text interface  https://review.openstack.org/46146814:34
mordredjeblair: ++14:34
mordredjeblair: it's one of those places where the comment is useful - kind of like "yes, this dict as a default value for this parameter is not a mistake"14:35
jeblairmordred: pabelanger had a nv thing in progress i thought?14:35
mordredoh cool14:35
mordredjeblair: actually - you know - https://review.openstack.org/#/c/463903 could come with a .zuul.yaml addition of python3 test ...14:35
jeblairmordred: though SpamapS also has a zuul3 py3 job enabled at the end :)14:35
jeblair(that was his special surprise)14:36
mordredok cool14:36
Shrewsit was NOT a cookie, which disappointed me14:36
pabelangernodepool have -nv python35 test now, and experimental dsvm-nodepool-py35 too14:37
pabelangerI also added tox-py35 for zuulv3, so .zuul.yaml change should work14:38
jeblairpabelanger: oh, it was nodepool not zuul -- do you want to add a zuulv2 py35 job for zuul too?14:38
pabelangerjeblair: sure14:38
mordredjeblair, SpamapS: stack approved - nice final patch!14:39
mordredpabelanger: that reminds me - I should add a py3 functional test for shade ...14:41
*** hashar has joined #zuul14:41
pabelangerjeblair: start out -nv or start to voting?14:41
pabelangermordred: Ya, I am curious to see how nodepool does14:41
jeblairpabelanger: looks like maybe start out voting :)14:42
mordredpabelanger: that'll be a good py3 test for shade too14:42
pabelangerjeblair: ack14:42
openstackgerritMerged openstack-infra/nodepool feature/zuulv3: Use six.reraise for python3  https://review.openstack.org/46359414:44
Shrewspabelanger: why do we need to wrap map() in list() for https://review.openstack.org/466069 if we don't use the return value?14:48
pabelangerShrews: For some reason, python3 wouldn't run the map() function and wrapping it as a list was the only way I got it working14:48
Shrewsheh. new one to me14:49
pabelangerwhen I looked at docs, it wrapped list(map()) when passing a list to the function14:49
pabelangerhttps://docs.python.org/3/howto/functional.html#built-in-functions14:50
pabelangerhowever, that did return a result14:50
pabelangerso, happy to update it, if there is a better way14:51
Shrewsnah, it's fine. i just had never encountered that one before14:51
pabelangerya, took a while to figure out why our diskimages were not getting deleted14:53
*** dkranz has joined #zuul15:05
mordredpabelanger: what's your nodepool dsvm python3 job?15:05
pabelangergate-dsvm-nodepool-py35-src15:07
pabelangerhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/nodepool.yaml#n6415:07
pabelangerhowever, I see a typo15:07
pabelangerlet me fix real quick15:07
*** hashar has quit IRC15:13
pabelangerany objections if I manually update main.yaml on zuulv3-dev.o.o? Would like to pull in https://review.openstack.org/#/c/466021/ to add nodepool to projects list15:14
SpamapSI figured a voting test in zuulv3-dev would be a sort of medium strength backstop15:23
SpamapSI probably should add a full gate/check in project-config though.15:23
SpamapSthis one is blowing up our pass rate.. https://review.openstack.org/466302 Needs a second +215:25
SpamapSmordred: pabelanger ^15:25
SpamapSThat approved stack will take a bit to land w/o it.15:25
SpamapSjlk: https://review.openstack.org/465912 <-- might be of interest to you (Dockerfile from tobiash)15:27
SpamapSalpine based.. sexy15:28
SpamapShttps://pkgs.alpinelinux.org/package/edge/community/x86_64/bubblewrap <-- yay15:28
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: Add non-voting tox-py35 job  https://review.openstack.org/46632415:30
pabelangerneat, ^ cased an exception in zuulv315:32
pabelangerbut didn't get posted back to gerrit15:33
jeblairpabelanger: what's the error?15:33
pabelangerhttp://paste.openstack.org/show/610054/15:33
jeblairpabelanger: https://review.openstack.org/466079 btw15:34
pabelangerOh15:35
pabelanger:)15:35
jeblairstill, let's see if that reporting error persists15:35
SpamapSWould be very handy to see that comment in Gerrit15:36
jeblairyeah, it tried, but failed15:36
jeblairso either gerrit flaked, or there's something wrong with the gerrit command.  for instance, i don't think we've sent many messages with "<>" in them to date.15:36
jeblairyeah, it failed twice, i think there's an actual bug15:38
jeblairalso it has double quotes15:39
jeblairi think it's the quotes15:40
jeblair(i just manually posted the comment by escaping them)15:40
mordredyay bug!15:41
SpamapSThat sounds like something our gerrit reporter could do automatically.15:42
jeblairyep15:42
jeblairhttps://docs.python.org/dev/library/shlex.html#shlex.quote15:42
jeblairwe're about to become python3 only anyway, right? :)15:43
jeblairhttps://docs.python.org/2/library/pipes.html#pipes.quote15:43
jeblairwonder if there's a six for that15:44
jeblairyep15:44
jeblairfrom six.moves import shlex_quote15:44
SpamapSsix and a six pack are all you need to port to python3 anymore ;)15:46
*** DangerousDaren has quit IRC15:49
jeblairthis is weird.  if you use the 'gerrit review' ssh command with the '--message' and '--submit' args, you can leave a message, vote, and submit all in one command.  but if you use '--json' instead of '--message', you can't submit in the same command (meaning there will be two gerrit events).  this is the same behavior as the rest api, perhaps not coincidentally.16:13
jeblair(i'm looking into the --json argument because shlex_quote ends up putting in too many quotes for gerrit.  also, --json lets us do file-level comments which is something i want to add anyway)16:14
SpamapSanother fail to land py3k due do 465912 not landing yet.16:15
jeblairSpamapS: i hope we don't need a dockerfile to land changes16:16
SpamapSerr16:16
SpamapS46630216:16
* SpamapS eye fail16:16
SpamapSbut yeah, 465912 is _CRITICAL_ ;)16:17
jeblairi +3d the test fix16:19
SpamapShooray16:21
jeblairat any rate, i'm somewhat inclined to proceed with --json and start accepting that we may have a two-event review-and-merge process16:22
jeblairthough... i bet that is going to break *all of* the tests.16:23
jeblairself.assertEqual(len(A.reported), 2) --> self.assertEqual(len(A.reported), 3)16:23
mordredjeblair: --json seems like it's more compelling than two-event is yucky - although the test update patch is totally gonna blow16:24
SpamapSI concur with both of your assessments.16:24
mordredjeblair: we could also use both ... it's rare that you'd want to report exceptions or leave per-line comments when you're submitting16:25
mordredso use --message --submit for submitting successfully - and use json for all the times we're not submitting16:26
jeblairyeah...okay.  so i made a commitment to reduce the review queue this week.  json is going to be a rabbit hole.  i'll shelve it for now, and maybe just do a simple re.sub on " to fix that bug for now.16:26
mordredjeblair: ++16:26
jeblairmordred: that's a possibility...  though all things being equal, i'd like to keep things flexible for the time where we do want to do a line review on a submit.  :)16:26
* SpamapS notices the rabbits have been busy in our garden this week16:27
* jeblair is not sure where the metaphors begin and end16:28
jeblairoh wait, i think shlex may work after all16:30
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Quote message when reporting to Gerrit  https://review.openstack.org/46634516:33
jeblairSpamapS, mordred, pabelanger: ^  apparently that does work16:33
jeblairneat.  we landed our voting python3 job before we finished landing the python3 fixes.16:35
jeblairpabelanger: ^16:37
pabelangeroh16:37
pabelangerlet me revert for now16:37
jeblairpabelanger: i'm on it16:37
pabelangerk16:37
pabelangerjeblair: did you see my comment before about adding nodepool project to zuulv3-dev.o.o? Any objections?16:38
*** rcarrillocruz has joined #zuul16:38
jeblairpabelanger: i'm still not in a rush to do that16:38
pabelangerk, I was thinking it would be a good project to start working on devstack job16:38
pabelangeratleast a simple wrapper job to current bash setup16:39
jeblairpabelanger: i'd like to focus more on getting the basic jobs set up and the standard library first16:39
pabelangerk16:39
pabelangerI have a few patches going for openstack-zuul-jobs topic16:39
SpamapSheh, and that's why I started with a .zuul.yaml python3 job first ;-)16:39
jeblairi'd like us to set up the other job/role repos we talked about.  until we do that, we're forcing the bonnyci folks to have their own forks, which is not good16:39
pabelangerright now getting docs sphinx publisher doing16:39
pabelangerright, I think we said zuul-base-job as the new repo?16:40
jeblairpabelanger: yeah, i think zuul-jobs for 'tox', and zuul-base-jobs for 'base'.  (probably still plural for consistency even if we think it'll only have one job)16:41
jeblairSpamapS, mordred: sound about right ^?16:41
pabelangeris there a way to have no_log: True only log on a failure of the task?16:51
*** jkilpatr has quit IRC16:58
SpamapSjeblair: so the idea is that we can reuse tox, but don't have to reuse all the infra-isms in zuul-base-jobs?17:00
pabelangerdoes bonnyci have a tox jobs today?17:04
pabelangerTrying to understand what bits you wouldn't want from http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/scripts/run-tox.sh17:05
jeblairi'll write some of this up in an etherpad, gimme a min.17:05
*** jkilpatr has joined #zuul17:11
jeblairSpamapS, pabelanger: this is what i'm thinking: https://etherpad.openstack.org/p/zuul-jobs17:11
jeblairpabelanger: there's a whole bunch of testr stuff in there.  that shouldn't be in a tox job in zuul-jobs (tox != testr).  so, if possible, we should have zuul-jobs/tox "just run tox" or as close to that as we can get.  then we should have openstack-zuul-jobs/tox-testr add our testr stuff (or maybe that's useful enough to put in zuul-jobs).  then openstack-zuul-jobs/tox-py35 should inherit from that and set the environment name.17:14
jeblairpabelanger: er, the context of my last statement is the run-tox.sh script you asked about :)17:14
SpamapSI haven't looked at what jamielennox has setup in our zuulv3 just yet.17:17
mordredjeblair: agree with the general description. fwiw - I think "process testr results" is potentially a post-process role that can be in zuul-jobs that tox-testr uses, but could just as easily be used if someone did a non-tox-based testr job17:22
jeblairmordred: that makes sense17:23
mordredjeblair: I'm saying that just in service of thinking about a general catalog of jobs and job pieces ... I don't think a ton of people are going to rush up wanting testr post-processing17:23
jeblairpabelanger: i'm confused by 466049.  in your commit message, you write about wrapping keys() in list() because keys() returns an iterator now.  but there are only a couple of places where that's actually necessary (most of those changes are areas where we're already iterating).  but the subject of the commit is "Python3: RuntimeError: dictionary changed size during iteration".  that makes me think that you saw some place where we were relying on ...17:25
jeblair... freezing the list of keys.17:25
jeblairpabelanger: do all of the instances you changed really need that?17:25
SpamapSehh17:27
pabelangerjeblair: no, I did a grep / regex match. I can go back and validate which ones were causing issues17:27
SpamapSjeblair: http://logs.openstack.org/02/466302/1/gate/gate-zuul-python27-ubuntu-xenial/03dac6a/testr_results.html.gz17:27
SpamapSDoesn't fix the problem unfortunately17:28
SpamapSI think that test might be bonghits17:28
jeblairpabelanger: okay, that's probably worth doing17:28
jeblairSpamapS: oh, that may still be the same problem17:29
SpamapSor there's a real problem that the driver is exposing17:29
SpamapSdid not get the Disappeared debug log17:29
jeblairoh, hrm17:30
SpamapSwell17:31
SpamapSit may be the same problem from another angle17:31
SpamapSwhatever failure there is, some cleanup gets skipped I think17:31
jeblair(i wish we logged what node was still around)17:31
SpamapSsince we're not going to fulfill requests17:32
jeblairnode request 100-0000000004 was canceled17:32
SpamapSjeblair: what if you wrapped the fullfillRequest call in that handler instead of _run?17:32
SpamapSso the loop finishes17:33
SpamapSI think that may be it actually17:33
jeblairit should start over again17:33
SpamapSwe're left with several cancelled disappeared nodes17:33
SpamapSunless _running is already false17:33
jeblairyeah, i think that's the case -- we created a node for a node request, but then left it sitting around17:34
jeblairthat loop doesn't clean up such nodes, however, i think perhaps it should17:34
*** jkilpatr_ has joined #zuul17:36
SpamapSit's the requests that's causing the state assertion fail though, so perhaps we also just need to make sure we still "fullfill" the request on disappeared node?17:36
SpamapSlike maybe the handler needs to be even deeper17:37
*** jkilpatr has quit IRC17:38
jeblairSpamapS: well, the disappearing in this case is the request, so 0004 (which was canceled) should not show up in the list17:38
jeblairwhich is why i'm curious what request was still there17:38
jeblairlooks like 0006 from the log lines above it17:39
SpamapSso17:42
SpamapS_false is already set17:42
SpamapSwe call shutdown before assertFinalState17:42
jeblairSpamapS: there wasn't an exception though, so we didn't exit that loop prematurely17:43
SpamapSperhaps we didn't even make it through the loop at all before the test ended?17:44
jeblairalso, scratch what i said about cleaning up in the loop, that didn't make sense17:44
jeblairSpamapS: what i've gathered from the logs is: the 0006 request still existed when the test shutdown.  it had previously been fulfilled by the fake nodepool.  this means that zuul ignored the completed request.  that smells like a real bug.17:46
jeblair"Resubmitting lost node request <NodeRequest 100-0000000004 <NodeSet OrderedDict()>>" is also very fishy.17:46
jeblairi wonder if 0006 is 0004 resubmitted17:47
SpamapSindeed feels like a real race17:49
SpamapSnot just a testing one17:49
SpamapSperhaps something needs to be paused?17:49
jeblairi think i see the race:  http://git.openstack.org/cgit/openstack-infra/zuul/tree/zuul/nodepool.py?h=feature/zuulv3#n3817:51
jeblaircontext switch between lines 42 and 45 means we can get the watch notification and run this entire function before switching back: http://git.openstack.org/cgit/openstack-infra/zuul/tree/zuul/nodepool.py?h=feature/zuulv3#n9317:52
jeblairline 98 being the key there17:52
*** Cibo_ has joined #zuul17:52
SpamapSwould be nice to have a log of that broad except Exception:17:52
jeblairSpamapS: on line 44?  we would if we hit it.17:53
SpamapSoh I read that wrong right17:53
jeblairi think the fix is to put line 45 after line 4017:54
SpamapSso does self.requests access need to be serialized?17:54
*** tobiash_ has joined #zuul17:54
SpamapSjeblair: agreed, that would allow us to keep it lock free since the other side only needs read access17:55
jeblairya.  a lock would work but i don't think we need it17:55
jeblairSpamapS: hrm, there's also a del self.requests in a different code path in the watch function17:56
jeblairthat could race too17:57
SpamapSright I just notied that too17:57
jeblairwe could just wrap those in try/except17:57
SpamapSbut I think deleting concurrently is ok17:57
SpamapSoh yeah they both might try17:57
SpamapSso yeah making the deletes handle a missing one would again keep it lock free17:58
SpamapSsince you don't care who deletes it, as long as one of them does.17:58
jeblairyeah, if we got notification the request was fulfilled and right before we sent it back to the scheduler, we decided to cancel the request17:58
jeblair^ is the race path17:58
* SpamapS grumbles Rust17:58
jeblairSpamapS: yep.  part of why i want to try extra hard to avoid locks is that _updateNodeRequest is in the main ZK thread, so any time we spend in there our interaction with ZK is paused17:59
jeblair(onNodesProvisioned just adds an event to the scheduler queue for it to deal with the next time around, it doesn't do any real work)17:59
jeblairoh, what if we made the delet inside of the watch callback the only delete18:01
jeblairwe can add another way to check that the request is canceled, like a flag on the request itself.  that might be tidier?18:02
SpamapSjeblair: I like single-writer-thread paradigms.18:07
SpamapSjeblair: however, I also think just not caring if the delete fails is sufficient here.18:09
*** harlowja has joined #zuul18:13
tobiash_hi18:23
jeblairSpamapS: in looking at this, i also see another potential problem -- once we have handed over the node request to the scheduler, it's going to expect to delete it.  but if we cancel it after we submit that event to the scheduler, the cancel method may delete it first.  that should be fine -- it'll just log an exception and mark the request failed (we canceled it, so we don't care anyway).  but it's still a bit messy, and i think the only way ...18:23
jeblair... around that is a lock.18:23
tobiash_are there any objections enriching some of the logging in zuul with the extra keyword (https://docs.python.org/2/library/logging.html#logging.debug)?18:24
tobiash_when using log formatters using addition meta data from that it could be simplified to e.g. trace the lifecycle of a change in zuul via e.g. kibana18:25
tobiash_s/addition/additional/18:25
tobiash_same might be handy for tracing the lifecycle of nodes in nodepool18:26
SpamapSjeblair: agreed, messy cleanup, or locking, is the choice :-P18:27
jeblairtobiash_: well, i think all of that information should be in the log message itself.  if adding it to extras helps systems like kibana, i think that's fine, but we should make sure it ends up in the formatted message too (i know that we can use the extras in a formatter defined in the standard logging config, but i'd prefer to keep that as simple as possible, and not dependent on the code)18:30
jeblair(maybe we should add some logging helper functions for change or node related messages)18:32
tobiash_jeblair: that sounds good18:32
tobiash_I have the feeling (will have to verify that) that when I look at the filtered log for a change number in kibana I see less then I would watch directly the debug logging.18:34
tobiash_especially trying to figure out why something was not triggered as expected18:34
SpamapSIndeed, a few things could probably use some info logging love.18:35
SpamapSWhich is probably the real reason those bits are missing, not that the message is there, but missing an id.18:35
SpamapStobiash_: I like the idea though, of having context extras18:36
tobiash_I also would like to have both (filtering by extras often produces less noise like matches in timestamps)18:37
pabelangerjeblair: mordred: did we have a patch up for zuul console to redirect stdout for shell?18:38
pabelangerright now we do not see that in ansible_log.txt18:38
tobiash_also often when processing one change often dependents or dependees are mentioned in the log too which is easier to filter by metadata than text matching18:38
jeblairpabelanger: zuul_stream callback plugin should do it18:42
SpamapSI thought we had a patch up for 'command'18:42
SpamapSbut didn't see it for 'shell'18:42
SpamapShttps://review.openstack.org/46075318:43
pabelangermaybe that is it. This is shell18:43
pabelangerbut, I really should be using command I think :)18:43
jlkonly 300+ unread messages in this channel Somewhere somebody talked to me.18:43
SpamapSyes you should. :) pwn your environment. :)18:44
SpamapSjlk: that was me, pointing at a patch to add a Dockerfile to zuul from tobiash_18:44
SpamapSand we might have cursed your name while jeblair found a race in nodepool.py exposed by the github tests18:44
jlkis that nodepool bug my fault?18:46
pabelangerjeblair: is it a lot of work to support bidirectional CRD?18:47
jlkoh doesn't look like it18:47
jeblairpabelanger: more than we're going to do before 3.0, and we will probably not turn it on for openstack.18:52
tobiash_btw, thanks for the comments on the dockerfile patch18:53
tobiash_where should I move it to?18:53
* jlk still needs to look at that18:53
tobiash_tools/docker/ ?18:53
SpamapSI think a contrib/docker makes more sense.18:53
SpamapSmaybe even contrib/docker/alpine18:54
tobiash_ok, so contrib would be new18:54
tobiash_ok, I'm fine with that18:54
pabelangerjeblair: what is the reason for not enabling it in openstack?18:55
SpamapSYeah, it's a pretty standard place to stuff "things that help us integrate with other projects"18:55
tobiash_same for the nodepool docker file (https://review.openstack.org/#/c/465852/)?18:55
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Improve safety around canceling node requests  https://review.openstack.org/46630219:01
jeblairSpamapS, jlk: ^ single patch double fix19:02
jeblairpabelanger: to force stepwise upgrades19:03
jeblairtobiash_: yes please19:04
tobiash_jeblair: ok, will update both on monday probably19:04
pabelangerjeblair: makes sense, thanks19:04
SpamapSjeblair: nice and succinct19:05
pabelangerso, I just push up a few changes to our openstack-zuul-jobs / openstack-zuul-roles (this are specific to openstack-infra) but I've started making them more generic so we can start thinking of moving some thing into zuul-jobs: https://review.openstack.org/#/q/topic:openstack-zuul-jobs19:06
pabelangermajor changes are starting to be explicit about passing variables from playbooks to roles19:06
jeblairpabelanger: cool.  also, we should set gerritbot notifications in here on zuul-jobs and zuul-base jobs when we create those.  we can probably continue to ignore openstack-zuul-jobs.19:06
jeblairShrews, mordred: can you review https://review.openstack.org/466302 ?19:08
pabelangerjeblair: sure, I'll get a patch up for zuul-jobs / zuul-base-job(s) shortly19:08
pabelangerthen we can bikeshed on naming19:08
Shrewsdoing so now19:08
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Also send stdout back in the Result object  https://review.openstack.org/46075319:08
pabelangerI wouldn't mind also upgrading zuulv3-dev.o.o to master to get ^19:10
Shrewsjeblair: +0 comment there19:11
jeblairShrews: derp, thx19:12
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Improve safety around canceling node requests  https://review.openstack.org/46630219:12
jeblairokay, please +3 that one; once it lands, we can recheck the entire py3 stack and get it merged19:14
SpamapSeven less lines :)19:14
Shrewsdone19:14
jlk*fewer19:15
SpamapSjlk: thanks, nerd. ;)19:15
*** Cibo_ has quit IRC19:15
* SpamapS needs to get back to executor-security soon :-P19:16
* jeblair feeds19:16
jlk:D19:16
SpamapSpabelanger: btw, I looked into paramiko's docs and I think the ssh-agent stuff they do isn't really helpful19:17
SpamapSpabelanger: they don't actually manage ssh-agent, they just help paramiko threads connect to it19:17
jlkAt blue box, somebody wrote a ssh agent muxer19:18
jlkthat might be of use.19:18
jlkhttps://github.com/blueboxgroup/sshagentmux19:19
jlkthough I have no idea if it solves any of hte problems you're trying to solve19:19
pabelangerSpamapS: that is what I seen too. I wonder if that is something we should ask upstream if there is any interested in adding it?19:23
SpamapSjlk: no it's not the same problem19:23
SpamapSthis one is actually 1:119:23
SpamapSagent <-> build19:23
SpamapSpabelanger: yeah I dunno, it feels generic, but I also don't know how many people want to spin up _multiple_ ssh agents :)19:24
pabelangeralso, I take it since nobody objected I'll proceed with zuulv3-dev update to master in 20mins19:24
pabelangerSpamapS: true19:25
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Improve safety around canceling node requests  https://review.openstack.org/46630219:26
SpamapSyay19:28
* SpamapS rechecks py3k19:28
jlkgeez, it's no wonder I struggled so much with the patch series.19:29
SpamapSjlk: honestly.. races like those are why I get silly about Rust all the time.19:31
SpamapSRust's only concurrency problem now is there's simply no way to detect deadlocks.19:31
SpamapS(all languages have that)19:31
SpamapSbut I digress.. yay python319:32
* SpamapS wanders off to feed as well19:34
*** tobiash_ has quit IRC19:39
openstackgerritMerged openstack-infra/zuul feature/zuulv3: py3 Changes in __del__ for gitpython  https://review.openstack.org/46389219:45
openstackgerritMerged openstack-infra/zuul feature/zuulv3: py3 hashlib error  https://review.openstack.org/46389319:48
openstackgerritMerged openstack-infra/zuul feature/zuulv3: make Job and ZuulRole hashable  https://review.openstack.org/46389419:53
openstackgerritMerged openstack-infra/zuul feature/zuulv3: None does not compare to int  https://review.openstack.org/46389519:53
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Fixes for test_model in py3  https://review.openstack.org/46389619:53
openstackgerritMerged openstack-infra/zuul feature/zuulv3: writing yaml to disk needs bytes  https://review.openstack.org/46389719:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: view changes for py3  https://review.openstack.org/46389819:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Encoding changes in tests for py3  https://review.openstack.org/46389919:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: base64 changes for py3  https://review.openstack.org/46390019:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: misc py3 changes  https://review.openstack.org/46390119:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: fix webapp tests for py3  https://review.openstack.org/46390219:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Explicitly decode decrypted secrets for py3  https://review.openstack.org/46404919:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: skip py3 failing tests  https://review.openstack.org/46390319:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Fix github driver tests for py3  https://review.openstack.org/46607819:55
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Enable py3 tests  https://review.openstack.org/46607919:55
openstackgerritJesse Keating proposed openstack-infra/zuul feature/zuulv3: Remove pipeline argument from various report fncts  https://review.openstack.org/46425219:56
jlklordy that's a lot of merges19:56
pabelangerokay, starting upgrade of zuulv3-dev19:57
pabelangerand started again20:01
jlkjeblair: were you going to continue hacking on https://review.openstack.org/#/c/466105/ today? Do you think it needs any major structural changes, or should I be able to start porting my later changes on this structure?20:07
jeblairjlk: yeah, i'll clean it up in a few.  i *think* it should be relatively safe to start porting, if the api lgty.20:10
SpamapSwewt20:23
SpamapSpabelanger: we can revert your revert too20:23
SpamapSand start gating on py320:23
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add driver-specific pipeline requirements  https://review.openstack.org/46610520:24
*** jkilpatr_ has quit IRC20:24
jeblairi unwiped https://review.openstack.org/46634920:24
SpamapSI have to say... the experience of editing your own .zuul.yml to run jobs is.. fantastic.20:25
pabelanger+3 on revert of python35 zuul job20:28
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Quote message when reporting to Gerrit  https://review.openstack.org/46634520:44
jeblairjlk: woot 466105 is clean now20:44
jeblair(even passes py3)20:44
* SpamapS is going to start defaulting to -epy3520:45
*** jkilpatr has joined #zuul20:45
jeblairSpamapS: yeah, also, i think we should move openstack-infra to running it in py3 and drop the py2 tests before too long.  once we land the websocket/asyncio stuff, at least part of this will effectively be a py3-only app.20:47
mordredjeblair: ++20:48
SpamapSjeblair: indeed, I'll start the wheels on that for Bonny too20:48
mordredjeblair: I can't think of any reason to keep the other version20:48
jeblairmordred: it's nice being an app, not a library :)20:48
mordred++20:48
mordredwe should double-check with tobiash to make sure that won't screw him before we pull the trigger- but he seems to be using a docker container, so I imagine it should be non-hard20:49
jeblairmordred: i think you just docker a new docker, right?20:50
jeblairpabelanger: got a second to talk about jobs?20:52
mordredjeblair: that's my understanding, yes20:52
pabelangerjeblair: sure20:53
jeblairpabelanger: i'm looking at 466332 and 466330, and that adds a net-info role to the base job.  the net-info role is openstack specific.20:53
jeblairpabelanger: so on one hand, it's fine to add that to openstack-zuul-jobs.  but if you're planning on staging things there and moving them into zuul-base-jobs later, then that's a layer violation20:53
jeblairpabelanger: so how would you like to proceed?  review for layer violations now, or later when you move stuff out?20:54
pabelangerwhat is a layer violation is this context20:54
jeblairpabelanger: adding something openstack-specific to something that shouldn't be.20:55
jeblairpabelanger: lowest layers should be usable by everyone, higher layers are more site-local.20:55
pabelangerso, I was going to add host-info for zuul-jobs which contained things like executor info20:55
pabelangerand keep net-info as openstack specific20:56
pabelangermaybe we should rename it to openstack-info and zuul-info roles20:56
jeblairthat sounds safer (we want to assume as little as possible about the host in the base job)20:58
jeblair(like, not even assume it's running linux)20:58
pabelangerya20:58
pabelangerokay, I'll rename net-info to openstack-info20:58
jeblair(we will assume we can rsync data on/off the host, but that's about it.  if we can't rsync, *that's* the sort of case where someone should build their own base job :)20:59
jeblairpabelanger: i suspect for openstack we won't use the base job defined in zuul-base-jobs; we'll just use the roles from it.21:05
pabelangerya21:05
jeblair(so this is probably going to be weird until we actually make the zuul-base-jobs repo)21:05
jeblairpabelanger: why no_log in 466352+21:08
jeblair?21:08
pabelangerjeblair: less logging for rsync21:09
pabelangerbut I can remove it21:09
pabelangerI'd actually like to only log if an error21:09
jeblairpabelanger: oh, got it.  yeah i hate those.21:09
* SpamapS EOD/EOW's21:14
SpamapSjeblair: thanks for ramming py3 in! It's great to see progress on that.21:14
jeblairSpamapS: thank you!21:14
jeblairpabelanger: regarding 466360, remind me why we can't do http://paste.openstack.org/show/610071/  ?21:15
*** yolanda has quit IRC21:18
pabelangerjeblair: I think we'll leak variables from the role into the playbook. It seems that include_role will load the role for that task, then remove it21:19
jeblairthat seems counter-intuitive to me :(21:19
*** yolanda has joined #zuul21:20
pabelangerwhich, I think may provide better protection for variable scoping21:20
pabelangermy logic is, I don't want a role to set a variable, that is consumed from another role / playbook21:20
jeblairpabelanger: sure, i just don't understand why it would be scoped like that21:20
pabelangerif we wanted to do that, we could use facts21:20
pabelangerlet me get the docs link I was reading21:21
pabelangerjeblair: also, if we use include_role we can do them for pre and post tasks.  Something we might want to do for a playbook21:22
pabelangerI'm a fan of treating roles more like a task :)21:23
jeblairpabelanger: i want our basic jobs to be as easy to read as jjb.  because i want people who don't understand much about ansible to be able to edit them in the same way they do jjb.21:23
jeblairotherwise, all of this will end up making *more* work for us, not less21:24
jlkI"d been meaning to ask, why is everything a role in zuul land?21:24
jlklike, single-task roles are weird21:24
pabelangerjlk: easy mode until we import all of JJB, then we could refactor21:24
pabelangerjeblair: Right, I've found include_role to be straightforward.  But that said, I was considering using something like ansible-review to help users write / edit our playbooks.  It offers up an interface to write syntax checks for things21:26
pabelangerwe'd basically create rules for checks: https://github.com/willthames/ansible-review21:27
jeblairpabelanger: that does not match my goals for zuulv3 for openstack.  it's *really* important to me that people with almost no understanding of ansible be able to be at least as successful editing jobs as they are with jjb and project config.21:27
jeblairpabelanger: honestly, i think that's a pretty low bar.  :)21:27
openstackgerritJesse Keating proposed openstack-infra/zuul feature/zuulv3: Remove pipeline argument from various report fncts  https://review.openstack.org/46425221:29
jeblairpabelanger: i think my suggestion for role arguments will work21:33
jeblairpabelanger: https://etherpad.openstack.org/p/hImFwPbSD121:33
jeblairpabelanger: that shows the role using the variable, but it not leaking into the task which follows21:35
pabelangerjeblair: Hmm21:36
jeblairpabelanger: i also tried it with the same role repeated but no variable, that also correctly errored21:36
jeblairand of course, if i remove the {{foo}} it works21:36
pabelangerlet me test again locally21:36
pabelangerit used to leak21:37
pabelangeralso, there is another use case for include_role, which my commit didn't reference.  If we need to run a task between 2 role, using roles setting doesn't allow that21:37
pabelangersince roles and task run at different stages21:37
mordredyes. that is the  main use-case for include_role in my brainhole - to be able to intersperse roles and tasks in a defined sequence21:38
pabelangerso, with that in mind, I've just defaulted to include_role for playbooks to pick one way for doing them21:39
jeblairyeah.  i don't think we need to do that in these fundamental jobs though21:39
jeblairi'd rather we use the easiest way for novices to edit.  either a list of roles or a list of tasks is fine.  using both is complex.  but tasks with include_role are so much more complicated than a list of roles.21:40
jlkyou mean you don't want people to have to understand pre_tasks, roles, tasks, post_tasks, and how handlers interact with all of those?21:41
jeblairjlk: right.  we're throwing enough new zuul stuff at them already (though i have tried really hard to make all that just dtrt 90% of the time if you edit it without understanding).  :)21:42
jlki get it. I honestly have to go back to my book when I'm sorting out order of operations. I can't remember it all the time.21:43
jeblairansible is really powerful, and i'm sure we're going to have jobs that end up using some pretty snazzy ansible stuff because it's actually easier.  but the challenge for us setting up these jobs is to make them so that someone who just wants to add a new tox job to their project can do it without asking us how.  :)21:44
jlkbingo21:50
jlkWe in Bonny land created a base job that would just execute script in a known path. Super quick-start.21:50
pabelangerjeblair: okay, etherpad updated with leaked vars21:54
jeblairpabelanger: help me out there -- what's leaking?21:54
pabelangerjeblair: blah variable21:54
pabelangercoming from roles/testrole/defaults/main.yaml21:54
pabelangerfirst play shows leak, 2nd protects21:55
pabelangerwith include_role21:55
jeblairpabelanger: so setting defaults leaks21:55
jeblairnot role arguments21:56
pabelangerand vars21:56
pabelangervars.yaml21:56
pabelangeryes...21:56
pabelangerso, some places we do setup defaults, to be sane21:56
jeblairwe could not do that.  i'm not sure a run-tox role needs a default.21:56
pabelangerwe could stop doing that, and force all playbooks to pass variables21:57
pabelangerI think if we default to include_role, and standardize on that, we avoid the problem of roles have defaults or not.  In both cases, we protect the variable leak.  However, it means jobs require a little more code21:59
pabelangerand, from what I see with project-config patches, most people copypasta things anyways21:59
jeblair2.5x the number of lines22:00
pabelangerit looks like private: true / false doesn't matter either22:02
pabelangerwhen I toggled it, nothing happend22:02
pabelangerso maybe a bug22:02
jlkso I'm reluctant on include_role22:06
jlkit's still tech preview, and there's been numerous bugs with it22:06
jeblairi think as long as roles are the unit of composability we're working with, we should make it as easy as possible to use them.  i think role arguments are more easily read and understood.22:06
jlk"This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface."22:06
jeblair(as an aside, the first backwards-incompatible change we have to make over 1800 repositories is going to be... what's the word... fun?)22:07
jlkthat is certainly A word22:07
pabelangeryes, from what I have seen, each release of ansible required playbook / role changes. So, tech preview / stable, something has broken me.  However, I know this will get better over time22:08
* SpamapS isn't here22:09
SpamapSI'm guessing we'll eventually have to allow jobs to specify their ansible version and install multiple ansibles.22:09
SpamapSwe should fight against that tooth and nail22:09
jlkhttps://github.com/ansible/ansible/issues?utf8=✓&q=is%3Aissue%20is%3Aopen%20include_role 48 open issues involving include_role22:09
pabelangerhaven't found an issue personally22:11
*** harlowja has quit IRC22:12
jeblairclarkb: can you take a look at https://review.openstack.org/455711 and my comment there?  I'm on the fence as to whether the issue I raise is a +1 or a -1.22:13
clarkbjeblair: when the gate is long that can be quite an amount of time22:15
clarkbjeblair: so I think it is a valid concern22:15
jeblairyeah; however, i don't have any alternative technical suggestions about how to solve the problem the patch is addressing :/22:16
jlkoh yeah22:29
jlkso this is a problem with github too22:29
jlkone github reporter is to set a "pending" status on the PR, which zuul will do immediately. But if there are no jobs for the project, there is no "success" report, and the status is left pending indefinitely.22:30
jlkIs there no way to tell "jobs are configured for this pipeline" quickly, and use that to report the message? or would it be a backup because the merger has to examine the repo for job definition?22:31
jeblairjlk: yeah, we don't actually know if there are any jobs until the merger runs, and we don't do that until the active window22:35
jeblairjlk: so i think this patch would fix that, but at the cost of not setting pending until it reaches the active window22:36
jeblairi guess if we want our cake and to eat it too, we'll have to compromise on that and perform the merge outside the active window22:36
jlkwhat defines "active window"?22:37
*** harlowja has joined #zuul22:57
*** jamielennox is now known as jamielennox|away23:00
jlkTypeError: __init__() takes at least 2 arguments (2 given)23:00
jlkTHANKS23:00
jeblairjlk: it's how deep down the gate queue zuul runs jobs; we start it at 20 changes deep, and it halves each time a change fails, and increments each time a change merges.  it's a rough approximation of how flaky the gate is in general.  so if lots of things are failing, we don't do as many parallel tests.23:05
jlkah.23:06
jlkNow that we can scale merger workers (not executor) we could at least allow that part to run rampant.23:06
clarkbyes. the main concern is cloud resources23:07
jeblairjlk: yeah, it's *mostly* about job resources (nodes).  we also conserved merger resources because there was no reason not to, but now we have a reason.23:07
jeblairnova merges still take some time (~30 seconds), so it's not nothing.23:07
jeblairhowever, all of these solutions have some weird edge cases if you think about a change being behind a change that added it to a pipeline, but then the change adding it fails out.  that could still leave us with a start report but not success or failure.23:08
jeblairthe active window consideration doesn't really change that though23:08
jlkthat is a weird consideration23:09
jeblairso i'm kind of inclined to say tobiash's change is better than what we have now, and the active window change would be a further improvement on that.  i'm still at a loss of how to deal with the added-to-pipeline-in-failed-change-ahead problem.  maybe we just need to remember when we've reported start and report failure in that case even if it's not currently in the pipeline?23:10
jlkSounds like we need an additional report state23:11
jlkstart, success, failure, dequeue  ?23:12
jeblairhrm, that's an option23:12
jlkin the github case, we could clear the status23:13
jlkit'd still be a bit weird that it would go pending and then clear23:14
jlkactually, no, can't remove a status23:14
* SpamapS still "isn't here"23:22
SpamapSIs that not a "failed" status then?23:23
SpamapSif not, then I'd say don't report pending until you actually are _running_23:23
jlkin the case where it was enqueued due to a previous pending change, and the pending change failed, I suppose that could make the downstream one "failed", in a sense23:24
SpamapSI think I'd rather (if we can) tie that to whether or not there are any jobs running.23:24
jlkit'd be a weird thing with gate23:24
SpamapSMight mean a proxy layer between.23:25
jlkjeblair: re-looking at your driver pipeline requirements change, why is there so much duplicate code between GerritEventFilter and GerritRefFilter ?  What's the separation of duties there?23:25
jlkEventFilter is "this has to be part of the event to go in" and RefFilter is "this ref/change has to have all these things met to go in"23:26
jlk?23:26
jeblairjlk: yes.  they can theoretically be very different, but they share a lot of things in the case of gerrit (checking usernames, etc).  so that reflects the api, but we should be able to collapse more of that shared code.23:28
jeblairjlk: mostly, i wanted to get the api right to unblock the github stuff23:28
jlkyeah23:28
jlkI'm finding myself duplicating code in github too, so I think there will be a good place to refactor later to simplify.23:29
jeblair++23:29
jlkMaybe an anonymous function for things like matchStatus()23:29
jeblairyeah, also, note the mix-in class i did for approval23:29
jeblairi have to run some errands now; have a good weekend!  :)23:29
jlklater.23:30
* SpamapS wasn't here anyway23:32
jlkstop being here23:32
SpamapSI keep having to order things for pickup and then I sit down and you all talk about interesting things23:34
SpamapSalso procrastinating on packing the car :-P23:34
*** harlowja has quit IRC23:34
*** jamielennox|away is now known as jamielennox23:40

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