Monday, 2018-04-09

*** dkranz has quit IRC00:04
*** odyssey4me has quit IRC00:23
*** odyssey4me has joined #zuul00:23
*** Wei_Liu1 has joined #zuul03:03
*** Wei_Liu has quit IRC03:04
*** Wei_Liu1 is now known as Wei_Liu03:04
dmsimardmordred: I have a stupid question. What would happen if you created hundreds of thousands of MySQL databases ? The databases would be small but self-contained.03:22
dmsimardI guess MySQL is not really the kind of database for that ?03:22
dmsimardI'm considering providing essentially the same thing as the sqlite middleware but for mysql/postgre03:23
dmsimardInstead of having to put everything in one large database, it could be "sharded" and would in theory provide faster seek/scan times ? If the pros don't outweigh the database search time because there'd be so many.03:25
dmsimardTurns out after some reading that's probably a bad idea :D03:35
clarkbdmsimard: each db or table gets its own file dpending how innodb is configured iirc04:04
clarkbchances are your filesystem would not like that at all04:05
dmsimardclarkb: sqlite middleware is kinda like that ?04:05
clarkbdmsimard: sort of, the way we write the files to the fs is very different than how mysql will do it aiui04:14
*** elyezer has quit IRC04:45
*** elyezer has joined #zuul04:46
*** nguyenhai has quit IRC04:55
*** nguyenhai has joined #zuul04:56
*** elyezer has quit IRC05:14
*** elyezer has joined #zuul05:16
tobiashdmsimard: I think with mysql you rather want a db per tenant and not per job05:18
*** AJaeger has quit IRC06:10
*** snapiri- has quit IRC06:16
*** snapiri has joined #zuul06:16
*** AJaeger has joined #zuul06:31
*** hashar has joined #zuul06:58
*** Wei_Liu has quit IRC07:09
*** Wei_Liu has joined #zuul07:10
*** electrofelix has joined #zuul07:41
*** jpena|off is now known as jpena07:50
openstackgerritSimon Westphahl proposed openstack-infra/zuul master: Allow using remote refs to find commits for change  https://review.openstack.org/54496408:25
openstackgerritSimon Westphahl proposed openstack-infra/zuul master: Allow using remote refs to find commits for change  https://review.openstack.org/54496409:16
*** sshnaidm|off is now known as sshnaidm09:30
*** xinliang has quit IRC11:16
*** xinliang has joined #zuul11:27
*** xinliang has quit IRC11:27
*** xinliang has joined #zuul11:27
*** jpena is now known as jpena|lunch11:42
*** JasonCL has joined #zuul12:00
*** elyezer has quit IRC12:00
*** JasonCL has quit IRC12:05
*** JasonCL has joined #zuul12:12
*** elyezer has joined #zuul12:12
*** rlandy has joined #zuul12:14
*** dkranz has joined #zuul12:20
*** jpena|lunch is now known as jpena12:32
*** maeca has joined #zuul12:32
*** maeca has quit IRC12:33
*** odyssey4me has quit IRC12:38
*** odyssey4me has joined #zuul12:38
*** gouthamr has joined #zuul12:49
*** gouthamr has quit IRC12:52
openstackgerritStephen Finucane proposed openstack-infra/zuul-jobs master: Default warning-is-error to True for non-legacy Sphinx projects  https://review.openstack.org/55934812:52
*** gouthamr has joined #zuul13:02
*** gouthamr has quit IRC13:15
*** gouthamr has joined #zuul13:17
*** elyezer has quit IRC13:19
dmsimardtobiash: yeah it was a stupid idea but made me think about something :D13:19
*** elyezer has joined #zuul13:20
*** gouthamr has quit IRC13:26
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Fix missing semaphore release on zk error  https://review.openstack.org/55974514:06
openstackgerritMerged openstack-infra/zuul master: Remove openstack-infra reference  https://review.openstack.org/55958614:23
*** gouthamr has joined #zuul14:29
*** gouthamr has quit IRC14:31
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul master: Fix streaming decoding boundaries  https://review.openstack.org/55932614:37
Shrewsianw: ^^ adds the final decode you suggested. good eye14:38
mordreddmsimard: I actually don't think mysql would care too much - unless as clarkb mentions you get to enough databases thatyou run out of inodes14:58
mordredALTHOUGH - mysql 5.8 or 5.10 or wichever is the one they just released - has finally done the drizzle thing and moved the .frm file content into the innodb tablespace14:59
mordredso with a modern enough mysql (or drizzle) there would be no difference - it would just be a new collection of tables15:00
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Fix missing semaphore release on zk error  https://review.openstack.org/55974515:05
*** gouthamr has joined #zuul15:13
Shrewsmordred: oh did they? i like watching mysql trying to catch up to drizzle15:17
Shrewsit's fun15:17
mordredShrews: yah. stewart tweeted something out a little while ago15:19
*** xinliang has quit IRC15:19
*** xinliang has joined #zuul15:21
*** xinliang has quit IRC15:21
*** xinliang has joined #zuul15:21
*** jpena is now known as jpena|brb15:41
*** electrofelix has quit IRC15:44
clarkbmordred: dmsimard double checking things ext4 has unlimited files per dir it was ext3 specifically that had limits I think so likely fine15:55
*** gouthamr has quit IRC15:56
pabelangerHmm, paths._is_safe_path for synchronize doesn't seem to include the path to the playbook when checking source value. So doing something like source: ../config caused zuul-executor to fail, even though ../config isn't outside of the work directory16:03
clarkbpabelanger: playbooks are un the trusted/ and untrusted/ dirs iirc and are outside of the work directory16:05
pabelangeroh, maybe that is it16:06
pabelangerhttps://review.openstack.org/559132/16:08
pabelangerI think that might help16:08
clarkbpabelanger: I think there are exceptions for other things like copying using template or direct file copy16:09
pabelangerbut, that is for trusted only16:09
clarkbbut synchronize may not have it as its per module needing to set the flag iirc16:09
corvuspabelanger: are you using a zuul which is running 559132?16:09
pabelangercorvus: not sure, I am testing on zuul.o.o16:10
*** hashar has quit IRC16:10
corvuspabelanger: ah, it's not running it yet.  as soon as the etherpad changes land, i'll restart it with that change.16:10
pabelangercool16:10
corvuspabelanger: yes, it should help this situation.  it will be good to repeat your test after restarting.16:10
pabelangerthanks!16:10
*** jpena|brb is now known as jpena16:24
openstackgerritMerged openstack-infra/nodepool master: Add a backoff for failed builds  https://review.openstack.org/55868616:34
corvuswait can we talk about that one?16:34
corvusianw, Shrews, jhesketh: that runs counter to nodepool design goals.  i'd like to discuss it.16:35
corvusShrews: how do we recover from that?16:36
clarkbcorvus: its specific to the test16:36
clarkbcorvus: so the test job detects failure early rather than waiting until the job timeout16:36
corvusoh!16:36
Shrewsyeah, just affects our test, not nodepool itself16:36
clarkb(nothing in nodepool itself has changed)16:36
corvusthe commit message did not convey that information to me16:36
corvusnevermind then, carry on :)16:36
Shrews:)16:36
corvussorry for the confusion16:36
Shrewsmondays are made for confusion16:37
*** hashar has joined #zuul16:42
-openstackstatus- NOTICE: zuul was restarted to update to the latest code; please recheck any changes uploaded within the past 10 minutes16:53
jlko/16:55
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Refactor load sensors into drivers  https://review.openstack.org/54927516:55
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Refactor load sensors into drivers  https://review.openstack.org/54927516:58
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Refactor load sensors into drivers  https://review.openstack.org/54927516:59
dmsimardcorvus: are both docs.o.o/infra/zuul and zuul-ci.org/docs kept up to date ?16:59
mrhillsmanthe console stream requires ingress access to the executor?17:00
clarkbdmsimard: they are both served from the same afs volume aiui17:00
pabelangermrhillsman: unless you have zuul-fingergw, it will be a gateway to executors17:01
clarkbfingergw still requires ingress to executors, but is a single source rather than arbitrary17:01
mrhillsmanwas about to ask that17:01
mrhillsmanso yeah, no console stream :(17:01
dmsimardclarkb: oh, neat17:01
mrhillsmanbut i can push the logs somewhere at least17:01
pabelangeryah, ingress still but wouldn't need public IPs, assuming fingergw bridges the 2 networks17:02
corvusdmsimard, clarkb: actually they're different.  duplicate publication jobs.  i was thinking we probably want to retire docs.o.o/zuul and redirect to zuul-ci.org.17:03
clarkbah17:03
dmsimardcorvus: that's what I thought would be best (even if just from a "branding" perspective)17:04
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Refactor load sensors into drivers  https://review.openstack.org/54927517:04
corvusmrhillsman: yeah, for either finger or web console streaming, we need a route from scheduler->executor.  but other than that, the executors don't need to be accessible.17:04
corvusmrhillsman: so you might be able to put the scheduler on a vpn that can contact the executors.17:05
corvuslet me amend that17:05
mrhillsmanhehe17:05
corvusit's not the scheduler that needs that access, it's the zuul-web and zuul-fingergw processes respectively17:05
corvusthat probably doesn't substantially change things though.17:06
mrhillsmanbut it is web->exec vs web<-exec17:06
corvusmrhillsman: correct17:06
mrhillsmanyeah, unfortunately cannot let anything in17:06
corvusmrhillsman: is vpn an option?17:07
mrhillsmanso, i have everything working right now with the corporate vpn17:07
mrhillsmanthey are just not going to let any ingress that is not an employee17:08
mrhillsmanwhich so far just leaves me with not having console stream17:09
tobiashmrhillsman: what's your network layout regarding the various zuul serivices?17:09
mrhillsmanscheduler, gearman, zookeeper all in public space17:10
mrhillsmanexecutor, merger, n-builder, n-launcher all behind corporate vpn17:10
mrhillsmani want to have something i can start to explore/try the executor-affinity stuff with17:11
mrhillsmanif that is the right term17:11
mrhillsmanotherwise i am not sure tying in this with an environment that is all in public space will work17:12
clarkbmrhillsman: in this case its fingergw making connections to known port on the executors. Then the data it reads is proxied to the user on the public finger port side. I don't think that is any less secure than copying the logs off host at the end of the job abd allowing arbitrary code execution17:12
clarkbof course if you sell it as arbitrary code execution people might get scared17:12
mrhillsmanat least right now it is confirmed console stream won't be available17:12
tobiashwith that topology and your restrictions I fear the only possibility is to put zuul-web/zuul-fingergw also behind the corporate vpn and sacrifice global availability of streaming17:13
tobiashbut you at least could make streaming possible for your employees17:13
mrhillsmanclarkb that may be doable17:13
pabelangercouldn't the executor establish a connection to zuul-fingergw to support this use case?17:13
mrhillsmanthat makes sense tobiash17:13
pabelangerI would guess that would means something other then finger protocol17:14
clarkbpabelanger: assuming that doesn't violate some different security policy17:14
mrhillsmanpabelanger that would be ideal of course but not sure ^17:14
pabelangerclarkb: yah17:14
mrhillsmansorry, i mean, not sure that is possible without some codefu17:15
mrhillsman^ for your comment not clark's :)17:15
clarkbfwiw you could totally do that with a reverse ssh tunnel and just run the fingergw as is17:15
clarkb>_>17:15
pabelangeryah, that should work too17:16
pabelanger:)17:16
mrhillsmani think reverse ssh tunnels are security policy violations hehe17:16
tobiashwhich likely is against policy ;)17:16
clarkbbut again no less secure17:16
mrhillsmanconsole streaming is not a deal breaker17:16
clarkbif you set it up to do just a port forward between the two it would be basically equivalent to reversing the direction of the tcp SYN17:17
mrhillsmanand since it does connect to a known port that could be something17:17
*** jpena is now known as jpena|away17:18
tobiashis it possible to do streaming via gearman?17:18
mrhillsmanthis port, traffic from this address, of this protocol, and whatever other restrictions may be feasible17:19
mrhillsmanbut i do not know if the blanket policy is no ingress17:19
mrhillsmanso i am working from that as a worst case scenario17:19
mrhillsmanor best case scenario :)17:20
*** bhavik1 has joined #zuul17:25
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Update Github3.py to 1.0.3  https://review.openstack.org/55979817:27
tobiashjlk: preparation for your upcoming release ^ ;)17:27
*** gouthamr has joined #zuul17:27
jlkoh cool.17:27
jlkI suppose I should do that today :D17:27
jlkI'll -2 that until 1.0.3 is out :D17:27
tobiash:)17:28
jlkor rather w-117:28
*** sean-k-mooney has joined #zuul17:32
*** bhavik1 has quit IRC17:33
sean-k-mooneyo/17:34
sean-k-mooneyhi does anyone recognise this error "Implicit role not found in /tmp/978bdac494724e54a327e0a949f1de70/ansible/pre_playbook_0/role_0/zuul-base-jobs"17:35
*** gouthamr has quit IRC17:35
pabelangersean-k-mooney: which zuul-base-jobs are you using?17:38
sean-k-mooneyopenstack/zuul-base-jobs17:38
sean-k-mooneymaster17:38
sean-k-mooneyit looks identical to https://git.zuul-ci.org/cgit/zuul-base-jobs/17:38
pabelangercan you share URL for console log?17:39
pabelangerI have to AFK, but will be able to help when I return17:39
sean-k-mooneypabelanger: unfortuetly i dont have any i am trying to setup a new ci. i have the noop job working but when i treied to get the tox-pep8 job to work i hit this error17:39
openstackgerritTobias Henkel proposed openstack-infra/zuul master: WIP: Add cgroup support to ram sensor  https://review.openstack.org/54950617:40
sean-k-mooneypabelanger: and no worries thanks for trying to help :)17:41
tobiashsean-k-mooney: This message typically is no error but is emitted on every repo which has no /roles directory. This message is just informational for debugging role path issues.17:42
tobiashsean-k-mooney: that's why we have a change up to make this a debug message: https://review.openstack.org/55686617:43
tobiashsean-k-mooney: do you have an issue you are debugging?17:43
sean-k-mooneytobiash: right so both https://git.zuul-ci.org/cgit/zuul-base-jobs/ and https://github.com/openstack-infra/zuul-base-jobs do not have role direcoties17:43
tobiashthat's ok so your real error is probably somewhere else17:44
sean-k-mooneytobiash: im tring to set up a thrid party ci using zuul v3. i have the noop jobs working and it is claiming a instance fine in nodepool but i have not figured out how to get job logs working yet17:45
sean-k-mooneythe only log i have so far is the executor log http://paste.openstack.org/show/718762/17:46
corvusyeah, that's the next thing we need to add to the zfs guide, and the base jobs repo17:47
sean-k-mooneytobiash: i could set up an autohold for the vm but i dont know where to start looking to debug what failed. is there a default location inside the vm that would have more info17:47
corvuswas someone working on that last week?17:47
tobiashsean-k-mooney: so the actual error is 'ansible timeout exceeded'17:48
sean-k-mooneytobiash: yep i just have no idea why17:49
tobiashwhat you could to is to execute 'zuul-executor verbose'17:49
tobiashafter that the executor will output ansible debug stuff17:49
sean-k-mooneytobiash: oh ok will that print the ansible output to the executor log17:49
tobiashand you also seem to have your log level to info17:49
corvusoh, right, it was LinuxJedi that we were working with, and it was 2 weeks ago: http://eavesdrop.openstack.org/irclogs/%23zuul/%23zuul.2018-03-27.log.html#t2018-03-27T14:07:4517:49
tobiashyou need to set this to debug17:49
corvuswe need a runtime info/debug switch17:50
sean-k-mooneytobiash: ok cool ya i just left it at default but that makes sense i should have tried that.17:50
tobiashcorvus: wasn't there a patch for this or did I dream of it?17:50
corvustobiash: not quite -- we use debug if you run with '-d' (no daemon).  but otherwise, the only way to get debug is via a logging config17:51
corvuswhich i'd like to get rid of for all but the most extreme development debug cases17:51
sean-k-mooneytobiash: ill try running in debug mode and see if i can fix the real error thanks. by the way is there a documented way to reuse things like the devstack and tempest jobs. i had quite alot of issues useing them without including every poject in openstack.17:52
sean-k-mooneythe required_projects item in job definitions is kind of virial17:52
corvussean-k-mooney: not documented yet -- if you can help us with that in openstack-infra, that would be great17:52
corvussean-k-mooney: i have an idea to make required-projects less viral, but won't be able to implement it for a little while yet17:53
corvussean-k-mooney: but we should eventually get to the point where something can be in required-projects but not be in main.yaml17:53
corvus(doing that depends on some configuration refactoring that is in progress, but i had to put on hold for a bit because other things came up)17:54
sean-k-mooneycorvus: im not sure you would like how im doinging it (create a local repo called openstack-infra/project-config with no jobs).17:55
sean-k-mooneycorvus: even then my tenant definition looks like this http://paste.openstack.org/show/718763/17:55
corvussean-k-mooney: why do you need to create a local openstack-infra/project config repo?17:57
sean-k-mooneycorvus: its a required project in one of the job definitions17:58
corvussean-k-mooney: can you point out which one, that sounds like a bug17:58
sean-k-mooneylet me see if i can find it. it may have been the openstack-zuul-jobs which i have now removed form the list17:58
corvussean-k-mooney: cool.  if it's not a bug (or not something we can fix), you should be able to add it to the config under "untrusted-projects: include: []"18:00
sean-k-mooneycorvus: i was getting an error because it contains pipeline definitions and they are not allowed in untrusted-projects. the execption is still trown when it in the include: [] section18:01
corvussean-k-mooney: that sounds like a zuul bug18:03
sean-k-mooneycorvus: ok so yes the dependecy on project-config was from the openstack-zuul-jobs not devstack or tempest directly. https://github.com/openstack-infra/openstack-zuul-jobs/blob/master/zuul.d/jobs.yaml#L8918:03
sean-k-mooneywith the current list of project i do not need my own local copy of openstack-infra/project-config18:04
corvussean-k-mooney: good!  we should still look into that zuul bug :|18:05
sean-k-mooneycorvus: its not just the require projets unfortuetly as the same happens with secrets too. i think the exeption is been throwen uncontionally without regards for include: [] or exclude: ...18:06
sean-k-mooneywell missing secrets could be a different issue i guess. that was coming from the fact that i allowed a job to be imported that needed a secret but did not import the secret. when i do import the secret however it can decrypt it so its not going to work in either case unless i define my own secret in its place18:09
sean-k-mooneycorvus: tobiash anyway thanks for your time ill see if i can reconfigure to debug loging and root cause my actul issue.18:10
*** CrayZee has quit IRC18:12
*** jpena|away is now known as jpena|off18:27
*** trishnag has quit IRC19:43
*** trishnag has joined #zuul19:53
pabelangerclarkb: corvus: retested the "Syncing files from outside the working dir" issue again now that zuul.o.o is updated, still an issue. The files (directory in this case) aren't actually outside of work. In fact, it is actually: {{ zuul.executor.work_root }}/{{ zuul.project.src_dir }}/config but using "../config" triggers the fail message on action plugin.  I'm going to try and reproduce with our zuul remote unit20:01
pabelangertesting.20:01
clarkbpabelanger: gotcha so this isn't a require-project it is the actual project under test?20:02
pabelangercopy isn't affect, just synchronize20:02
clarkbpabelanger: you should be able to reproduce it in the zuul test framework20:03
pabelangerclarkb: right, ../config would be in tree but playbooks are run from: http://git.openstack.org/cgit/openstack/windmill/tree/playbooks20:04
pabelangerclarkb: yah, think so too20:04
corvuspabelanger: can you link to the error?20:05
pabelangercorvus: http://logs.openstack.org/61/559761/9/check/windmill-ubuntu-xenial/fcdefee/job-output.txt.gz#_2018-04-09_19_57_22_86730520:06
pabelangerI still think clarkb is right, the untrusted playbooks are out side of work dir, which is part of the issue here too20:10
corvuspabelanger: i suspect the issue is that code path doesn't resolve CWD into the path.  some of them do now -- if something uses find_needle, it will (so generally roles accessing things internally).  but generally relative playbook paths won't.20:11
pabelangereven thought config is one directory up and in the same project20:11
corvuspabelanger: i believe if you provided an absolute path it would work.20:11
pabelangercorvus: yah, absolute does work20:11
corvusclarkb, pabelanger, tobiash, mordred: so we may want to take a look at the action modules which use is_safe_path but don't use find_needle, and see if we can resolve relative paths.20:12
corvusbasically, we'd need to make sure each of the action plugins honors relative paths in the same way.20:12
pabelanger+120:13
*** dkranz has quit IRC20:30
mordredmrhillsman, tobiash: if/when we finish the streaming rework patches the need for the executor to hit the port on the buidl nodes goes away20:41
*** elyezer has quit IRC20:47
mrhillsmanmy case is a bit different mordred20:48
mrhillsmanthe executor is near the build nodes and no issues with it accessing them20:48
mrhillsmanthe issue is external access to the executor20:48
mordredAH - for the websocket itself20:49
mordrednod. that makes sense20:49
mordredand yes - the stream rework would not help you20:49
mrhillsmanyeah, :(20:49
mrhillsmanhehe20:49
mordredthat's a use case we should think about though20:50
mordredI don't have any good ideas to add to the scrollback - but I'll put it in my thinking hole20:50
mrhillsmani still need to get the logs pushed out but other than that, everything looks kosher20:50
mrhillsman++, it is not a deal breaker at this stage20:51
mrhillsmannow i am going to spend this week and probably next digesting config stuff, jobs, etc etc20:52
mrhillsmanand hopefully can start contributing some code going forward20:52
mrhillsmanhave not had much time to just sit and learn20:53
mrhillsmanbeen trial by fire :)20:53
ShrewsSo it turns out... our async zuul-web process? Yeah, not so async anymore20:56
clarkbShrews: it blocks on all the db lookups aiui20:56
clarkbShrews: it will asynchronously handle new connections but once each one hits db it block20:56
Shrewsclarkb: zuul-web does not use a database20:57
clarkbisn't that what gives the js its data? which is db queries?20:57
Shrewsi know nothing about the js20:57
ShrewsI *do* know that it now uses gearman much more, and the code that has been added for that is not doing things in the asyncio manner20:58
clarkbShrews: ya basically anything with async annotation like the methods taht call gearman are async20:59
clarkbShrews: but the gearman itself will be synchronous20:59
clarkbso once you entire that method and call gearman you wait20:59
Shrewsclarkb: what you are supposed to do is put the gearman calls on the event loop so that it does NOT wait20:59
Shrewsthen it can switch tasks to something else until gearman responds21:00
clarkbI remember calling this out in review particularly for the db side of things21:01
clarkbbut it was working and not falling over so people seemed happy with it21:01
clarkband looks like gearman is similar situation21:01
Shrewsit's easily fixable. i already have an example in the log streaming code that does what we need21:02
Shrewsi'll work something up21:02
clarkbalso ya doesn't look like zuul-web serves the contents for the build history21:02
* clarkb goes looking for that21:02
Shrewsthen go back to fixing the other thing i was looking at  (adding command socket support to zuul-web)21:03
*** harlowja has joined #zuul21:03
Shrewshttp://git.openstack.org/cgit/openstack-infra/zuul/tree/zuul/web/__init__.py#n8521:04
Shrewsfwiw21:04
clarkblet me dig up the db side of things so we can address that too if necessary21:05
clarkbShrews: driver/sql/sqlconnection.py line 20121:07
clarkband it is via zuul-web just not in zuul/web21:08
Shrewsclarkb: where is that called from in zuul-web?21:09
clarkbShrews: lines 258-260 in zuul/web/__init__.py21:09
clarkbShrews: it dynamically builds the groups and handlers from the list of connections21:09
clarkbs/groups/routes/21:09
Shrewsclarkb: ok, that makes me REALLY sad21:12
Shrewsthe 'async' keyword is not magical21:12
clarkbyes, I know I explicitly called it out in review but people seemed reasonably happy with it. fwiw I'm happy to know there is a straightforward solution to the problem which we can use (I think updating to use that solution is a good thing)21:13
Shrewsit basically defines a unit of work. it doesn't make things asynchronous. you have to do that manually21:13
Shrewsclarkb: you've just doubled the work load, but yeah, it can be fixed21:14
Shrews*sigh*21:14
clarkbShrews: you don't have to fix it :)21:14
clarkbShrews: if you like I can make a change on yours as a follow up21:14
clarkb(I'll use your fix for gearman as a template for fixing $sqldriver)21:14
Shrewsi'll fix the stuff directly in zuul/web/__init__.py as an example21:14
Shrewsyou or whoever added the brokenness can then fix the other stuff  :)21:15
Shrewsbut we should probably watch for this in future changes21:15
Shrewscorvus: ^^^21:15
corvusShrews: ack.  this is new to many of us.  :)21:16
Shrewsand I'm having to re-learn it thanks to pabelanger! bah  :-P21:16
corvushopefully once we have the "access something from $external_resource" down, we won't have to figure out this pattern too much more.  we'll probably have to do it for zk next, but after that, i'm hoping it doesn't grow any more tendrils (and starts to lose some).21:17
clarkbbasically asyncio is explicit coordination there is no preemption21:18
clarkbso if you block on a non awaited function call you will block there until done21:18
clarkbthis has the upside of making context switching incedibly explicit21:19
corvusyep.  so you'd best know how all the functions you call are implemented internally.  :)21:19
clarkbthe downside is you must be very careful to do it all yourself or you will block21:19
Shrewsyep yep yep21:19
Shrewslike i said, not magical... just verbose  :)21:20
*** gouthamr has joined #zuul21:20
clarkbShrews: going forward I will make that a -1 instead of a nice to have review point :)21:21
clarkbactually I may have reviewed it after the fact? I do recall bringing it up with mordred and tristanC though21:21
Shrewsclarkb: and i'll try to pay more attention to the changes there too21:21
corvusShrews, clarkb: in gear, we can probably accomplish this with a subclass of Job which overrides handleWorkComplete (and friends) to put an event on the loop.21:22
corvus(er, to be clear, we can do the subclass in zuul-web.  we might *also* want to port that to gear itself to make it nicer for asyncio users, but should not be required.  we should start in zuul)21:23
mordredcorvus: ++21:23
corvusin fact, that is exactly how zuul's executor client works today -- it does that to put job completion events on *zuul's* event queue21:25
corvussee zuul/executor/client.py21:25
Shrewscorvus: well, the GearmanHandler is passed in an already instantiated rpc client. I think I can just make a method inside there that can be reusable within that class context21:26
corvus(though, i lied, it's not Job we would subclass, it's Client)21:26
corvusShrews: can you subclass the rpc client?21:26
corvusShrews: oh, er, that doesn't help21:27
corvusShrews: the rpc client creats its own plain client21:27
corvusit's the RPCClient.gearman attribute which would need to be the subclassed gear.Client21:28
corvusanyway, i'll stop trying to help :)21:28
Shrewscorvus: NEVER stop trying to help21:28
Shrewscorvus: i mean, yes, stop now. but otherwise...   :-P21:29
corvus:)21:29
Shrews i will solve this with containers21:29
corvus:(21:29
Shrewshttps://review.openstack.org/559326 needs a final +2 to fix streaming multibyte chars21:33
clarkbShrews: I'll rereview it now21:33
clarkbShrews: done21:35
Shrewsw00t. thx clarkb21:36
corvuslate +2 here :)21:36
*** hashar has quit IRC21:37
* Shrews gives a late w00t to corvus21:40
Shrewscorvus: is the test_crd_check_unknown test failure a known random thing? http://logs.openstack.org/26/559326/3/gate/zuul-tox-py35/403b698/testr_results.html.gz21:53
corvusShrews: i can't recall21:53
Shrewsthat's totally unrelated afaict. imma recheck21:54
corvusShrews: that error looks like maybe the test is missing a sync point21:54
*** rlandy has quit IRC21:55
jheskethMorning21:57
openstackgerritClark Boylan proposed openstack-infra/zuul master: Make db queries asynchronous in zuul-web  https://review.openstack.org/55985221:59
clarkbShrews: corvus ^ thats a first stab at addressing this for the generic handlers21:59
clarkbs/generic/connection/ I tried to make it somewhat generic so that you could provide arbitrary connections handlers and not care about implementation details too much21:59
clarkbalso mysql is the one thing my local test bed lacks so unsure if that is working currently21:59
corvusit's zuul meeting time in #openstack-meeting-alt22:00
Shrewsclarkb: looks about right. probably want to catch the timeout exception there22:00
clarkbShrews: we already catch it a level higher and set it to a 500 result which I think is sufficient?22:01
Shrewsoh probably22:01
clarkbShrews: I marked it inline to make it more clear22:02
clarkbShrews: we might also need to make the connection begin() call async but I expect that to be far less of an issue over time (since it will reuse connections iirc)22:03
clarkbya begin() is more about starting a transaction and the connection details are more abstracted so if that becomes an issue may need more explict connection management instead22:06
Shrewsok, wow. i can't explain all of these failures: http://logs.openstack.org/26/559326/3/gate/zuul-tox-py35/42541bb/testr_results.html.gz22:23
clarkbShrews: address already in use22:27
clarkbits a race between multiple test processes using port 9000?22:27
clarkbShrews: can you use port 0 then ask the server for what port it got after its bound?22:28
Shrewsclarkb: the test i added does that22:29
Shrewsclarkb: oh, not for zuulweb22:29
Shrewsyeah22:29
clarkbya I seemed to recall the finger side doing that22:31
clarkbbut its the gateway that conflicts22:31
clarkber dashboard22:31
*** gouthamr has quit IRC22:43
*** JasonCL has quit IRC22:44
*** gouthamr has joined #zuul22:44
*** ChanServ changes topic to "Discussion of the project gating system Zuul | Website: https://zuul-ci.org/ | Docs: https://zuul-ci.org/docs/ | Source: https://git.zuul-ci.org/ | Channel logs: http://eavesdrop.openstack.org/irclogs/%23zuul/ | Weekly updates: https://etherpad.openstack.org/p/zuul-update-email"22:53
*** JasonCL has joined #zuul22:59
*** patriciadomin has quit IRC23:04
*** patriciadomin has joined #zuul23:05
openstackgerritMerged openstack-infra/zuul master: Fix streaming decoding boundaries  https://review.openstack.org/55932623:11
*** gouthamr has quit IRC23:23
*** JasonCL has quit IRC23:46
*** JasonCL has joined #zuul23:49

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