/srv/irclogs.ubuntu.com/2012/09/24/#juju-dev.txt

TheMuemorning06:50
TheMuefwereade, rogpeppe: hi08:09
fwereadeTheMue, heyhey08:09
fwereaderogpeppe, heyhey08:09
rogpeppeTheMue, fwereade: yo!08:10
rogpeppefwereade, TheMue: i was planning to take a swap day today, but the weather is minging08:12
rogpeppefwereade: so maybe i won't08:12
TheMuerogpeppe: understandable08:13
fwereaderogpeppe, yeah, I haven't quite decided yet myself... I think I'll still be in figuring-it-out mode for a bit08:15
fwereadeI will at least get the rename-kill-die branch in though08:17
fwereadeshould be ready, but a full test run will take forever08:17
fwereade(couldn't figure out how to prevent the sync on open yet, and it's a distinct change anyway...)08:17
rogpeppefwereade: i took a little break from juju yesterday, and did a little JSON-compatible encoding i'd been wanting to do for ages: http://go.pkgdoc.org/launchpad.net/goson08:19
fwereaderogpeppe, cool, I remember you mentioning that idea08:20
rogpeppefwereade: it seems to work well08:20
rogpeppefwereade: (i forked the go JSON package, so i got the advantage of a pretty good test suite)08:20
rogpeppefwereade: see the MarshalIndent example to see how it looks08:21
fwereaderogpeppe, the example links appear to be broken08:22
rogpeppefwereade: i'm going to use it for displaying and editing JSON even if i don't actually store or transmit anything in this format.08:22
rogpeppefwereade: hmm, works for me08:22
rogpeppefwereade: http://go.pkgdoc.org/launchpad.net/goson#_example_MarshalIndent08:22
rogpeppefwereade: you need to click on the Example link inline08:22
fwereaderogpeppe, yeah; doing so takes me to an arbitrary top level doc for some reason08:23
rogpeppefwereade: weird08:23
fwereaderogpeppe, ah no, it takes me *just* below but doesn't expand08:23
rogpeppefwereade: you can also look at the example source: http://bazaar.launchpad.net/+branch/goson/view/head:/example_test.go#L8508:24
fwereaderogpeppe, just go getting it :)08:24
rogpeppefwereade: :-)08:24
rogpeppefwereade: now there's a command "goson" - takes goson or json on stdin and produces goson or json on stdout; launchpad.net/goson/cmd/goson09:17
fwereaderogpeppe, neat :)09:17
rogpeppefwereade: goson -indent '' (compact output) reduces json size by 7% on average too. that's quite nice.09:26
fwereaderogpeppe, sweet :)09:26
rogpeppefwereade: here's a nice before/after comparison: before: http://paste.ubuntu.com/1224159/; after: http://paste.ubuntu.com/1224160/09:36
fwereaderogpeppe, weird, the before doesn't exist09:51
fwereaderogpeppe, TheMue: btw, I really ought to know what exactly you guys are working on09:51
fwereaderogpeppe, I am torn between, y'know, fixing what looks like avoidable ugliness and noise in the tests, and doing the RelationUnitsWatcher I think I really *should* be working on09:52
TheMuefwereade: currently i'm going through the reviews in gustavos last mail09:52
fwereaderogpeppe, but just convincing myself that what I just merged made the test suite no worse than it was before took a disturbingly long time09:52
rogpeppefwereade: i'm working on getting environs/ec2 working live, currently.10:39
fwereaderogpeppe, cool, I'm sticking with RUW for the time being11:37
TheMuelunchtime13:29
niemeyerGood morning!13:58
TheMuemorning14:00
rogpeppeniemeyer: yo!14:04
rogpeppeniemeyer: nice work on the plane, BTW14:04
fwereadeniemeyer, heyhey14:24
niemeyerrogpeppe: Thanks14:27
=== marrusl_ is now known as marrusl
fwereadeok, my brain is melted for now... bbl16:06
niemeyerfwereade: Cheers16:06
niemeyerI'm just off a meeting, and will grab some lunch16:07
fwereadeGAAAAH16:13
* fwereade now better understands StartSync's place in the ecosystem16:13
* fwereade kinda wants to kick something16:13
fwereade(it emerges that -- obviously, in hindsight -- just StartSyncing before waiting for a watch is *not* enough if the event you're watching for hasn't happened yet)16:14
TheMuefwereade: does the current ServiceRelationsWatcher what you expected in https://bugs.launchpad.net/juju-core/+bug/1032539 ?16:19
rogpeppefwereade: ah, good point.16:26
rogpeppefwereade: i wonder if StartSync should really be SetPollInterval(somethingSmall)16:26
rogpeppefwereade: then it won't be so vulnerable to buffering between request and reply16:27
niemeyer-1 in principle.. the current behavior is pretty great in that it forces races conditions to be visible. I'm pretty sure there were never seen races with zk just because it happened to return fast enough from the watch locally.16:41
niemeyerThe observable delay between action + watch is real16:42
rogpeppeniemeyer: the problem with StartWatch is that the delay might be >1s16:42
niemeyerand it'll be even more real in a loaded and distributed system16:42
niemeyerrogpeppe: Just make the logic deterministic then16:42
niemeyerrogpeppe: See both the provisioner and the firewaller for examples of it working fine16:42
rogpeppeniemeyer: i'm wondering if perhaps those are easier because they're making changes directly to the state, whereas (i hypothesize) perhaps some operations on the uniter do not respond to the state directly.16:44
rogpeppeniemeyer: maybe that's not true though16:45
niemeyerrogpeppe: I'm sure there are trickier cases waiting to be seen, even if that's not the case now.. I don't think yet that those guarantee a change in the rules, though16:45
rogpeppeniemeyer: you may well be right. we'll see how things develop.16:51
niemeyerTheMue: ping16:54
niemeyerHmm.. uh oh.. merge race17:14
* rogpeppe is off for the day. see y'all tomorrow.17:26
niemeyerrogpeppe: Have a good evening man17:27
TheMuere20:06
niemeyerTheMue: Yo20:06
fwereadeniemeyer, if you're in the mood for some light reading: https://codereview.appspot.com/6567044/22:08
fwereadeniemeyer, not sure if you saw: https://codereview.appspot.com/6567044/ has a RelationUnitsWatcher (and a few Uniter tests passing)22:30
niemeyerfwereade: I haven't seen it yet22:31
niemeyerfwereade: I'm trying to get the uniter tests to pass as-is as well22:31
fwereadeniemeyer, very recent -- but I mentioned it shortly before you timed out22:32
niemeyerfwereade: Ah, no, I didn't get that, thanks22:32
niemeyerfwereade: I have a few fixes for the uniter already22:32
fwereadeniemeyer, ah, I was doing more uniter tests on top of that22:32
niemeyerfwereade: Mainly ports from the specific watches to the entity ones22:32
fwereadeniemeyer, mostly fixing up unit/service watchers22:33
niemeyerfwereade: Oh, but do you have uniter tests passing yet?22:33
fwereadeniemeyer, ha, we are colliding right now22:33
fwereadeniemeyer, only some so far but it seems healthyish22:33
niemeyerfwereade: I imagined we could, but I wasn't too worried about having *two fixes* for the uniter :-)22:33
niemeyerfwereade: I'm about to "time out"22:33
fwereadeniemeyer, ha, yeah :)22:33
fwereadeniemeyer, np, I should too22:33
niemeyerfwereade: So perhaps I can push a branch for your enjoyment so that you can merge what you find useful, and drop what you don't22:34
fwereadeniemeyer, we can look at the fixes tomorrow :)22:34
fwereadeniemeyer, cool22:34
niemeyerfwereade: Hold on, I'll send the WIP22:34
fwereadeniemeyer, yes please :)22:34
niemeyerfwereade: Curious about what you find22:34
=== hazmat` is now known as 5JTAACNC2
niemeyerfwereade: I was just starting to debug a non-stopping watcher.. but I have to visit a relative that has an injured leg in a bit22:35
fwereadeniemeyer, no worries22:35
niemeyerPushing22:36
niemeyerfwereade: It all works, btw22:36
niemeyerfwereade: Surprisingly, even the uniter22:36
fwereadeniemeyer, surprisingly?22:36
* fwereade looks smug22:36
fwereade;)22:36
niemeyerfwereade: I did a full deployment of builddb22:37
fwereadeniemeyer, awesome :D22:37
niemeyerfwereade: Well, considering we did no work after we moved the state, I was expecting it to need tweaks, as we're doing now :)22:37
fwereadeniemeyer, yum yum dogfood ;)22:37
niemeyerfwereade: I was surprised that it worked despite we not touching it22:37
niemeyerfwereade: Good job :)22:37
niemeyerfwereade: https://codereview.appspot.com/656204522:38
fwereadeniemeyer, sweet, thanks22:38
niemeyerfwereade: Oops.. I missed the pre-req.. please ignore the changes in unit22:38
fwereadeniemeyer, np22:38
niemeyerfwereade: These are already up for review in an independent branch22:38
fwereadeniemeyer, cool, I must catch up with those tomorrow22:38
niemeyerfwereade: Very quickly, did we do the same thing: https://codereview.appspot.com/6562045/diff/1/worker/uniter/modes.go22:39
fwereadeniemeyer, yeah, give or take a var name or two ;)22:39
niemeyerfwereade: This is awesome.. for awesome, I appreciate the duplication of efforts :-)22:39
niemeyers/for awesome/for once22:39
fwereadeniemeyer, haha, yeah :)22:40
niemeyerfwereade: I know it's late there, but in case you want the no-error unit.Resolved in trunk by the time you wake up, just have a quick look at: https://codereview.appspot.com/6570043/; I'll do required changes and merge when I'm back, if so.22:42
niemeyerfwereade: Otherwise, we can easily handle it tomorrow22:42
* fwereade looks22:42
fwereadeniemeyer, LGTM, much nicer22:43
niemeyerfwereade: cheers22:43
niemeyerfwereade: Bootstraps are working again with trunk, btw22:44
fwereadeniemeyer, excellent22:44
niemeyerWell, with the branch I'm merging right now22:44
=== 5JTAACNC2 is now known as hazmat
niemeyerAlright, I'm stepping out..22:49
niemeyerfwereade: Have a good sleep there22:49
fwereadeniemeyer, cheers, I hope your relative mends soon22:50
niemeyerfwereade: Thanks!22:50

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