[00:04] <hazmat> SpamapS, any chance you haven't uploaded already?
[00:04] <hazmat> SpamapS, we where just debating the whole value of using an ip address..
[00:04] <hazmat> versus just using a domain name, and letting dns updates figure it out..
[00:09] <SpamapS> hazmat: I am delaying uploading
[00:10] <SpamapS> I think the IP should be fine as long as there is only one place to change it
[00:13] <hazmat> SpamapS, niemeyer if we use the IP we will need to SRU, but the IP will work till then
[00:13] <hazmat> SpamapS, yeah.. i centralized all the refs to it, one line change now
[00:14] <niemeyer> SpamapS:Yeah, hazmat is right.. with a temporary domain, we'll still have to SRU to fix the domain soonish, but we can also switch the A record at the same time to the real store
[00:14] <niemeyer> SpamapS: Which means we can stop the temporary store as soon as the new one is live
[00:14] <niemeyer> (and the domain cache expires)
[00:15] <SpamapS> I'd be much happier with a single line change SRU to re-point things than a non-working distro version.. :)
[00:15] <SpamapS> Would be nice if users could work around archive sync issues with an environment variable tho
[00:17] <niemeyer> SpamapS: Hmm.. there's no reason for the distro version to be non-working.. that's actually another argument in favor of the domain name
[00:17] <niemeyer> SpamapS: Much better than a variable too, because it actually works without any environment changes
[00:18] <SpamapS> I guess my point is, if you can get a version out now that works with the store, but introduces a potential need to re-point things later.. I'd prefer that over no store functionality.
[00:22] <niemeyer> SpamapS: We're on the same page
[00:22] <niemeyer> SpamapS: Let's point the code to juju-store.labix.org
[00:22] <niemeyer> SpamapS: I'll make that work over the next couple of days
[00:22] <niemeyer> SpamapS: If we need to SRU later, it'll be just to have it pointing to something more official. That domain can continue working for as long as necessary.
[00:23] <SpamapS> hmm
[00:23] <SpamapS> I'm just looking here..
[00:23] <SpamapS> how does the charm store protect against MITM?
[00:24] <SpamapS> I see no security in there
[00:25]  * SpamapS fights the urge to facepalm
[00:26] <niemeyer> SpamapS: There's none anymore.. that was https, and will be back one day once we manage to make devops a reality.
[00:26] <SpamapS> Ok, so, in that case, I'd rather not have a charm store. :)
[00:26] <niemeyer> SpamapS: Please don't facepalm.. I've been doing that and it's starting to hurt..
[00:27] <SpamapS> at least with bzr branches from launchpad, you have ssh closed loop with users uploading
[00:27] <niemeyer> SpamapS: OKAY.. maybe I should just shutdown the computer and get a beer. :)
[00:27] <SpamapS> niemeyer: maybe we should invent a special glove with soft palms for doing code review. :)
[00:28] <niemeyer> SpamapS: It's not even about code reviews.. it's really about the store
[00:28] <SpamapS> niemeyer: I have some thoughts on how we can have our charm store cake and eat it too .. we'll need to embed a CA cert in juju but its better than nothing.
[00:29] <niemeyer> SpamapS: I just want this thing live.. we can very easily improve things, move back and forth and so on
[00:29] <SpamapS> OR we can all chip in $20 and get a real cert ;)
[00:29] <niemeyer> SpamapS: We'd not even have to pay.. there are free certs in some providers
[00:29] <SpamapS> true
[00:30] <SpamapS> as long as none of them involve a rectal exam I'll volunteer to investigate
[00:30] <niemeyer> SpamapS: I've registered one before with a registrar that I can't remember right now, but I have an SSL I can check
[00:31] <SpamapS> StartSSL.com I believe might work
[00:31] <niemeyer> SpamapS: If you feel strong about it, just put https://juju-store.labix.org in there, and we'll sort it out
[00:31] <SpamapS> not sure if their CA is in the ubuntu ca certs.. but we can add one in the packaging
[00:31] <niemeyer> SpamapS: The ones in that registrar I'm sure i tis
[00:31] <niemeyer> SpamapS: In the one I don't recall right now
[00:31] <SpamapS> niemeyer: I'm worried about the fact that charms run as root is all..
[00:32] <niemeyer> SpamapS: I know.. there's a reason why it was https://store.juju.ubuntu.com
[00:32] <SpamapS> niemeyer: indeed
[00:32] <niemeyer> SpamapS: I've just been conceding on issue after issue
[00:33] <SpamapS> niemeyer: I don't think we're going to solve this today... sounds like its been a long, weird day today for everybody
[00:34] <hazmat> I vote we have it at the original https://store.juju.ubuntu.com
[00:34] <hazmat> it will get sorted out when it gets sorted out then
[00:34] <niemeyer> hazmat: Heh
[00:34] <hazmat> in the end that's where its supposed to be
[00:34] <niemeyer> hazmat: In the end that's where it will be
[00:35] <niemeyer> hazmat: Not today, not tomorrow
[00:35] <hazmat> niemeyer, but before the release i assume
[00:35] <niemeyer> hazmat: I don't know..
[00:35] <niemeyer> hazmat: I don't have control over it
[00:35] <hazmat> and it might be solved next week... and its still fine... or even two months from now and its less fine.. but we can have env var for it..
[00:36] <niemeyer> hazmat: It's up to you to decide, though.. if you update to that store and it's put live elsewhere, you'll have to deal with the change later.
[00:36] <hazmat> its certainly not going to be at an ip address, which is what it is now
[00:36] <niemeyer> hazmat: I'm happy with whatever, really
[00:36] <hazmat> i'd rather pick the final destination, and the rest of it will take care itself... whenever it does
[00:37] <niemeyer> hazmat: I'll be working to put that store live somewhere
[00:37] <SpamapS> oddly enough.. the IP is a lot harder to MITM than the hostname
[00:37] <SpamapS> still not "secure enough"
[00:37] <SpamapS> one evil wifi is all it would take
[00:37] <niemeyer> SpamapS: This is a test phase
[00:37] <SpamapS> but yeah.. I have no answers for you guys.. :-P
[00:38] <niemeyer> But I don't care, really.. I've been facing way too many walls for that stuff.. I'll just make it work and people can decide.
[00:38] <hazmat> i'd like to go ahead and change it back to https://store.charms.ubuntu.com
[00:38] <SpamapS> If left at store.juju.ubuntu.com ...
[00:38] <SpamapS> with https...
[00:39] <SpamapS> could we come up with ways to help people install a ca cert that we provide, for testing, and a /etc/hosts entry?
[00:39] <SpamapS> I know thats *super* yuck
[00:39] <SpamapS> just trying to flesh out the options
[00:39] <niemeyer> SpamapS: IS won't provide me with the SSL for that domain, and they're not happy with it pointing to something I manage either
[00:40] <SpamapS> Right, but we could use our own CA
[00:40] <SpamapS> and put that CA in a "juju-testing-ca" package
[00:40] <hazmat> niemeyer, are you sure about the store env var..
[00:40] <niemeyer> SpamapS: Heh.. using another domain name is a *lot* simpler
[00:40] <SpamapS> aye
[00:40] <niemeyer> hazmat: Absolutely
[00:40] <SpamapS> it is
[00:40] <SpamapS> ok, I think I'll go see what beer is on sale at whole foods now :)
[00:41] <niemeyer> I'd love some company for a beer right now, to be honest
[00:41]  * hazmat too
[00:41] <SpamapS> St. Paulie Girl is nice company :)
[00:41] <SpamapS> she always smiles at my jokes
[00:41]  * SpamapS disappears
[00:43] <niemeyer> hazmat: The machine is stopped at
[00:43] <niemeyer> Unpacking python-txzookeeper (from .../python-txzookeeper_0.8.0-0ubuntu1_all.deb) ...
[00:43] <niemeyer> Setting up python-txzookeeper (0.8.0-0ubuntu1) ...
[00:43] <niemeyer> You have not informed bzr of your Launchpad ID, and you must do this to
[00:43] <niemeyer> write to Launchpad or access private data.  See "bzr help launchpad-login".
[00:44] <niemeyer> hazmat: It's also booting Oneiric.. have we not switched to Precise yet?
[00:45] <hazmat> hmm.. i've been using default-series
[00:45] <hazmat> niemeyer, what do you have specified in your environments.yaml for default-series?
[00:46] <hazmat> niemeyer, can you pastebin console output
[00:46] <niemeyer> hazmat: Nothing
[00:46] <hazmat> that bzr message is pretty standard
[00:46] <niemeyer> hazmat: I mean, I don't have anything special in default-series
[00:46] <hazmat> its a one time thing
[00:46] <hazmat> niemeyer, do you have 'precise' there?
[00:47] <niemeyer> hazmat: I don't have the setting at all
[00:47] <niemeyer> hazmat: Using juju from trunk on 486
[00:47] <niemeyer> hazmat: Hmmm.. still using juju-branch, though.. this is bogus
[00:48] <niemeyer> hazmat: It's juju origin now, isn't it
[00:48] <hazmat> juju-origin
[00:48] <niemeyer> hazmat: Do I need to set the series for it to pick precise?
[00:48] <hazmat>  lp:juju
[00:48] <hazmat> yes
[00:48] <niemeyer> hazmat: Hmmm.. shouldn't it pick it automatically, given that it's the expected value for 12.04?
[00:49] <hazmat> niemeyer, yeah.. i was just digging into why that is
[00:49] <hazmat> so the environment doesn't actually require default-series, so its None, but the get ami method has a default release value of oneiric
[00:49] <niemeyer> hazmat: Alright, using default-series for the moment, switched to juju-origin, and restarting
[00:50] <hazmat> i use ec2 on a regular basis
[00:51] <hazmat> niemeyer, have you checked gozk for mem leaks?
[00:51] <niemeyer> hazmat: Hmm.. not that I recall.. why?
[00:52] <hazmat> niemeyer, someone handed me a txzk example on #twisted that showed some leakage
[00:52] <hazmat> i was about to convert it to another library to isolate where the problem lies
[00:52] <niemeyer> hazmat: Not entirely surprising.. I've fixed a few leaks early on in python-zookeeper
[00:52] <hazmat> yeah.. i suspect the python bindings indeed
[00:52] <niemeyer> hazmat: and it was entirely "by chance", realizing while looking at the code
[00:52] <niemeyer> hazmat: I wouldn't be surprised if there's more of the same
[00:53] <niemeyer> hazmat: Go is mark & sweep, so it's harder to get that kind of leak
[00:54] <hazmat> i was going through some of the stdlib yesterday, its quite readable
[00:54] <niemeyer> hazmat: Okay, kicking another run
[00:54] <niemeyer> of the wtf
[00:55] <niemeyer> hazmat: Yeah, they're pretty diligent about it
[00:55] <niemeyer> hazmat: There was also a serious push for Go 1
[00:55] <niemeyer> hazmat: So it's better in quite a few ways than it was 4 months ago
[01:13] <niemeyer> hazmat: Still no go :(
[01:13] <niemeyer> hazmat: juju status is blocked again..
[01:13] <niemeyer> Will log onto the machine to see what's up
[01:13] <hazmat> niemeyer, can you strace it?
[01:18] <niemeyer> hazmat: Setting up the env
[01:20] <niemeyer> hazmat: "2012-03-22 21:20:13,919 DEBUG Environment still initializing. Will wait."
[01:20] <niemeyer> hazmat: Seems to have reached the server
[01:22] <niemeyer> hazmat: Agents are running..
[01:23] <niemeyer> hazmat: zk is empty.. initialization never run indeed
[01:25] <niemeyer> hazmat: Have you been using juju-origin?
[01:25] <niemeyer> hazmat: To run with a branch, that is
[01:34] <niemeyer> hazmat: http://paste.ubuntu.com/895896/
[01:34] <niemeyer> hazmat: That's probably it..
[01:42] <niemeyer> SpamapS: So, wtf is stopped because deployment is broken for real
[01:55] <hazmat> odd
[01:57] <hazmat> that's the new setuptools bit for pypi mac installs
[02:20] <niemeyer> Time for some sleep
[02:20] <niemeyer> Night all
[02:28] <hazmat> its fixed in trunk
[02:29] <hazmat> sleep sounds good
[09:36] <TheMue> rogpeppe: moin
[09:36] <rogpeppe> TheMue: hiya
[09:37] <TheMue> rogpeppe: same beautiful weather like here? yesterday i worked for some hour on our veranda, watching our bunnies on the lawn
[09:37] <rogpeppe> TheMue: it was beautiful yesterday, but today it's misty.
[09:38] <rogpeppe> TheMue: went for a longish bike ride this morning and should have had lovely views but didn't
[09:38] <TheMue> rogpeppe: *sigh* hope it will get better today
[09:39] <TheMue> rogpeppe: oh, carmen called, should help her with a flower in the garden, brb
[09:48] <rogpeppe> TheMue: who's carmen?
[09:49] <TheMue> rogpeppe: my wife, she's doing spring preparations
[09:49] <rogpeppe> TheMue: funny, my wife is also called Carmen!
[09:49] <TheMue> rogpeppe: yep, we already talked about it. *lol*
[09:50] <rogpeppe> i'd totally forgotten!
[09:50] <TheMue> rogpeppe: hehe
[09:50] <TheMue> rogpeppe: allready started uds preparation?
[09:50] <rogpeppe> TheMue: no, am going to book tickets today
[09:51] <TheMue> rogpeppe: i've got my flights booked and now doing the ESTA form
[09:54] <TheMue> rogpeppe: i would like you or william as room mates, same or almost the same time zones ;)
[09:54] <rogpeppe> TheMue: my time zone is always weird at events like that!
[09:55] <TheMue> rogpeppe: hehe
[10:24] <rogpeppe> TheMue: flights sorted
[10:25] <TheMue> rogpeppe: fine. i'll arrive sunday arround 12:30 at SFO
[10:25] <TheMue> rogpeppe: so enough time to travel to the hotel, look around a bit and go to bed early
[10:26] <rogpeppe> TheMue: i arrive 1420 SFO
[10:26] <TheMue> rogpeppe: ah, also not too late
[10:26] <rogpeppe> TheMue: and leave 1855 on the following saturday
[10:27] <TheMue> rogpeppe: arrival is 1220, leaving is 1250
[10:57] <rogpeppe> fwereade_: ping
[11:08] <TheMue> rogpeppe: i'm in since 7:31 (your time) and havn't seen him yet
[11:08] <TheMue> rogpeppe: maybe he's biking like you
[11:08] <fwereade_> rogpeppe, pong
[11:08] <rogpeppe> ha!
[11:08] <fwereade_> TheMue, I'm around, I'm just quiet :p
[11:08] <TheMue> fwereade_: hehe, ok
[11:09] <rogpeppe> fwereade_: just wanted to chat about testing strategy
[11:09] <rogpeppe> fwereade_: when you've got a mo
[11:09] <fwereade_> rogpeppe, 10 mins? want to get a propose in and get a mnemonic test failure in another branch
[11:10] <rogpeppe> fwereade_: np
[11:10] <rogpeppe> fwereade_: any time
[11:10] <rogpeppe> fwereade_: ping me
[11:19] <rogpeppe> i discovered yesterday evening that my ex-lorry-driver neighbour, in his 80s, has installed ubuntu. i'm impressed.
[11:20] <TheMue> rogpeppe: maybe he has seen that video of the daddy trying win, os x and ubuntu
[11:21] <rogpeppe> TheMue: i don't think so. apparently a relation of his is using it, so he gave it a go. he says he gets a bit lost when he has to use the command-line...
[11:21] <rogpeppe> TheMue: but otherwise he finds it pretty good.
[11:21] <rogpeppe> TheMue: he's considerably older than the guy in that video
[11:22] <rogpeppe> TheMue: they've been living in this street for 60 years
[11:22] <TheMue> rogpeppe: wow
[11:23] <rogpeppe> TheMue: he came across last night because he'd seen my wi-fi network and wanted to warn me that i should secure it properly!
[11:23] <fwereade_> rogpeppe, golly :)
[11:23] <TheMue> rogpeppe: i don't think i'll reach this number here. we have a quite large house, and we plan to move to a smaller one when we get older and the kids have left the house
[11:23] <fwereade_> rogpeppe, I may have to wait a little longer, cath needs my help a mo
[11:23] <TheMue> rogpeppe: he is really fit
[11:23] <rogpeppe> fwereade_: np
[11:25] <TheMue> rogpeppe: i've changed my wifi to wpa2. now my sister-in-law who is living in our house too has troubles. she's using xp, and by default it doesn't support wpa2.
[11:26] <rogpeppe> TheMue: oh dear.
[11:26] <TheMue> rogpeppe: maybe she should give ubuntu a try too
[11:27] <rogpeppe> TheMue: depends how much she's dependant on windows stuff. some people, particularly those that are somewhat more tech-savvy, find it hard, because the microsoft-compatible apps don't work too well
[11:28] <TheMue> rogpeppe: she mostly is doing web and mail and only private usage of office apps from time to time. so it could work.
[11:29] <rogpeppe> TheMue: if she's an Outlook user, it could be hard
[11:29] <TheMue> rogpeppe: no, only web mail (thankfully)
[11:30] <rogpeppe> TheMue: she could also install WPA2 support, presumably.
[11:30] <TheMue> rogpeppe: i had to use outlook the last 8 years, argh
[11:31] <TheMue> rogpeppe: yep, i've dl'ed two fixes. maybe it's working then
[11:45] <fwereade_> rogpeppe, so, testing
[11:45] <fwereade_> rogpeppe, I saw your collected random failures which did indeed look a little alarming
[11:46] <rogpeppe> fwereade_: i'm thinking of testing commands
[11:46] <fwereade_> rogpeppe, ah, ok
[11:46] <rogpeppe> fwereade_: so... i want to try to avoid testing the same stuff many times
[11:47] <rogpeppe> fwereade_: so i'm wondering what you think about putting a dummy environs interface underneath the command stuff
[11:47] <rogpeppe> fwereade_: which sends on a channel when a given operation is executed, but doesn't actually do anything
[11:47] <rogpeppe> fwereade_: although it may start a zookeeper for the state
[11:48] <fwereade_> rogpeppe, yeah; I think having an *actual* dummy environ type, like we do in pyjuju, and working against a real zookeeper, is probably sensible
[11:48] <rogpeppe> fwereade_: yeah. for the moment i'm putting it in cmd/juju/environ_test.go, but it might be useful elsewhere in future
[11:49] <fwereade_> rogpeppe, sounds good
[11:49] <rogpeppe> fwereade_: i'm exporting the Environ within juju.Conn
[11:49] <rogpeppe> fwereade_: that way there's a way in
[11:50] <fwereade_> rogpeppe, cool
[11:50] <rogpeppe> fwereade_: ok, great. just making sure you were ok with the general thrust.
[11:50] <fwereade_> rogpeppe, definitely sounds sensible to me
[11:50] <rogpeppe> fwereade_: as cmd/juju is "yours" :-)
[11:51] <fwereade_> rogpeppe, kinda, I guess :p
[11:51] <rogpeppe> fwereade_: you touched it last anyway. i think that gives you some veto rights :-)
[11:52] <rogpeppe> fwereade_: i'm tearing it apart anyway :-)
[11:52] <fwereade_> rogpeppe, haha, that does sound a little alarming :p
[11:52] <fwereade_> rogpeppe, what's it conspicuously lacking for your purposes?
[11:52] <rogpeppe> fwereade_: don't worry too much. it's all with due respect, i hope
[11:53] <rogpeppe> fwereade_: it's mostly just refactoring shared stuff between commands, now that there's more than one
[11:53] <rogpeppe> fwereade_: the basic structure remains
[11:54] <fwereade_> rogpeppe, cool, I fully expect bootstrap to take a justified kicking; I would worry a little if you were planning to gut SuperCommand
[11:54] <rogpeppe> fwereade_: oh no! i wouldn't dream of it.
[11:54] <rogpeppe> fwereade_: currently i'm strictly within cmd/juju
[11:55] <fwereade_> rogpeppe, ah, cool, that's great then ;p
[11:55] <fwereade_> rogpeppe, and ofc if cmd itself needs work that's fine as well, the only reason I'd be nervous of that is because a new client is on the way
[11:56] <rogpeppe> fwereade_: a new client?
[11:56] <fwereade_> rogpeppe, cmd/jujuc/server will also use it, it fits too nicely to go duplicating stuff like command selection IMO
[11:57] <rogpeppe> fwereade_: i thought it already did.
[11:57] <fwereade_> rogpeppe, not in trunk
[11:57] <fwereade_> rogpeppe, yet
[11:57] <rogpeppe> fwereade_: ah, i didn't know if it'd been merged yet
[11:58] <fwereade_> rogpeppe, that specific branch is currently not even proposed, I want to lose a bit of the backlog first before I make it work with the final versions of the stuff currently in review
[11:58] <rogpeppe> fwereade_: ah, i lose track
[11:59] <fwereade_> rogpeppe, tell me about it ;)
[12:37] <TheMue> lunchtime
[12:55] <hazmat> morning folks
[12:55]  * hazmat tracks down a memory leak
[12:58] <rogpeppe> hazmat: morning
[13:17] <rogpeppe> lunch
[13:27] <TheMue> back on the veranda
[13:30] <niemeyer> Good morning everybody
[13:33] <rogpeppe> niemeyer: yo!
[13:43] <TheMue> niemeyer: morning
[13:49] <rogpeppe> back
[13:58] <hazmat> g'morning niemeyer
[13:59] <fwereade_> niemeyer, if I was stupid and set the wrong -for in lbox propose, how do I do a new MP for that branch?
[14:00] <niemeyer> Hey all
[14:00] <niemeyer> fwereade_: Just delete the previous one
[14:00] <fwereade_> niemeyer, d'oh :)
[14:00] <niemeyer> fwereade_: ;)
[14:06] <fwereade_> hazmat, when you have a moment:
[14:06] <fwereade_> hazmat, https://codereview.appspot.com/5882056/
[14:06] <fwereade_> hazmat, https://codereview.appspot.com/5876070/
[14:07] <fwereade_> hazmat, https://codereview.appspot.com/5874064/
[14:07] <fwereade_> hazmat, in that order
[14:16] <niemeyer> fwereade_: Please note that there's a minor detail rogpeppe pointed out in terms of pre-req that still must be fixed
[14:17] <fwereade_> niemeyer, oh, bother, missed that
[14:17] <fwereade_> niemeyer, what's the problem?
[14:17] <niemeyer> fwereade_: If you merge the pre-req, and then merge trunk onto the follow up branch, the next propose will still be diffing against the pre-req
[14:17] <niemeyer> fwereade_: It's not such a big deal
[14:17] <niemeyer> fwereade_: pre-req is still useful even with that
[14:18] <rogpeppe> it confused me quite effectively though!
[14:18] <niemeyer> fwereade_: You'll just a wrong diff in the specific case where you merge trunk on the follow up
[14:18] <rogpeppe> (not that it takes much :-])
[14:18] <niemeyer> (and not in the pre-req)
[14:18] <fwereade_> niemeyer, ah ok, so it really just introduces more noise as it remains unreviewed?
[14:18] <fwereade_> niemeyer, that's *almost* a feature :p
[14:18] <niemeyer> fwereade_: yeah, if you merge trunk on the pre-req too, it fixes the problem
[14:18] <fwereade_> niemeyer, cool
[14:18] <niemeyer> fwereade_: Yeah ;)
[14:19] <niemeyer> fwereade_: I have to fix lbox so that it checks the merge state of hte pre-req before deciding what to diff against
[14:19] <fwereade_> niemeyer, sounds good
[14:20] <niemeyer> hazmat: What do we do with the wtf?
[14:20]  * rogpeppe feels all virtuous every time he writes "package testing_test"
[14:32] <hazmat> niemeyer, i fixed that bug in trunk
[14:37] <niemeyer> hazmat: Awesome, so I guess we'll have to jump over a few revisions
[14:37] <niemeyer> hazmat: Will do that in a bit
[14:37] <niemeyer> rogpeppe: :-)
[14:38] <TheMue> rogpeppe: pls take a look athttp://paste.ubuntu.com/896502/. it realizes a Watcher as util type where own behaviors with three methods (and those individually needed) can be plugged in
[14:39] <hazmat> niemeyer, yeah.. it needs to skip 486-494
[14:39] <hazmat> 494 is good
[14:39] <rogpeppe> TheMue: what about watchers that watch children of a node?
[14:41] <rogpeppe> TheMue: or watchers that watch the contents of a node, come to that
[14:41] <TheMue> rogpeppe: would have to check it. i've only choosen ExistsW because it doesn'd do much i/o.
[14:41] <rogpeppe> TheMue: how many different watchers will there be?
[14:41] <TheMue> rogpeppe: it works with content, see my last proposal
[14:41] <rogpeppe> TheMue: link?
[14:42] <TheMue> rogpeppe: https://codereview.appspot.com/5885059/
[14:42] <TheMue> rogpeppe: but here still without behavior
[14:43] <TheMue> rogpeppe: it's an idea to discuss. when the watch fires for every event regarding a node (content, creation, deletion, children) then it would work fine with one Watcher as type
[14:44] <rogpeppe> TheMue: i don't think that's a good idea, as it means more network traffic than necessary.
[14:45] <TheMue> rogpeppe: why?
[14:46] <rogpeppe> TheMue: i *think* that registering a watcher for a node sends a message to zookeeper (if that watcher type isn't already registered for that node)
[14:46] <TheMue> rogpeppe: afaik watches allways fire all kinds of events
[14:46] <rogpeppe> TheMue: no, it would be nice if they did, but they don't
[14:47] <rogpeppe> TheMue: GetW doesn't fire when children change, for example
[14:47] <TheMue> rogpeppe: so my "exists watch" fires content changes and deletions by accident (monitored that)
[14:48] <rogpeppe> TheMue: the set of events depends on the call. existsW does give changed events, yes.
[14:48] <rogpeppe> but not children events
[14:48] <rogpeppe> i think i documented it once
[14:48] <TheMue> rogpeppe: do we have an i/o problem regarding watches or is this a kind of premature optimization?
[14:49] <rogpeppe> TheMue: it makes the implementation more complex too - you have to fire off a new goroutine each time you do a watch.
[14:49] <TheMue> rogpeppe: ok, so i would change the Watcher to be configurable. e.g. Init() of the behavior could return where it is interested in.
[14:50] <TheMue> rogpeppe: like in http://paste.ubuntu.com/895188/, yes
[14:50] <rogpeppe> looks like my updated zk docs didn't make it in
[14:51] <TheMue> rogpeppe: one Watcher, one goroutine, that's no problem, that's what go is made for
[14:52] <rogpeppe> TheMue: not quite - you need a new goroutine each time through the loop, or at least that's how i did it last time.
[14:52] <TheMue> rogpeppe: so, if needed a fine control of what exactly should be watches should be only a small task
[14:52] <TheMue> rogpeppe: not in my approach
[14:53] <TheMue> rogpeppe: tested it in my proposal, multiple changes received fine
[14:53] <rogpeppe> TheMue: with children and content changes?
[14:53] <TheMue> rogpeppe: with content changes
[14:54] <TheMue> rogpeppe: could easily extend it to alternatively watch children
[14:54] <rogpeppe> TheMue: that's easy. but you're proposing watching content at the same time as children, no?
[14:55] <TheMue> rogpeppe: currently not. my proposal right now is only interested in content. but as i said, i don't think it's difficult to make this configurable.
[14:56] <TheMue> rogpeppe: so when creating the watcher instance you can say what you're interested in
[14:56] <rogpeppe> TheMue: if it's configurable, the types become awkward because you can receive new children ([]string) or new content ([]byte)
[14:57] <rogpeppe> TheMue: how about two kinds of watcher - one for children and one for content, both with appropriate types.
[14:57] <rogpeppe> TheMue: the children watcher could generate events on a channel corresponding to which children are deleted or created.
[14:57] <TheMue> rogpeppe: the behaviors Update() is called if there is a change. it then retrieves what it is interested in. and additional methods allow to grab this data after the change notification via the channel
[14:57] <rogpeppe> TheMue: (i.e. deltas)
[14:58] <rogpeppe> TheMue: that really is inefficient, because it incurs an extra round trip for each change.
[14:59] <TheMue> rogpeppe: do we have i/o probems?
[14:59] <rogpeppe> TheMue: no need to increase network traffic more than we need to.
[14:59] <rogpeppe> TheMue: in some places it may be billed
[14:59] <TheMue> rogpeppe: so it's premature optimization?
[15:00] <rogpeppe> TheMue: no, it's appropriate design :-)
[15:00] <rogpeppe> TheMue: it's easy to do this in a more efficient way
[15:00] <TheMue> rogpeppe: last time you had trouble with code duplication, this time it shall be duplicated for each watch?
[15:01] <rogpeppe> TheMue: no, each kind of watch - children or contents. are there any examples where a watcher needs to watch both of these at once?
[15:01] <TheMue> rogpeppe: so far i didn't found any
[15:02] <rogpeppe> TheMue: here's a sketch: http://paste.ubuntu.com/896534/
[15:03] <rogpeppe> TheMue: that's the API
[15:03] <rogpeppe> TheMue: well, a possible API :-)
[15:04] <TheMue> rogpeppe: what is ChildChange.New?
[15:04] <mthaddon> niemeyer: do you know if charmd will place nice with start-stop-daemon's --background, or if there's another way of daemonising the process?
[15:04] <rogpeppe> TheMue: it says whether the names have been added or removed
[15:04] <TheMue> rogpeppe: and ContentWatcher in my case has to return a ConfigNode
[15:04] <rogpeppe> TheMue: it could be a type with Add and Del constants
[15:04] <rogpeppe> TheMue: why's that?
[15:05] <rogpeppe> TheMue: these are the types that the config node watcher (and all other watchers) would build on
[15:05] <TheMue> rogpeppe: because it watches data in the config node
[15:06] <mthaddon> one way to find out, I guess
[15:07] <rogpeppe> TheMue: you could implement the config node watcher something like this: http://paste.ubuntu.com/896539/
[15:08] <rogpeppe> TheMue: obviously there would have to be error checking and a tomb there too.
[15:08] <TheMue> rogpeppe: that's what i wonna provide with the Watcher type
[15:08] <rogpeppe> TheMue: or perhaps it could share a tomb with the ContentsWatcher, i'm not sure
[15:09] <TheMue> rogpeppe: i will tink about a mix of your and my ideas
[15:09] <rogpeppe> TheMue: think about a nice strongly typed, pipeline
[15:09] <rogpeppe> oops
[15:10] <rogpeppe>  TheMue: think about a nice strongly typed pipeline of events being processed
[15:10] <rogpeppe> TheMue: channels work really well that way
[15:10] <TheMue> rogpeppe: yep
[15:11] <niemeyer> mthaddon: It doesn't do anything about daemonization..
[15:11] <niemeyer> mthaddon: So --background should be fine
[15:11] <mthaddon> k, will give it a try - thx
[15:11] <niemeyer> mthaddon: As I said, though, if you need something else I can look into it
[15:12] <mthaddon> niemeyer: k, will let you know - have got it saying "2012/03/23 15:02:06 JUJU Store opened. Connecting to: 127.0.0.1:27017" in the logs so far
[15:12] <niemeyer> mthaddon: What's the status quo, btw? I'll be working on the charms today as I managed to find out what was happening yesterday
[15:12] <niemeyer> mthaddon: Cool, that's all that should be necessary
[15:12] <niemeyer> mthaddon: It means it's happily serving requests
[15:13] <niemeyer> mthaddon: Hook charmload in the other end via crond, and you should have a fully working setup
[15:13] <mthaddon> niemeyer: I think I'm getting pretty close - just need to open up some firewall rules, get DNS entries in place, and land the last few bits of the config that I've been testing with then we should be done
[15:13] <niemeyer> mthaddon: Ok.. are we charming up.. are we loading that and moving on without charms.. ?
[15:14] <niemeyer> mthaddon: Sorry, I'm complete uncertain of the situation given Elmo's email, sabdfl requests, etc
[15:14] <mthaddon> niemeyer: we're working on both in parallel so it gives us options (by which I mean I'm continuing to work on the DC stuff while you get started on the charm stuff)
[15:15] <niemeyer> mthaddon: Sounds great then.. thanks for that. I'll just put the store online and we can delegate for someone else to decide which one goes live.
[15:15] <niemeyer> mthaddon: I'm happy either way, as long as we have something serving it.
[15:15] <fwereade_> gents, popping out for a walk and a think, bbiab
[15:15] <niemeyer> fwereade_: Enjoy
[15:15] <niemeyer> I'm heading to lunch too
[15:15] <niemeyer> biab
[15:21] <rogpeppe> niemeyer, fwereade_: enjoy
[15:57] <hazmat> fwereade_, cheers
[15:57] <hazmat> SpamapS, it looks like we'll need a patch for python-zookeeper
[15:57] <hazmat> SpamapS, there appear to memory leaks in all the async apis :-(
[15:57] <hazmat> testing the patch now
[16:01] <niemeyer> mthaddon: I don't know why --background is failing for you
[16:01] <niemeyer> mthaddon: I've run it locally, and it works
[16:01] <mthaddon> niemeyer: really, cos I've run it locally and it fails for me too - can you show me what you're doing locally?
[16:01] <mthaddon> (i.e. outside of the production env)
[16:01] <niemeyer> mthaddon:
[16:01] <niemeyer> [niemeyer@gopher ..go/store/charmd]% start-stop-daemon --background --start --exec $PWD/charmd -- 1.2.3.4:5 6.7.8.9:1
[16:01] <niemeyer> [niemeyer@gopher ..go/store/charmd]% ps auxw | grep charmd
[16:01] <niemeyer> niemeyer 28212  0.5  0.0  62292  3452 ?        Sl   12:46   0:00 /home/niemeyer/src/launchpad.net/juju/go/store/charmd/charmd 1.2.3.4:5 6.7.8.9:1
[16:01] <niemeyer> niemeyer 28216  0.0  0.0   9368   912 pts/7    S+   12:46   0:00 grep charmd
[16:02] <mthaddon> ok, so you're not really testing the same options as we have in the initscript - in any case, I'll try and reproduce that locally
[16:03] <niemeyer> mthaddon: start-stop-daemon doesn't seem to handle the program stdout well with --background, so we may need a log file option at least
[16:03] <niemeyer> mthaddon: Yeah, I'm just trying it out in isolation, and observing that it actually works
[16:05] <mthaddon> I still get that error removing the LOGFILE redirect in my local test
[16:08] <niemeyer> mthaddon: Yeah, it's certainly unrelated
[16:08] <mthaddon> interesting, and now it's saying "ERROR" locally but actually working
[16:09] <mthaddon> damn, --verbose doesn't help
[16:11] <mthaddon> I was wrong, it isn't working for me locally - process dies after a little while with no logfile
[16:13] <mthaddon> will keep trying variations of the initscript
[16:15] <niemeyer> mthaddon: I'll add an option to take the log file out of that picture
[16:16] <niemeyer> mthaddon: Process dying after a little while probably reflects the address for MongoDB not being available
[16:16] <hazmat> SpamapS, the patch fwiw is http://paste.ubuntu.com/896621/
[16:16] <mthaddon> niemeyer: I wouldn't worry about it yet - I have some theories about how we can make it work (sudo to the user in question)
[16:16] <mthaddon> niemeyer: I've installed mongodb locally so it will work
[16:16] <mthaddon> (well, in my local lxc instance that I'm testing with, anyway)
[16:17] <niemeyer> mthaddon: Have you considered using upstart?
[16:17] <mthaddon> niemeyer: that's another option for sure
[16:19] <hazmat> just as another data point, i did get them working locally for me yesterday, while testing out the client integration
[16:19] <hazmat> although i did notice some mutual conflicts when running multiple charmloads
[16:21] <niemeyer> hazmat: Ah, nice.
[16:21] <niemeyer> hazmat: What kind of conflict did you get?
[16:22] <hazmat> niemeyer, they would both detect the other was working on a charm, and both skip it
[16:22] <niemeyer> hazmat: Hmm.. do you have the logs/
[16:22] <niemeyer> ?
[16:22] <niemeyer> hazmat: It works with a lock mechanism, so the first should go on
[16:22] <hazmat> niemeyer, hmm. not anymore, but should be simple to reproduce
[16:22] <niemeyer> hazmat: They will skip each others charms, though
[16:23] <niemeyer> hazmat: But they won't both skip the same charm
[16:23] <niemeyer> hazmat: Unless something caused the process to crash/terminate midway
[16:23] <niemeyer> hazmat: In that latter case, any future executions will skip, until the lock timeout expires
[16:23] <SpamapS> hazmat: huh?
[16:24] <niemeyer> hazmat: I've actually tested that case, FWIW
[16:24] <niemeyer> hazmat: Which is why I'd be interested in how to reproduce it
[16:25] <hazmat> niemeyer, i'm not seeing it at the moment, i'll let it run for a bit more to see if it comes up
[16:26] <hazmat> SpamapS, we are in dire need of a patch to go in our zk package
[16:26] <niemeyer> hazmat: Might you have seen the crash case? If you kill the process while in progress, somehow, it'll not try this charm again until the locks don't expire
[16:26] <hazmat> SpamapS, there's a significant memory leak otherwise
[16:27] <niemeyer> mthaddon: upstart seems a lot smarter about those details
[16:27] <niemeyer> mthaddon: Might be a trivial job to put it up with it
[16:28] <mthaddon> k, will take a look
[16:28] <SpamapS> hazmat: ahh.. bug?
[16:28] <SpamapS> hazmat: probably worth SRU to 11.10 then
[16:28] <hazmat> niemeyer, it looks fine to me  now, re charmload parallel
[16:29]  * SpamapS still can't read those weird oldschool diffs... :-P
[16:29] <niemeyer> hazmat: Ok, I bet you've seen the held lock case
[16:29] <niemeyer> hazmat: If you tried again after a while (as you're doing now, actually) it'll note the expired lock and move on
[16:32] <fwereade_> hazmat, do you have a moment to chat about MachineProviders and new-style environments?
[16:34] <fwereade_> hazmat, it's not an exceptionally big deal, it's just that to create a provider we'll need data from both environment and environment/provider
[16:36] <hazmat> fwereade_, sure
[16:36] <fwereade_> hazmat, and I'm wondering whether it will still be possible/easy to perpetrate something like EnvironmentStateManager(client).get_config().get_default().get_machine_provider()
[16:37] <hazmat> fwereade_,  the api for providersettings.. should return the merged dict
[16:37] <fwereade_> hazmat, this is because a genericised instance-type will need a provider in order to construct Constraints objects
[16:37] <fwereade_> hazmat, excellent
[16:38] <fwereade_> hazmat, I don't think anything but the client and the PA will actually need provider instances so that should be fine even when we come to use ZK ACLs
[16:40] <fwereade_> hazmat, so anyway: if I go ahead and use something like the train-wreck above for now, I should be fine, because an ESM will be all I'll need to construct a provider when I come to merge with you
[16:40] <fwereade_> hazmat, right?
[16:41] <niemeyer> mthaddon:
[16:41] <niemeyer> mthaddon: http://paste.ubuntu.com/896649/
[16:41] <niemeyer> mthaddon: upstart++
[16:42] <hazmat> fwereade_, yeah.. that should be fine.. we can just sub out to  ProviderSettings(client).get_config()
[16:42] <fwereade_> hazmat, great, tyvm
[16:42] <hazmat> fwereade_, the get_default looks odd, there's only one in the env
[16:42] <hazmat> for the zk storage
[16:43] <fwereade_> hazmat, yeah, IMO it's kinda stupid, but ESM returns an EnvironmentsConfig with only one environment that you can then retrieve with get_default without knowing the name
[16:43] <hazmat> fwereade_, ah.. right.. gotcha
[16:44] <mthaddon> niemeyer: that's running it as root, right? but yeah, looks like a good place to start from
[16:44] <fwereade_> hazmat, btw, I'll need to stop a bit promptly today, but I'll be around on and off this evening and at the w/e -- I'd love it if I could get a couple of reviews before your eod
[16:46] <niemeyer> mthaddon: setuid and setgid are options in the upstart file
[16:46] <mthaddon> yep yep
[16:46] <niemeyer> mthaddon: :)
[17:02] <hazmat> SpamapS, https://bugs.launchpad.net/ubuntu/+source/zookeeper/+bug/963280
[17:02] <hazmat> fwereade_, thank you, have a good night
[17:03] <SpamapS> hazmat: thanks, I'll escalate and get that pushed out ASAP
[17:03] <SpamapS> hazmat: is it known upstream?
[17:03] <fwereade_> hazmat, everyone: cheers, happy weekends :)
[17:04] <hazmat> SpamapS, its not yet, i'm in progress on notifying everyone and putting the patches out
[17:04] <hazmat> SpamapS, i pinged them on irc, but no response yet
[17:05] <SpamapS> hazmat: ok, I'd like to get it reported there before pushing it into our packages
[17:10] <niemeyer> hazmat: So there was a leak in pyzk indeed?  Where's the leak?
[17:11] <SpamapS> hazmat: if I don't hear back from you in about 10 minutes, I'll go ahead and forward the issue myself.
[17:12] <niemeyer> SpamapS: Is there a patch somewhere?
[17:13] <SpamapS> niemeyer: hazmat has one apparently
[17:14] <hazmat> SpamapS, yeah.. i tested it against 3.3.4
[17:14] <hazmat> but the build system in 3.3.5
[17:14] <hazmat>  is different, just  trying to verify against a clean source
[17:15] <SpamapS> yeah precise has 3.3.5
[17:16] <hazmat> SpamapS, patch attached
[17:17] <jamespage> hazmat, SpamapS: want me to pick that up? I can push it back upstream as well
[17:20] <hazmat> jamespage, i can do the upstream bit, the distro bits i'd rather leave in yours and SpamapS's capable hands
[17:21]  * jamespage wishes LP had JIRA tracking capability
[17:21] <SpamapS> doesn't make sense why it doesn't
[17:21] <SpamapS> other than.. nobody has finished it
[17:21] <hazmat> looks like the guy who  reported it to me also upstreamed.. ZOOKEEPER-1431
[17:21] <jamespage> SpamapS, I think that is the case - there is a feature bug for it
[17:21] <jamespage> hazmat, great
[17:23] <SpamapS> ok, I'll leave this bug in jamespage's capable hands
[17:23] <SpamapS> jamespage: thanks for stepping up
[17:23] <jamespage> SpamapS, ack - on it now
[17:23] <jamespage> SpamapS, np
[17:35] <jamespage> hazmat, please could you propose that patch upstream as well
[17:35] <jamespage> if it takes some load off you I'm happy to forward
[17:36] <jelmer> jelmer
[17:36] <jelmer> whoops, sorry :)
[17:43] <hazmat> jamespage, done already
[17:43] <jamespage> hazmat, sweet - thanks
[17:43] <hazmat> jamespage, its attached to the issue
[17:44]  * hazmat grabs some food
[17:52] <jamespage> hazmat, SpamapS: tested and uploaded to precise - the release team will need to accept it but I don't think that will be an issue.
[17:52] <hazmat> jamespage, awesome
[18:03] <hazmat> bcsaller, jimbaker you guys got time for a quick meeting to catch up?
[18:09] <bcsaller> hazmat: sure
[18:20] <hazmat> bcsaller, jimbaker invites out
[18:28] <SpamapS> hazmat: packages failing to build now
[18:28] <SpamapS> Writing /build/buildd/juju-0.5+bzr494/debian/juju/usr/lib/python2.7/dist-packages/juju-0.5.egg-info dh_install -O--buildsystem=python_distutils
[18:28] <SpamapS> cp: cannot stat `debian/tmp/usr': No such file or directory
[18:30] <hazmat> SpamapS, huh
[18:30] <hazmat> SpamapS, that doesn't look familiar..
[18:30] <hazmat> i wonder if its find_packages in setup.py
[18:31] <SpamapS> I believe that is known to cause issues
[18:31] <SpamapS> I'm trying locally
[18:33] <rogpeppe> i'm off.
[18:33] <rogpeppe> have a great weekend everyone!
[18:34] <rogpeppe> niemeyer: bootstrap & destroy commands *almost* there - just a couple of failing tests to rectify
[18:34] <niemeyer> rogpeppe: Sweet!
[18:34] <rogpeppe> niemeyer: you might wanna have a look at https://codereview.appspot.com/5892043/ which is a prereq
[18:35] <niemeyer> rogpeppe: I do want, but I ought to push other things first
[18:35] <rogpeppe> np
[18:45] <niemeyer> hazmat, SpamapS: 2012-03-23 13:38:30-04:00 Running test ec2-wordpress... OK
[18:46] <niemeyer> I've added some timeout logic to avoid some of the issues seen, so that it unblocks itself in the future
[18:46] <niemeyer> (hopefully)
[18:52] <jimbaker> hazmat, i was eating lunch just now
[18:53] <niemeyer> http://wtf.labix.org/ is awaken and working. 494 has two OKs
[18:56] <SpamapS> hazmat: no I think this is something else
[18:56] <SpamapS> hazmat: probably a packaging issue, not upstream
[19:07] <hazmat> jimbaker, no worries, are you up for doing it now?
[19:08] <hazmat> jimbaker, invite out
[19:14] <niemeyer> fwereade_: You said that you were going to change the default to amd64 after that conversation.. has that taken place yet?
[19:15] <niemeyer> Hmm.. I guess not
[19:16] <hazmat> niemeyer, there's a branch in review for that i believe
[19:17]  * hazmat switches  out to reviews
[19:17] <niemeyer> hazmat: Ah, sweet.. I'd like to deploy the store mongos on 64s
[19:17] <hazmat> yeah.. 2gb limit sucks otherwise
[19:17] <hazmat> niemeyer, its only a juju-origin away ;-)
[19:17] <hazmat> crazy talk i know
[19:18] <niemeyer> hazmat: I'll be using it, but I'm trying to stay trunk-crazy at most :)
[19:47] <niemeyer> I'm stepping out for an appointment
[19:47] <niemeyer> Back in ~1h
[20:44] <hazmat> interesting http://zerovm.org/motivation/
[21:33] <SpamapS> hazmat: very interesting
[21:33] <SpamapS> hazmat: http://outflux.net/teach-seccomp/ ... possible answer to LXC's problems
[21:33] <hazmat> SpamapS, serge has been interested in it
[21:34] <hazmat> NACL come to roost
[21:34] <hazmat> who is kees, and why is he so awesome
[21:35] <hazmat> ah.. ic
[21:36] <SpamapS> hazmat: Hah, former Canonicaler and Ubuntu Security Team Lead
[21:36] <SpamapS> hazmat: and TB member :)
[22:07] <niemeyer> hazmat: http://paste.ubuntu.com/897051/
[22:18] <niemeyer> /var/lib/cloud/instance/scripts/runcmd: 8: /var/lib/cloud/instance/scripts/runcmd: juju-admin: not found
[22:18] <niemeyer> /usr/bin/python: No module named juju.agents
[22:18] <niemeyer> /usr/bin/python: No module named juju.agents
[22:18] <niemeyer> run-parts: /var/lib/cloud/instance/scripts/runcmd
[22:18] <niemeyer> :-/
[22:23] <SpamapS> I'd guess that juju wasn't fully installed given that error.