/srv/irclogs.ubuntu.com/2012/04/17/#juju-dev.txt

TheMuemorning all08:57
fwereade_heya TheMue09:02
wrtpfwereade_, TheMue: yo!09:02
TheMuefwereade_: moin09:02
TheMuewrtp: moin09:03
TheMuelunchtime11:43
niemeyerMorning all12:30
TheMueniemeyer: moin12:31
niemeyerTheMue: Heya12:33
wrtpniemeyer: hiya12:41
hazmatg'morning12:41
fwereade_wtf, it's hailing12:51
niemeyerwrtp: Any chances of a few additional reviews? You've reviewed the tips but the pre-reqs are blocking them12:51
fwereade_this is not why I moved to the med12:52
wrtpniemeyer: i thought i'd reviewed 'em all.12:54
niemeyerwrtp: Nope, there are still pending ones in the queue12:54
wrtpniemeyer: one mo, i'll try and remember where the queue page is again... :-)12:54
niemeyerwrtp: Meanwhile, I'll code a quick one12:55
niemeyerwrtp: TO disable stats so that performance checks do not affect them12:55
wrtpsometimes i want a forward link as well as a backward link, so i can easily find the next review to do...12:59
wrtpniemeyer: done, i think. let me know if i've missed any13:27
niemeyerwrtp: You have, the one I'm pushing *right now*! ;-)13:28
wrtp:-)13:28
niemeyerwrtp: Should be a breeze, though13:28
niemeyerwrtp: https://codereview.appspot.com/606104513:30
wrtpniemeyer: wouldn't it be better to have stats enabled by default?13:32
wrtpniemeyer: i.e. disablestats=1 rather than stats!=013:33
niemeyerwrtp: It is enabled by default.. isn't it?13:33
wrtpniemeyer: it needs the "stats" field in the form to be set, no?13:33
niemeyerwrtp: Nope13:33
niemeyerwrtp: It needs it to not be set to zero13:33
niemeyerwrtp: Note that tests continue passing13:34
wrtpdoh13:34
wrtpniemeyer: LGTM13:35
niemeyerwrtp: Cheers!13:35
wrtpniemeyer: i still don't see why you can't just use a blank user name in the key BTW13:35
niemeyerwrtp: A blank string is a valid token13:36
wrtprather than having those if statements strewn everywhere13:36
wrtpniemeyer: why's that a problem?13:36
niemeyerwrtp: It's a problem because there's no point in having to match it13:37
niemeyerwrtp: The data should be foo:bar, not foo:bar::13:37
niemeyerwrtp: Just like the URL is cs:oneiric/hadoop, not cs:~/oneiric/hadoop13:37
andrewsmedinawrtp: hi13:39
wrtpandrewsmedina: hiya13:40
andrewsmedinawrtp: everything ok?13:40
wrtpandrewsmedina: good thanks13:40
andrewsmedinawrtp: I run the ec2 (go port) tests here in my machine, but they are failing13:42
andrewsmedinawrtp: I need to do something to run these tests?13:42
wrtpandrewsmedina: please run with -gocheck.vv and send me the output13:42
wrtpniemeyer: is "cs:~/oneiric/hadoop" valid?13:43
niemeyerwrtp: No, it's not.. that was the point13:43
andrewsmedinawrtp: http://paste.ubuntu.com/933966/13:44
andrewsmedinawrtp: It's need set the AWS envs?13:44
wrtpandrewsmedina: you need to set up an amazon AWS account and set your $AWS_ variables appropriately13:45
wrtpniemeyer: how visible are the keys to users?13:45
wrtpniemeyer: i think that having all charm keys of the form series:name:user: even when user is blank should be ok, if it's not generally visible.13:46
wrtpniemeyer: it would remove quite a few lines of code, at any rate :-)13:46
niemeyerwrtp: It doesn't matter.. let's please not be lazy.13:46
niemeyerwrtp: The data is oneiric:hadoop.. not oneiric:hadoop::13:47
wrtpniemeyer: i don't think it's lazy, i think it's appropriate canonicalisation13:47
niemeyerwrtp: You're trying to save a couple of lines of code.. I can put that in a function if it bothers you so much, but it shouldn't affect the desired data format that we want13:48
niemeyerwrtp: The proper data format is oneiric:hadoop, not oneiric:hadoop:13:48
andrewsmedinawrtp: this for local tests?13:50
fwereade_niemeyer, re https://code.launchpad.net/%7Eniemeyer/juju/go-store-blitz-key/+merge/102230 ...I don't quite get what performance is being tested there, it doesn't seem like it'd hit anything very significant?13:50
niemeyerfwereade_: wrtp misunderstood the point of that key, and that's of course because I've been extremely vague about it13:51
niemeyerfwereade_: This is just a validation key to tell the service we own this site13:51
fwereade_niemeyer, ha! ok, that suddenly makes lots more sense13:52
wrtpandrewsmedina: ah, they shouldn't be... that might be a bug. in the meantime, try setting the AWS_ variables to something random and see if it works13:52
wrtpniemeyer: ah! i thought it was used directly as part of a performance test...13:53
niemeyerwrtp: No, the goal is to test the real endpoints13:53
wrtpniemeyer: cool, i understand now. i wondered about the strange form of the URL.13:53
niemeyerwrtp: That's why we need stats=0 as well13:54
wrtpandrewsmedina: yes, it's a bug. will fix. but for the time being, just do export AWS_ACCESS_KEY_ID=x; export AWS_SECRET_ACCESS_KEY=x; before running the tests13:56
fwereade_niemeyer, hmm, it seems like stats=0 is a choice between skewing the stats and skewing the performance data13:57
fwereade_niemeyer, and while obviously we don't want to skew the stats, it doesn't feel quite right13:58
niemeyerfwereade_: I agree, obviously we don't want to skew the stats :-)13:59
niemeyerfwereade_: Hmm.. we can put the IncCounter run in the background, actually14:00
niemeyerfwereade_: Which means it won't affect the response timing either way14:00
andrewsmedinawrtp: ok!14:00
fwereade_niemeyer, well, it's still load on the server, isn't it, even if it doesn't necessarily directly affect the response time of that query? I'd be happiest if we could switch it to perform a real write to a different place14:02
fwereade_niemeyer, but that'll potentially have different characteristics too, so maybe I'm heading up the garden path here14:02
wrtpniemeyer: how about defining a function like this and using it throughout: http://paste.ubuntu.com/933992/14:03
niemeyer<niemeyer> wrtp: You're trying to save a couple of lines of code.. I can put that in a function if it bothers you so much, (...)14:03
niemeyerwrtp: Yes :)14:03
wrtpniemeyer: it would make me happier, yeah. that "if curl.User" test is in quite a few places.14:04
niemeyerwrtp: Sure, will do it14:04
niemeyerfwereade_: That feels a bit over the top for the level of traffic we currently have :-)14:05
fwereade_niemeyer, yeah, garden path :)14:05
niemeyerfwereade_: I'm most interested in knowing which ballpark we're in, and measuring that every once in a while to see how it's going14:06
niemeyerfwereade_: It's far from being any kind of issue that would require such care14:06
fwereade_niemeyer, indeed14:06
niemeyerfwereade_: I appreciate your input though, for real14:06
wrtpniemeyer: i think i agree with fwereade_ that we should in general test the usual path (including stats gathering). but it's useful to be able to turn off stats too, so that we can see how much overhead they impose.14:06
niemeyerfwereade_: I will move these calls to the background, and put that with the change wrtp just requested14:07
fwereade_niemeyer, perfect, thanks14:07
wrtpniemeyer: sounds good14:07
niemeyerfwereade_, wrtp: https://codereview.appspot.com/606304314:32
wrtpniemeyer: chunk mismatch :-(14:32
wrtpniemeyer: oh, it's working now14:32
wrtpoh no it's not14:32
fwereade_niemeyer, LGTM14:33
niemeyerWhat the heck..14:33
fwereade_(I see no mismatches...)14:33
niemeyerWell.. wrtp: https://codereview.appspot.com/6063043/patch/1/314:33
niemeyerfwereade_: You're probably not looking at the side-by-side14:34
wrtpniemeyer: yeah, that works fine for me14:34
fwereade_niemeyer, that is true14:35
niemeyerHmm.. I'll have to add a trick to the test to stabilize it14:35
wrtpniemeyer: i'd implement use the same function in the test.14:35
niemeyerwrtp: I prefer to see it in the test14:36
niemeyerwrtp: Most of them are constants14:36
wrtpniemeyer: ok14:36
wrtpniemeyer: i'm slightly concerned about the number of background IncCounters there may end up being. depends on the traffic i guess.14:37
niemeyerwrtp: They're necessarily proportional to the number of background requests being handled14:38
niemeyerwrtp: If incrementing a counter is more expensive than handling the request, something is wrong14:38
wrtpniemeyer: ok, if you're sure about that.14:39
niemeyerwrtp: Well, it's more that I can't imagine how either of those statements could possibly be false.. :-)14:40
wrtpniemeyer: only if the IncCounters aren't completing in a timely way and something's hammering the server with a cheap request.14:42
niemeyerwrtp: That's addressed by the second point14:42
wrtpniemeyer: indeed.14:43
niemeyerLunch time.. back in a bit to finish merging/applying reviews15:03
* niemeyer waves16:07
* wrtp waves back.16:13
fwereade_gn all, happy evenings16:27
niemeyerfwereade_: Cheers!16:41
niemeyerwrtp: I think I forgot a couple of renames you requested, but still have them in mind. Will submit them at the end of the pipeline.16:41
wrtpniemeyer: i was just trying to go back and have a look at the reviews, but my gmail seems to be down.16:41
wrtpniemeyer: still down. let me know here of anything you'd like me to respond to...16:48
niemeyerwrtp: I think it's all good in general.. I've agreed to most things you've said16:48
wrtpniemeyer: could you paste a link to the CL please...16:48
niemeyerwrtp: I actually didn't miss the review points I mention above either.. they were in the caching branch, which is still not in16:49
niemeyerwrtp: Which one the 7-8 ones? :-)16:49
wrtpniemeyer: the more recent one (it has links to the previous ones)16:49
wrtps/more/most/16:49
niemeyerwrtp: https://code.launchpad.net/~niemeyer/juju/go-store-stats-bg/+merge/10231616:50
wrtpi'm sure i sent a LGTM for that one, oh well16:51
niemeyerwrtp: You did on IRC16:52
wrtpah, must've forgot to do it on codereview16:52
wrtpjust the cache one to go16:53
niemeyerOh, I think I missed what fwereade_ meant in one of his comments17:04
niemeyerTheMue: ping17:16
TheMueniemeyer: pong17:30
niemeyerTheMue: Heya17:30
niemeyerTheMue: Just wanted to see how the branch is coming17:31
TheMueniemeyer: hi, today i have a real splitted day17:31
niemeyerTheMue:  Did you read my follow up comments yesterday?17:31
TheMueniemeyer: yes, and the changed ChangeWatcher is now in testing and will then go in17:31
niemeyerTheMue: Super.. did it feel good while doing the changes?17:32
TheMueniemeyer: it would have been better if the GetW() watch also accepts ZNONODE and later can be used for new created nodes17:33
TheMueniemeyer: but i think i found a way17:33
niemeyerTheMue: Cool17:34
TheMueniemeyer: it now also does a re-get if a first get runs on a ZNONODE, does an ExistsW() for the needed watch and stat is not nil (aka somebody has created the node exactly between the get and the exists)17:36
niemeyerTheMue: Cool17:36
niemeyerTheMue: Does it do a re-exists too, if the node disappears? :-)17:36
TheMueyip17:37
TheMueniemeyer: eh, yup ;)17:37
niemeyerTheMue: Hehe :)17:37
niemeyerTheMue: Super17:37
TheMueniemeyer: it's a loop waiting for the correct criterias17:37
niemeyerTheMue: Makes sense17:39
niemeyerTheMue: It's awesome to have that well abstracted away in that compact form17:39
TheMueniemeyer: test looks good17:40
andrewsmedinawrtp: I'm thinking in move cloudinit to environs package. Because it's used for all providers, ec2, local etc17:47
wrtpandrewsmedina: is it used for the local provider?17:48
andrewsmedinawrtp: somethings, like jujuOrigin and other things17:49
wrtpandrewsmedina: i was certainly thinking of moving into the environs package at some point, but i didn't think it was quite time yet17:49
andrewsmedinawrtp: I'm writing the local provider17:50
wrtpandrewsmedina: does the local provider actually execute the cloudinit init script?17:50
wrtpandrewsmedina: i was under the impression that the local environ would execute the agents directly.17:51
wrtpandrewsmedina: (but i'm fuzzy in this area :-])17:51
wrtpandrewsmedina: i'm going to have to go very shortly BTW, sorry.17:54
andrewsmedinawrtp: ok, can I talk with you about it later?17:56
wrtpandrewsmedina: that would be good. any time tomorrow is fine. i'm online from about 0800UTC17:57
* wrtp always finds crypto auth errors to be a pain to diagnose.17:58
andrewsmedinawrtp: ok17:58
wrtpniemeyer: as you might guess, i'm actually testing the ssh tunnel stuff. not far now :-)17:58
wrtp"sshd: Failed publickey for rog from 127.0.0.1 port 45416 ssh2" ... but why has it failed?18:00
wrtptime to stop for the day. see y'all tomorrow.18:00
wrtpandrewsmedina: speak tomorrow, i hope18:00
TheMueniemeyer: So, changed watcher is in at https://codereview.appspot.com/605904418:00
andrewsmedinawrtp: ok18:01
andrewsmedinawrtp: thanks18:01
niemeyerTheMue: Within that loop, I believe the eventType is a red-herring18:07
TheMueniemeyer: could you please explain?18:08
niemeyerTheMue: Sure18:08
niemeyerTheMue: We used to consider a removal as an error, so we stopped immediately with the event type hint18:08
niemeyerTheMue: Now that's not an error anymore18:08
niemeyerTheMue: so we don't really care about what is the *last* event that we got.18:09
niemeyerTheMue: We care about our ability to get the state *now*18:09
niemeyerTheMue: So you can drop the usage of that detail entirely, I believe, and have a cleaner algorithm with the same semantics18:09
TheMueniemeyer: it's a change after a hint of rog. he had a problem with my first approach always trying a GetW() first. his idea has been to skip it if we enter update() with a last EVENT_DELETED18:11
TheMueniemeyer: i've done without it before and it worked fine, so i can easily remove it18:12
TheMueniemeyer: i'll do so and check it in again. or shall i wait until your review?18:13
niemeyerTheMue: Hmm18:15
niemeyerTheMue: So the idea is to optimize it so that we try to get the current state right first..18:16
niemeyerTheMue: We can simplify it then..18:18
niemeyerTheMue: By moving the "exists bool" into the parameter18:18
niemeyerTheMue: This should get rid of most of the extra logic handling the event type18:19
niemeyerTheMue: We also don't need a watch variable, btw.. we already have one in scope called nextWatch18:19
TheMueniemeyer: ok, think I've got your ideas, will try it18:23
niemeyerTheMue: As a trivial, comments at lines 126 and 133 are replicating the code below them exactly18:25
niemeyerTheMue: That's pretty much it as far as the code is concerned.. it looks nice18:26
niemeyerTheMue: Will check the tests once you propose again18:27
niemeyerDon't expect anything surprising there..18:27
TheMueniemeyer: fine. and I just fetch an evening beer and can so continue now. *lol*18:31
niemeyerTheMue: Sounds like a good plan.. :)18:33
TheMueniemeyer: yeah18:33
niemeyerand I'm *almost* at the end of the pipeline18:34
niemeyerOr the graph, more precisely :)18:35
TheMueniemeyer: just put some code at the end of the pipeline *smile*18:46
niemeyermthaddon: ping18:53
TheMueso, off for today19:22
niemeyerI'm taking a break..20:38

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