[01:09] <wallyworld_> thumper: https://codereview.appspot.com/10854043
[01:21]  * wallyworld_ goes to look for food
[02:06] <wallyworld_> bigjools: you seen this error trying to compile the go-curl stuff? https://pastebin.canonical.com/93649/
[02:07] <wallyworld_> this is from one of the IS guys trying to deploy juju from source for prodstack
[02:07] <bigjools> I have no
[02:07] <bigjools> t
[02:07] <bigjools> is it a 1.1 vs 1.0 thing?
[02:07] <wallyworld_> maybe it's a precise/Go version issue
[02:07] <bigjools> or missing go dev headers
[02:07] <wallyworld_> could be. precise only has 1.0.2 i think
[02:08] <bigjools> it should work on 1.0
[02:08] <bigjools> looks like a missing package to me
[02:08] <bigjools> I am using 1.0.2 here and it works
[02:09] <wallyworld_> i asked them to install the deps that were in the go-curl email
[02:09] <wallyworld_> they had done that
[02:09] <bigjools> does he have golang-src installed?
[02:09] <bigjools> that too, yes
[02:09] <wallyworld_> not sure about golang-src. that surely shouldn't be needed?
[02:10] <bigjools> it will have .h files needed to compile
[02:10] <wallyworld_> i guess that's relevant for goc stuff
[02:11] <bigjools> /usr/share/go/src/cmd/cgo/out.go:typedef __SIZE_TYPE__ GoUintptr;
[02:11] <bigjools> ed@beast:~/canonical/GO/src/launchpad.net/gwacl$ dpkg -S /usr/share/go/src/cmd/cgo/out.go
[02:11] <bigjools> golang-src: /usr/share/go/src/cmd/cgo/out.go
[02:11] <bigjools> it's needed
[02:11] <wallyworld_> ok, thanks. i'll let him know. we should add that to any doc
[02:11] <bigjools> yeah
[02:11] <bigjools> dunno why I have it installed, something will have pulled it in
[02:12] <wallyworld_> i have it installed cause i built Go 1.1 from source
[02:16] <bigjools> why are you using 1.1?
[02:16] <bigjools> I know 1.0 is unsupported, but ...
[02:16] <bigjools> 1.0 is still default in raring it seems
[02:17] <davecheney> juju add-machine is very useful, thanks wallyworld_
[02:18] <wallyworld_> davecheney: no problemo. what are you using it for?
[02:20] <davecheney> need a precise machine to simular an lp builder
[02:20] <davecheney> so i can figure out wtf has happened to the release ppas
[02:23] <bigjools> davecheney: can I help?
[02:23] <davecheney> bigjools: nah, it's not lp specifically
[02:23] <davecheney> i suspect becaue the builders are using such an old version of go
[02:23] <bigjools> maybe I can still help :)
[02:23] <davecheney> we're getting screwed over with compatability issues
[02:24] <bigjools> have you tried using pbuilder?
[02:24] <davecheney> basically the /usr/bin/juju from the ppa can't talk to ec2 and/or our cloud image query thing
[02:24] <davecheney> but one I build myself, from the same source, can
[02:24] <bigjools> it creates a build env using package versions from a particular release
[02:24] <davecheney> yup
[02:24] <davecheney> which is why I'm making a precise machine to try to emulate it
[02:24] <bigjools> ugh, pbuilder didn't recreate your problem?
[02:24] <davecheney> can't be fucked with that
[02:25] <davecheney> this is what vm's are for
[02:25] <bigjools> pbuilder is much easier mate
[02:25] <davecheney> juju is easier
[02:25] <davecheney> :)
[02:25] <bigjools> :)
[02:26] <davecheney> where is the tm symbol on my keyboard
[02:26] <bigjools> well pbuilder is the closest thing you'll get to what the builders do
[02:26] <bigjools> ™
[02:26]  * bigjools offers a copy/paste token
[02:26] <bigjools> Juju is fucking awesome™
[02:27] <davecheney> keep repeating it
[02:27] <davecheney> soon it'll be 2nd nature
[02:27] <bigjools> I need a slogan for maas
[02:28] <davecheney> for the maas's not the class's
[02:28] <davecheney> er
[02:28] <davecheney> masses not the classes
[02:28] <bigjools> not bad
[03:06] <wallyworld_> thumper: all those comments about machine 0 etc - all that stuff existing previously in the tests - i just moved it around and extracted some common logic
[03:07] <wallyworld_> i'm wondering whether we want to do a clean up at the end of this work rather than fixing a bunch of existing stuff that isn't too badly out of date now
[03:13] <thumper> wallyworld_: I'd be up for a separate branch
[03:13] <thumper> it was more of an observation
[03:13] <thumper> and we should work to make tests easier
[03:13] <wallyworld_> agreed
[03:14] <wallyworld_> i'm writing tests for having assignnew honour container constraints
[03:15] <wallyworld_> so when that's done, we can deploy into a new container without needing add-machine first
[03:35] <thumper> cool
[04:25] <thumper> ugh
[04:34] <wallyworld_> thumper: https://pastebin.canonical.com/93667/ https://codereview.appspot.com/10858043
[04:45] <davecheney> anyone tried to compile juju on precise recently ?
[04:45] <davecheney> http://paste.ubuntu.com/5835154/
[04:48] <bigjools> see my convo with wallyworld_ from earlier
[04:48] <davecheney> le shit
[04:49] <bigjools> install golang-src, basically
[04:49] <davecheney> ubuntu@ip-10-248-67-205:~/src/github.com/andelf/go-curl$ dpkg -l | grep golang
[04:49] <davecheney> ii  golang-go                        2:1-5                        Go programming language compiler
[04:49] <davecheney> ii  golang-src                       2:1-5                        Go programming language compiler - source files
[04:49] <bigjools> huh
[04:49] <bigjools> ummmm
[04:51] <bigjools> so GoUintptr is declared in the files that package installs
[04:53] <davecheney> #include "_cgo_export.h"
[04:53] <davecheney> ^ this is a bit suspect
[04:54] <davecheney> how did this manage to build on the lp builders
[04:54] <davecheney> ?
[04:56] <bigjools> does it build ok on raring?
[04:56] <davecheney> will check
[04:56] <davecheney> it builds ok on my R machine
[04:56] <davecheney> but I need to check
[04:56] <davecheney> please hold
[04:56] <bigjools> it builds for me locally
[04:56] <davecheney> same
[04:56] <bigjools> on raring
[04:57] <bigjools> but that means nothing in the world of building packages
[04:58] <davecheney> http://www.keepcalm-o-matic.co.uk/p/keep-calm-it-works-on-my-machine/.
[04:58] <davecheney> http://www.keepcalm-o-matic.co.uk/p/keep-calm-it-works-on-my-machine/
[05:38] <davecheney> bigjools: it builds fine on raring
[05:38] <bigjools> fun
[05:38] <bigjools> any idea what difference would cause this?
[05:39] <bigjools> and feel free to file a bug on bugs.launchpad.net/gwacl
[05:39] <davecheney> raring has a different version of go and libcurl3
[05:40] <davecheney> ^ first guess
[05:40] <bigjools> it's not going to help now, but here's another reason to push an SRU
[05:40] <davecheney> lucky(~) % juju scp -e ap-southeast-1 1 bin/juju .
[05:40] <davecheney> cp: cannot stat ‘1’: No such file or directory
[05:40] <davecheney> error: exit status 1
[05:40] <davecheney> ^ did I derp, or is this a bug ?
[06:09] <davecheney> bigjools: confirmed, go-curl/gwacl works on go 1.0.2
[06:09] <davecheney> i am checking if it can compile for 1.0.1 or earlier
[06:10] <bigjools> what does precise have?  I can't tell from the package versioning
[06:13] <davecheney> it's called go1
[06:14] <davecheney> not really sure what it is under the hood
[06:14] <bigjools> not sure how the distro guys can keep an unsupported release in an LTS
[06:15] <davecheney> bigjools: there is a big disconnect going on there
[06:19] <davecheney> bigjools: https://launchpad.net/juju-project << can you add https://launchpad.net/gwacl to this list ?
[06:20] <bigjools> sure
[06:21] <davecheney> ta muchly
[06:21] <davecheney> chasing down which versions of go can't compile go-curl
[06:22] <davecheney> then I can try to figure out the bug that was fixed between releases
[06:26] <davecheney> https://bugs.launchpad.net/juju-core/+bug/1196811
[08:15] <jamespage> davecheney, mgz: any update on next release of juju-core? standing by to help upload to saucy
[08:18] <davecheney> jamespage: i'll forward u an email with the latst state of play
[08:18] <jamespage> davecheney, thanks
[08:19] <davecheney> done
[09:39] <jtv> fwereade: I did the first part of that refactoring of duplicated provider code that you wanted me to do.  Thumper was going to review it, but I guess it didn't work out.
[09:39] <jtv> I don't suppose you could provide the second review?  It's here: https://codereview.appspot.com/10830044
[09:58] <mgz> fwereade: sorted out the laptop issue I take it?
[09:58] <fwereade> jtv, sure, thanks for doing that, sorry I missed you
[09:59] <fwereade> mgz, yeah, it all seems happy again
[10:02] <fwereade> jtv, LGTM, that's awesome -- thank you very much for picking that up
[10:17] <wallyworld> fwereade: i'm on leave for the rest of the week but would love to land a couple of branches. would you be up for a look? it's deployment constraints stuff
[10:18] <wallyworld> https://pastebin.canonical.com/93667/
[10:25] <jam> fwereade: can I get a follow up review of: https://codereview.appspot.com/10809043/ ?
[10:25] <jam> mgz: if you can look at it as a second +1 that would be great, too
[10:26] <jam> I'm trying to take over Rogs' branch for now, and then transition to having a machine agent that only talks via api
[10:26] <fwereade> jam, sure
[10:27] <fwereade> jam, don't burn too much time on rog's branch -- it's a slight detour from that goal, I think
[10:27] <fwereade> jam, nice-to-have not must-have
[10:28] <jam> fwereade: well, it changes the names for some apis, but that might be internal only.
[10:34] <jtv> fwereade: fantastic — I'll do the rest after.
[10:36] <mgz> jam: sure
[11:22] <mgz> codereview is being a right bint today...
[11:33] <jam> fwereade: https://plus.google.com/hangouts/_/f497381ca4d154890227b3b35a85a985b894b471
[13:18] <jtv> fwereade, you might know this: the ec2 implementation of StateInfo doesn't use DNSName(), but goes straight to the EC2 object's DNSName field.  That saves it a query to the EC2 API... would it be a problem if I made it go through DNSName()?
[13:20] <fwereade> jtv, that sounds like a problem with ec2.Instance.DNSName() not caching sensibly
[13:20] <fwereade> jtv, so I think I'm fine with that
[13:21] <jtv> Thanks.  I think it may be an optimization, because in a way, what StateInfo() does there is a parallel WaitDNSName().
[13:21] <jtv> In fact, WaitDNSName() is another piece of code that so far appears as if the exact same loop would do for all providers.
[13:22] <fwereade> jtv, yeah, like much of the environs code :(
[13:22] <jtv> True.  :)
[13:22] <mgz> yeah, it's a bad interface
[13:23] <fwereade> jtv, I hadn't even noticed that one though
[13:23] <jtv> By the way, do I understand correctly that StateInfo() is there to return *a* state server, not necessarily as many as it can?
[13:23] <fwereade> jtv, it's currently there to return just one
[13:23] <jtv> Well some providers don't need to wait for DNSName.  But in those cases, the generalized WaitDNSName loop would still do the right thing.
[13:23] <jtv> OK, thanks!
[13:23] <fwereade> jtv, but we don't want to restrict it to that
[13:24] <jtv> I tried generalizing *all* StateInfo implementations, but the dummy one deadlocks.
[13:24] <fwereade> jtv, gaah, blasted dummy provider... I guess it wasn't clear why?
[13:24] <jtv> Instead, I'm going with the approach of "utility re-usable implementation."
[13:24] <fwereade> jtv, sgtm
[13:25] <fwereade> jtv, in general, when you come across things like WaitDNSName, I'd really appreciate bugs tagged tech-debt
[13:25] <fwereade> jtv, trying to enumerate them all in one go is clearly a non-starter
[13:26] <fwereade> jtv, but being able to look at them will be useful
[13:26] <jtv> I didn't go too deeply into it, but my impression was that the dummy provider deadlocked on its two locks somehow, one of which might be needed only for bootstrapping or something.
[13:26] <jtv> Double-locking is nasty.
[13:27] <jtv> On first invocation, I think StateInfo will return only those state servers that have been defined *before* StateInfo was called (it doesn't discover newer additions) and that are among the first to have their DNS names.
[13:28] <fwereade> jtv,+1
[13:29] <jtv> Thanks!  I'll get right to it.  After this, the most complicated StateInfo implementation  among the providers should be the dummy one.  :)
[13:47] <fwereade> jam, comment for consideration in upgrader,let me know yourthoughts please
[15:06] <mgz> hm, unhappy bot
[15:07] <mgz> something caused both openstack and ec2 tetsts to timeout after 10mins
[15:08] <mgz> which is odd, as I merged into trunk and ran the suite locally before submitting
[15:25] <fwereade> jtv,ping
[15:36] <mgz> fwereade: past his eod really, you may be best off emailing
[15:53] <jtv> fwereade: yes?
[15:55] <fwereade> jtv, I asked in the review -- could you make the dns name different from the instance id? or have I misunderstood what's going on in that test?
[15:55] <fwereade> jtv, but don't worry about it today unless you want to :)
[15:56] <jtv> fwereade: I'll just have a look at what you wrote there then, thanks.
[15:56] <jtv> But I think you're right.
[16:10] <jtv> Say... what time unit does utils.AttemptStrategy use?  It seems weird that tests use 0.25e9 and 0.01e9 — why not something much smaller?
[16:11] <jtv> I believe 0.01e9 equals 10,000,000.
[16:11] <jtv> Probably nanoseconds, but even then... why not 1?
[16:15] <jtv> And why floating-point notation?
[20:58] <mgz> if tim pops in, tell him I'm just finishing cooking
[21:01] <thumper> morning
[21:10] <mgz> hey thumper
[21:10] <thumper> hi mgz
[21:16] <fwereade> thumper, heyhey
[21:16] <thumper> hi fwereade
[21:17] <thumper> fwereade: I'm consolidating the bootstrap functions found in environs/*/state.go
[21:17] <thumper> into one place
[21:17] <thumper> as I wasn't going to copy and paste yet again
[21:17] <fwereade> thumper, <3
[21:18] <thumper> heh: current error: "file \"provider-state\" not found not found"
[21:18]  * thumper fixes too
[21:19] <fwereade> thumper, ah, balls, I had a branch that fixed a bunch of those, and I could see the bits rotting one by one while I was distracted :/
[21:20] <thumper> heh
[21:20] <thumper> this one was in localstorage/storage.go
[21:33] <wallyworld> mramm: hi, another issue that we need to communicate on (besides the packaging thing) - i saw a conversation in #juju where it was thought the reason for deprecating default-image-id was to make it easier for the developers
[21:34] <mramm> wallyworld: haha
[21:34] <wallyworld> haha indeed! it's easier for s to keep that setting
[21:34] <mramm> we need to finish up the sync tools story
[21:35] <mramm> so that none of that seems complicated anymore
[21:35] <wallyworld> yeah. and explain the rationale for various design decisions
[21:35] <mramm> yep
[21:35] <mramm> sounds like a good blog post
[21:35] <wallyworld> you are an ideas man
[21:35] <mramm> for the one blog post a month thing ;)
[21:35] <wallyworld> i'm going to blog about the simplestreams stuff when it is done
[21:36] <wallyworld> but there's more to do yet
[21:36] <mramm> cool
[22:36]  * thumper feels a tread being pulled
[22:38]  * thumper feels like screaming a little
[22:38] <thumper> copy and paste FTL
[22:51] <thumper> oh ffs
[22:51] <thumper> that is 2-3 hours down the drain
[22:51] <thumper> someone else has already landed this code
[23:16] <davecheney> arosales: sorry, i'm late for the clal
[23:16] <davecheney> i thought it was at 10 for unknown reasons
[23:16] <davecheney> i'll get my headset now
[23:16] <arosales> davecheney, no worries in the hangout when you are ready
[23:22] <davecheney> ok, i'm in the hangout now
[23:25] <davecheney> arosales: ok, i'm in the hangout now
[23:41]  * thumper afk to collect sick child