[00:52] bigjools: sup [00:52] thumper: do you have any contacts on u1 ? [00:53] sidnei: ping [01:10] davecheney: pong [01:11] sidnei: nate is looking for someone that can help him with windows installer tools [01:11] thumper: did you write the DiskManager stuff for tools? [01:11] does u1 use anything for producing it's windows installer that would be of use ? [01:12] davecheney: uhm, brian curtin was our windows guy, i think mike mccraken is in charge now. let me see if i can figure out what they are using. [01:12] sidnei: what timezone are they in [01:13] i wanna try to cross connect nate and those two guys [01:13] mike is in cali [01:13] kk [01:13] that'll work [01:13] i think brian left recently [01:13] oh snap [01:13] ok, i'll write to mike [01:17] davecheney: seems to be bitrock: http://bitrock.com/ [01:17] http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-windows-installer/trunk/view/head:/scripts/build_installer.py fwiw [01:17] sidnei: thanks [01:18] * sidnei disappears again [01:34] wallyworld_: no [01:34] yeah, i saw john did it [01:34] davecheney: yes [01:34] but nothing seems to use it apart from tests [01:34] thumper: yes what [01:34] * thumper shrugs [01:35] i think I forgot the question [01:35] davecheney: yes I have contacts on u1 [01:35] davecheney: beuno [01:35] thumper: ahh, this is a question from Nate [01:35] who wants to know what we use for win32 installers [01:35] ah [01:35] sidnei: said talk to Miek McCracken [01:35] they are in very similar time zones [01:36] thumper: anyone else who delivers one win32 in the company I can point him too ? [01:36] sorry, don't really know [01:36] thumper: s'okj [01:36] it's an unusual request [01:36] although jamesh used to work on u1 [01:36] he may know [01:37] * thumper pings him [01:37] axw: do you get much chance to talk with Nate ? [01:37] he's in a pretty shitty timezone for you [01:37] WA <> Central time is not awesome [01:37] davecheney: haven't spoken to him since I've started [01:37] yeah it's like, the opposite [01:37] :) [01:38] they must be ~12 hours apart [01:38] yep [01:38] axw: it is the fall that enslaves us all [01:39] "most isolated city in the world", even when you're working remotely [01:40] axw: you have your own currency over there, right ? [01:41] yeah, the WA bux [01:41] actually we just trade in iron ore [01:41] with a picture of the little creatures brewery on the $20 bill [01:41] davecheney: The win32 code is at https://launchpad.net/ubuntuone-windows-installer [01:41] ha! raw coke iron [01:41] thumper: ta [01:42] heh, might be using py2exe [01:42] axw: do the ATMs dispence iron ore and uranium ? [01:42] but should still use a .msi somehwere [01:42] looks the same as bzr's [01:43] davecheney: what is an ATM? I keep my money under my bed [01:43] anyway... ;) [01:43] money... or opals and ore? [01:44] yep, not a very comfortable bed [01:53] I am shattered [01:53] my daughter woke up twice last night, my son three times [01:53] :( [01:53] :( [01:53] I remember those days [01:54] axw: don't stress, and sleep if you need to [01:54] the world won't fall apart if you miss a day :) [01:54] thumper: thanks, I'm kinda used to it, just a bit worse than usual [01:55] * thumper nods [01:56] thumper: have you ever tried upgrading a local provider? :) [01:56] thumper: the bootstrap machine agent restarts repeatedly [01:59] I'll make sure I can reproduce it again, and log a bug.. [02:06] axw: we decided that we didn't support upgrading with the local provider [02:06] axw: however, if it is easy to fix [02:06] then we could do it I suppose [02:06] I just wasn't going to waste cycles on it [02:06] thumper: ah ok [02:07] we should either document the limitation or fix it I guess [02:07] do we want a bug in LP anyway? at least then we can decide to tell "upgrade-juju" to not attempt [02:10] Bug #1214676 -- logged anyway, at least then there's a record for the next unsuspecting user [02:10] <_mup_> Bug #1214676: upgrade-juju in local environment causes bootstrap machine agent to restart continuously [02:39] jamespage: thanks for keeping https://blueprints.launchpad.net/ubuntu/+spec/servercloud-s-juju-2-delivery up to date [02:39] i'll try to find out when we're going to deliver 1.14 stable as soon as I can [03:07] o/ [03:56] axw: thanks for 12742045/ [03:56] how come none of the tests have to change ? [03:57] does that mean we don't have a test that checks that the listener file exists on disk ? [03:57] davecheney: because you don't need to manually delete unix sockets in Go [03:57] Close() unlinks them [03:58] axw: you can still leave socket turds around [03:58] if the process terminates, yes [03:58] service jujud-unit-agent stop [03:58] will leave a turd around [03:58] that was how I ran across this [04:00] the existing tests all specify the path as non-abstract [04:00] i.e. they don't go through that codepath that specifies them as abstract [04:00] hmm, ok [04:00] i'm not going to complain [04:00] but maybe someone will [04:00] ideally we'd have a test for it, but it seemed like an awful lot of work for very little gain [04:01] axw: yup [04:02] davecheney: so, you are prepared for an Azure onslaught? [04:02] and axw :) [04:02] bigjools: yes, bring it on [04:02] because bugs are getting filed already (not sure if they are real bugs yet...) [04:03] bigjools: yeah, we'll manage [04:03] I'll help as much as I can of course [04:03] will take you through it next week [04:03] ok [04:03] will prob make Monday after all [04:03] \o/ [04:04] your weed delivery came through early ? [04:04] nah sending the wife to get it [04:04] bigjools: I know nothing about Azure, so ... probably not prepared. But I'll look forward to learning [04:04] axw: there is indeed much to learn [04:05] on the bright side, the weather here is marvellous [04:05] here too - spring is slightly early [06:03] has anyone been trying canonistack with 'use-floating-ip: true' ? I saw the machine come up, and I can ssh to the private address, but the public address tells me invalid public key [06:05] I haven't, but I can give it a try [06:05] axw: if you would, to give me a point of comparison [06:15] jam: it works for me if I specify the identity file (~/.canonistack/axw_lcy02.key) and user as ubuntu [06:15] i.e. what's in my .ssh/config for canonistack, for the private IP range [06:16] axw: ah, user ubuntu, probably my fault [06:16] different machine, I don't have my normal setup [06:17] axw: thanks for the reminder [06:17] jam: no worries [06:17] default key was fine, didn't have the config for ubuntu@ for 172.* addresses. [06:18] axw: interestingly, username isn't part of the 'ssh -v' output. [06:18] so it would seem - helpful! [06:25] arosales: hopeful ping [06:26] bigjools, hello [06:26] arosales: wow you're up! [06:26] arosales: I updated your config doc with my version of things, let me know how it looks [06:26] for a little bit longer [06:27] bigjools, thanks [06:27] * arosales is waiting for agent-state to go to started in Azure [06:27] using --upload-tols [06:28] bigjools, I saw your and gavin's reply so I was mistaken there. I was unaware the --upload-tools built juju-tools locally to match the version being used [06:28] arosales: no worries [06:28] I'll see if I can re-create your deployment bug [06:30] https://bugs.launchpad.net/juju-core/+bug/1214636 may be due to mismatch juju-tools [06:30] I highly suspect so yes [06:30] I am trying with --uploads-tools now [06:30] https://bugs.launchpad.net/juju-core/+bug/1214178 I think we can make better by having the user specify the settings file [06:30] I am just bootstrapping then I'll try to deploy [06:31] arosales: this is the first time I ever saw a settings file :) [06:31] https://bugs.launchpad.net/juju-core/+bug/1214181 ~should~ be resolved once we get the correct tools in Azure [06:31] <_mup_> Bug #1214181: Azure Provider always uploading 1.12 tools [06:31] bigjools, I take it you also saw Ben's tool in the google set up doc [06:31] I did [06:31] not looked at the code [06:31] ok [06:32] we just saw the stuff on the management UI about creating and uploading a certificate [06:32] Azure complained my pem didn't have the right structure when I openssl command [06:32] I too went that route initially [06:33] I love the way their ui insists your file must be a .cer, like that means anything [06:33] but I think the settings file makes for a better user experience. [06:33] bigjools, I feel your guys' pain [06:33] arosales: all of Red used the openssl tool to generate a certificate fine [06:33] to a _very_ small degree [06:33] ha :) [06:33] arosales: the settings file can only be downloaded once you upload a certificate, right? [06:33] arosales: openssl req -config /usr/share/ssl-cert/ssleay.cnf -x509 -nodes \ [06:33] -days 3650 -newkey rsa:2048 -keyout azure.pem -out azure.pem [06:34] openssl x509 -inform pem -in azure.pem -outform der -out azure.cer [06:34] bigjools, that may be my pilot error on the pem gen . . [06:34] davecheney: exactly [06:34] I thought I was following Azure instructions, but the settings file helps simplify that. [06:34] is the settings file documented anywhere? [06:35] hm . . . I'll have to check with utlemming on that [06:35] I can't see anything on manage.windowsazure.com about it [06:35] what is the settnigs file ? [06:35] Azure hands down the pems for a subscription in a xml based file [06:36] AFAICT it's some xml that contains a subscription ID and the certificate [06:36] but given that you have to generate and upload a certificate I question its usefulness for juju [06:37] bigjools, aiui this settings file generates the need certificate. [06:37] so I didn't have to upload a cert to have juju work. [06:38] just needed to parse the settings file and put the pem in the correct path [06:38] arosales: ok, would love to see any docs on that [06:38] how did you find out about it? [06:38] bigjools, ok I'll follow up with utlemming on it. [06:38] thanks [06:38] utlemming also says this helps solve the China Azure endpoint problem too [06:39] arosales: what problem? [06:39] utlemming told me about it when I was having some initial bootstrap issues [06:39] managing multiple certificates for different Azure end points [06:40] bigjools, I'll start a thread with utlemming so when he gets up the morning he can shed some more light on it. [06:40] arosales: I honestly can't work out what the problem is with that, if Azure needs a separate cert then we just config it in a separate juju env [06:40] ok cool [06:41] ubg state still in pending with --upload-tools [06:42] bigjools, http://pastebin.ubuntu.com/6009219/ [06:42] I seem to not be able to get out of pending [06:42] what version of juju should I be using? [06:43] and is there any other special juju set up I need? [06:44] * arosales using 1.13.2 (compiled yesterday) [06:44] arosales: I am using tip of trunk [06:45] I just did a deployment, so let's see how it goes [06:45] bigjools, ok thanks [06:45] arosales: you can try ssh-ing into machine 1 [06:45] check the agent log [06:46] * arosales just destroyed [06:46] will redeploy again [06:47] I just deployed deploy cs:precise/juju-gui on saucy [06:47] bigjools, juju didn't complain about the series mismatch? [06:48] it does unless you force the series [06:48] I was just deploying wordpress out of a local saucy repo [06:49] ok [06:49] bigjools, I guess you just set you "default-series" to "precise" in your env.yaml, correct? [06:49] arosales: no, that's saucy still. I literally just did "juju deploy cs:precise/juju-gui" [06:50] and off it goes [06:50] huh ok [06:51] bigjools, have you had success with a local deploy? [06:51] I haven't tried [06:51] I just downloaded the latest wordpress charm and did [06:52] --repository=/home/arosales/devel/local-charms/ local:saucy/wordpress [06:52] * arosales stating the obvious [06:53] I'm getting public key error trying to ssh into machine 1 [06:53] this means cloud-init is probably hosed [06:54] either that or juju's user data went wrong - and given the bootstrap worked I suspect the latter [06:54] ugh [06:54] I've definitely deployed before so something has recently broken [06:55] there was a recent fix for cloud-init ssh access on azure . . . [06:55] sadly no way of finding out since I can't ssh in ... [06:55] oh do you have a reference? [06:56] the fix might not be in the image [06:56] https://bugs.launchpad.net/cloud-init/+bug/1212723 [06:56] <_mup_> Bug #1212723: cloud-init fails to set user password on Windows Azure [06:56] I had thought that had gone into the Monday's daily . . . [06:56] arosales: ah that's not relevant here [06:56] we don't use passwords [06:57] so I can ssh into machine 0 but not 1 [06:57] ah ok [06:57] something catastrophic has gone wrong in cloud-init if it hasn't picked up the ssh key [06:57] I'll write this up on the bug arosales [06:57] ya 0 has been able to go to a started state for me, its just subsequent services that get stuck in pending [06:58] bigjools, if you can point to something in cloud-init I can pick this back up with utlemming and smoser in the morning (us time) [06:58] it could be cloud-init or juju's fault [06:59] so I'll write up as much as I can and then you can get smoser to take a look I guess [06:59] we could do with a debug setting to put a password on the account [07:00] bigjools, which bug are you documenting in? [07:00] arosales: https://bugs.launchpad.net/juju-core/+bug/1214636 [07:00] <_mup_> Bug #1214636: Azure Provider: Deployed service never goes to started [07:00] ok [07:01] bigjools, did that fail with the charm store gui deploy and the local charm or just the local? [07:02] arosales: with the cs one [07:02] ok [07:02] not sure it matters [07:03] it's not getting that far [07:05] arosales: I'm going to try with a different (older) image that I used successfully before and see if that helps [07:05] bigjools, ack, thanks for looking into and the help [07:07] arosales: not a problem [07:08] geesh deploys are taking about 9 minutes [07:08] and that just waiting for the service to connect to the state server [07:09] arosales: azure is slow :/ [07:10] bigjools, is there a particular API call that takes long [07:10] I would like to bring this up with msft on why deploys take so long [07:10] arosales: most of them return quickly, it's just the provisioning process [07:11] waiting for a machine to come up and then boot and then provision. [07:11] a certain amount of time is wasted if the image is not new enough as the apt-get update/upgrade takes a while [07:12] we should be hitting a local mirror for apt-get updates on the order of less than a minute, especially for a daily image. [07:13] It seems the console provisions vms faster than 5 minutes, but I haven't done one recently [07:13] would be good comparison [07:14] arosales: the api calls that are slow are mostly deletion of stuff [07:14] but there's plenty of bugs filed about that already [07:14] ok, but that shouldn't affect the deploy times [07:14] and there are fixing delete [07:15] I think you saw the latest API for that [07:15] yep [07:23] jam: I can't make the standup. should I just send comments to the list? [07:23] (for shared review) [07:26] allenap: Hi! I saw your branch with improvements to the Makefile... Another thought I had the other day is adding -y to the apt-add-repository and apt-get installs (or at least allowing -y via env or similar?). What do you think? [07:28] bigjools, on a quick test from the console gallery it takes about 4 minutes to create a virtual machine [07:28] arosales: sounds about right [07:32] arosales: huh, my known-good image no longer works [07:33] davecheney: why would mongo be coming up on port 27017 and juju wanting to connect on 37017? [07:33] :-( === tasdomas_afk is now known as tasdomas [07:38] arosales: you should probably call it a night! If you can grab Scott tomorrow maybe he can help debug based on my bug comments [07:41] bigjools, will do [07:42] ok good night fellas [07:42] nn arosales [07:42] bigjools, I'll touch base with smoser tomorrow morning [07:42] ok [07:43] thanks [07:43] * bigjools eats [07:54] 5 [07:55] axw: sounds good. I think we're going to try and have Tim run a shared review conversation sometime in the AU-friendly timezones. But I haven't seen him to coordinate it. [07:57] jam: okey dokey, thanks [08:03] mornin' all [08:04] rogpeppe, heyhey [08:04] fwereade: yo! [08:06] rogpeppe: heya [08:06] TheMue: hiya [08:13] TheMue, ping [08:13] noodles775: I think that's a fair point. I'll add the -ys. [08:14] TheMue, actually I'll just mark https://codereview.appspot.com/12347043/ WIP, please reject it yourself if you're doing a fresh branch for unset [08:15] allenap: thanks (it wasn't really a point about your branch, just something I needed/wanted yesterday, and since you were there... :) ). [08:27] Gna, update just made me reboot. [08:27] fwereade: Seen that you pinged me? [08:59] hey, anyone know why would mongo be coming up on port 27017 and juju wanting to connect on 37017? [09:01] bigjools: "apt-get install mongodb" brings it up on 27017 [09:01] bigjools: but jujud coming up sets an upstart config that puts a different one on 37017 [09:01] with TLS enabled, etc. [09:01] jam: this was after I did a bootstrap [09:01] b [09:01] bootstrap node didn't finish coming up [09:01] bigjools: that sounds like cloud-init successfully installed mongodb-server, but jujud did not successfully finish bringing itself and mongodb up [09:01] and ssh-ing in showed this [09:01] yeah [09:02] in cloud-init-output.log it just shows lots of failed connections [09:02] no other errors obvious [09:02] can you tar up and post the cloud-init-output ? [09:02] I can take a look at it [09:02] I an do better and put your public key on the machine if you want? [09:02] bigjools: ssh-import-id jameinel should wokr [09:02] work [09:03] one sec [09:03] ssh ubuntu@juju-azure-9nz3pmvw7e.cloudapp.net [09:03] success [09:04] jam: I'll come clean on something - this is using an old-ish saucy image but I needed to work out why I can't deploy on the latest daily. This old image used to work. [09:04] the latest daily shows a publickey error, so can't ssh in and see [09:06] bigjools: root@default:~# mongod --version [09:06] db version v2.0.4, pdfile version 4.5 [09:06] Wed Aug 21 09:05:32 git version: nogitversion [09:06] that looks like a really old db version [09:06] 2.0.4 [09:06] vs 2.4+ should be in new saucy [09:06] weird - I have deployed with this image before [09:06] why would this stop working? [09:06] ||/ Name Version Description [09:06] +++-========================-========================-=================================================== [09:06] ii mongodb-server 1:2.0.4-1ubuntu2.1 object/document-oriented database (server package) [09:07] bigjools: /etc/lsb-release says this is a Precise image, not saucy [09:07] yeah was about to sya [09:07] but should still work nonetheless [09:07] oh wait ... haha [09:07] bigjools: if we know it is precise, we add-apt-repository ppa:juju/stable to get newer mongodbx [09:08] I know what;s up, I think my default series is wrong :) [09:08] right :) [09:08] thanks for helping me see the end of my nose! [09:08] bigjools: so your machine thinks it is deploying saucy, but it is actually precise [09:26] jam: bigjools you need to install juju:ppa/stable [09:27] to pick up the mongodb dep [09:27] davechen1y: jam figured it out, I had a dodgy config [09:29] bigjools: also [09:29] i wasn't thinking [09:29] we always insert that ppa via cloud-innit on the remote bootstrap machine [09:29] if required [09:29] understandable [09:30] * bigjools heads towards TV to watch Aussies lose at cricket again [09:30] bigjools: we're going to get on like a house on fire next week [09:30] i'm super confident of that fact [09:30] jam: yolanda has a questoin about bootstrapping on canonistack [09:30] davechen1y: :D [09:31] hi, i just upgraded to 1.12 version of juju, trying to deploy on canonistack, but deployment is stuck on INFO juju open.go:69 state: opening state; mongo addresses: ["10.55.60.49:37017"]; entity "" [09:31] she's seeing it trying to contact the bootstrap node on the private 10 [09:31] ip [09:31] gives timeout [09:31] jam: mgz any ideas ? [09:31] how do you setup the port forwarding for canonistack ? [09:34] fwereade, jam, mgz, TheMue: https://codereview.appspot.com/13089045 [09:34] fwereade: i hope this addresses your concerns about the lax stuff. [09:35] davechen1y: you can either use 'sshuttle' or you can just set "use-floating-ips: true' [09:35] davechen1y: canonistack got 2 new /24 for public IPs, so we should have enough now. [09:36] rogpeppe1: *click* [09:36] davechen1y: but the port forwarding I use is: apt-get install sshuttle; sshuttle -r ubuntu@$BOOTSTRAP 10.55.0.0/16 [09:37] jam, so i'll try it [09:38] yolanda: k, if you have any more questions, feel free to ask [09:40] jam, that worked! [09:40] woot [09:43] yolanda: i the default image type on openstack machines is 1core 1gb ram [09:44] jam: and mgz wrote this [09:44] they would be able to tell you [09:48] i just realised that i reviewed (comprehensively) entirely the wrong file [09:48] rogpeppe1: we'll still appreciate that review :) [09:48] tried a juju debug-log, having that error: http://paste.ubuntu.com/6009664/ [09:48] jam: i reviewed constraints.go [09:49] jam: (a small file, but with primitives used in quite a few places) [09:49] rogpeppe1: I can make that the assignment for next week :) I was going to do relations.go but constraints is worthwhile for the group, too. [09:49] * davechen1y looks [09:49] that url that it complains about, works nice in a browser [09:49] yolanda: could be sporadic [09:49] can you try again [09:49] yolanda: you can try a) swift list and b) just try juju debug-log again [09:54] jam, davechen1y, different answer now [09:54] jujy deploy --constraints="cores=4 mem=4G" $SERVICE [09:54] something like this should ask for a different instance [09:55] i forget if constraints are best fit or absolute match [09:55] rogpeppe1: you've got a review [09:55] TheMue: thanks! [09:55] yolanda: if you need more disk i *beleve* you get it by matching an instance type that has more cores and more ram [09:56] davechen1y: they should be a "minimum" so if there is only a 4-core 8G service we'll give it to you [09:56] jam: /me can't remember the instance types available on canonistack [09:56] TheMue: as I said in the description, the plan is to rename Sync to StartSync - i didn't want to confuse matters by doing it in this CL [09:56] yolanda, davechen1y: sidnei was putting together a patch to add a "root-disk" constraint to specify how much disk space the OS gets. But that isn't in a released version. (It might have landed and will be in 1.13.2, though) [09:57] jam, fwereade: i would very much appreciate your feedback on this CL https://codereview.appspot.com/13089045 [09:58] jam: yolanda do all canonistack instances get the same root disk partitoin ? [09:58] i thought it was larger if you asked for more cores/ram [09:59] davechen1y, i normally got more disk by setting a larger instance-type, for example m1.small instead of m1.tiny [09:59] davechen1y: can you try running your mongodb with --no-unix-socket? We have a really hard time in the test suite if we try to start mongodb with a flag it doesn't recognize. So if it is ~roughly sane, we can go with it, but if there is a chance it will be hard to debug, I don't think it is worth it. [09:59] axw: ^^ [10:00] davechen1y, yolanda: 'nova flavor-list' shows about 1300 options, so it isn't like you can remember them all :) [10:00] sorry 300 [10:00] they all start with a 1 [10:00] jam: --nounixsocket works (I tested it before across all the code), --no-unix-socket isn't a thing [10:01] axw: I realize it works on your machine, I'm concerned about it running on all developers and platforms we want to run the test suite on. [10:01] right sorry, misunderstood [10:01] We ran into trouble in the --no-ssl switch (where having an old mongo just hangs the test suite for 600s before the test times out, with poor information about why it is failing) [10:01] fwiw I verified it's on the PPA version [10:01] so it'll be no worse than lacking SSL [10:01] rogpeppe1: rename Sync to StartSync? that's what IMHO would be wrong. [10:02] TheMue: no, rename StartSync to Sync. [10:02] jam, i normally use a instance-type=m1.small and that's all, or flavor 2, that works for canonistack [10:02] TheMue: there should be no occurrences of Sync left (other than calls to presence Sync) [10:02] axw: I can confirm that with the 2.2.4 that we produced in the tarball on S3, --nounixsocket works [10:02] jam: thanks [10:03] gtg to dinner, adios [10:03] rogpeppe1: oh, you written the other direction above. so the first step is the new StartSync() and rename all Sync()s to StartSync() and then later to Sync()? [10:03] axw: have a good evening [10:03] cheers, you too jam [10:03] TheMue: yes [10:03] axw: g'night [10:03] rogpeppe1: ah, then absolute +1, my fault [10:04] TheMue: np [10:04] rogpeppe1: "the watcher loop will not do anything else until it finishes sync" is that appropriate? (It sounds like we are blocking when we should be doing something in a background thread) [10:04] axw: ship it [10:05] jam: the watcher would never do anything else while syncing [10:06] lucky(~/src/launchpad.net/juju-core/provider) % mongod --whogivesafuck [10:06] error command line: unknown option whogivesafuck [10:06] use --help for help [10:06] lucky(~/src/launchpad.net/juju-core/provider) % mongod --nounixsocket [10:06] Wed Aug 21 20:05:53 [initandlisten] MongoDB starting : pid=23438 port=27017 dbpath=/data/db/ 64-bit host=lucky [10:06] Wed Aug 21 20:05:53 [initandlisten] db version v2.2.4, pdfile version 4.5 [10:06] jam: the only change now is that there's no time interval between asking for a sync and it actually starting one [10:06] works for me [10:06] davechen1y: thanks for confirming, thats what I see here as well. [10:06] jam: jolly good [10:06] was just a bit gun shy after last time [10:07] davechen1y: mongodb's start flags are surprisingly hard to expose and respond to. [10:08] * davechen1y sobs [10:08] davechen1y, i also tried a juju destroy, debug showed unit is dying, but service doesn't die, and it has been a long time, there should be some problem? [10:08] fffuuuu web 2.0 [10:09] yolanda: weird, pastebinit ? [10:11] davechen1y http://paste.ubuntu.com/6009736/ [10:11] just got that "unit is dying" and no more notice [10:11] but service is still there [10:13] yolanda: did you do remove-unit or destroy-service ? [10:13] destroy-service [10:14] in status it just shows "dying" [10:15] yolanda: juju status $YOURSERVICE should show [10:15] one service [10:15] with no units [10:16] rogpeppe1: +1 for nuking Sync [10:16] davechen1y: cool [10:16] for no other reason than we always use StartSync [10:16] so it's unneeded [10:16] davechen1y: well, we *did* use Sync in quite a few places [10:17] davechen1y: but it's always unnecessary [10:17] exactly [10:17] and one way to do things is better than two [10:17] davechen1y: and i think my changes give StartSync the same amount of useful guarantee that we had from Sync previously [10:18] davechen1y: (also, i plan to rename StartSync to Sync once the dust has settled) [10:18] davechen1y, i destroyed environment and redeployed again, as charm was in a failed state, but no error in the debug-log [10:26] yolanda: im sorry it's not working on canonistack [10:26] i do not test on canonistack [10:26] this is my faliing [10:26] failing [10:28] davechen1y, you mean the debug-log? or which issue? [10:29] mgz: natefinch: given you are adding Addresses to lots of providers, are we missing a LiveTest across all implementations that it is available and gives a "sane" result? [10:29] or is the idea that you have to build it up first and then implement the conformance test? [10:30] (I'd rather see a patch that adds a conformance test and stubs out the ones that don't implement it until we fix them, since that clearly records the current state) [10:46] greetings all [10:46] rogpeppe1, fwereade, natefinch: https://codereview.appspot.com/12752044 [10:46] natefinch: good morning [10:46] natefinch: hiya [10:47] jam: Yes, I believe we're missing a live test to make sure they all work... though I think they all work, since we're explicitly implementing them to get at information we know exists [10:48] rogpeppe1, (btw I cast a quick eye over it, and I think I like, but I've got a lot of reviews to churn through today) [10:48] fwereade: should i hold on for your review? [10:48] fwereade: fwiw I've done quite a few of them for you already :) [10:48] yolanda: not working well on canonistack in general [10:48] jam, <3 [10:49] davechen1y, noticed some problems, yes [10:49] * TheMue => lunchtime [10:50] fwereade: of course, the only one that I didn't dig into is yours :) [10:50] rogpeppe1, go ahead and merge it, I'll keep a tab open and throw a fit after the fact if I spot something awful, but I don;t expect to -- I did sneak a look and it seems solid to me [10:50] fwereade: cool, thanks [10:50] jam, haha [10:50] jam, I'm a little conflicted about it anyway, I don't think it's our top priority [10:51] fwereade: unfortunately when you comment via Reitveld, LP doesn't move the branch from "Requested reviews" to "Reviews I am doing". [10:51] :( [10:51] jam: you ok with the StartSync changes going in? (from your question earlier, i presume you've at least had a glance) [10:51] fwereade: can you land or reject: https://code.launchpad.net/~fwereade/juju-core/errors-cleanup/+merge/168928 [10:52] rogpeppe1: I haven't looked at the patch yet. [10:52] jam: np [10:52] I've been reading IRC to follow along with the discussion, though. [10:52] jam, hell, sorry, hat was rotted a month ago :( rejecting [10:52] jam: i can hold on for you if you'd like [10:54] rogpeppe1: first thing I saw was the "string => interface" change. Is the collect logic actually correct for things that aren't strings? [10:54] ( [10:54] jam: i believe so, as long as they can be used as map keys [10:56] allenap, ping [10:56] rogpeppe1: I'm slightly uncomfortable about the change to Lifecycle watcher being bundled with changing the semantics of Sync. [10:56] jam: in the case of Cleanup, the ids are of type ObjectIdHex [10:57] fwereade: pong [10:57] allenap, do you recall, how does maas count cores? does hyperthreading count? [10:57] jam: it seemed like a fairly trivial change, but i could split the collect change out into another CL if you like [10:58] jam: (it's only 4 lines) [10:58] fwereade: Let me see.... [10:58] rogpeppe1: just conceptually it is something I need to think about, and seems very orthogonal to what is going on [10:59] jam: i needed to use collect to fix the Cleanup watcher, and it had the wrong type [10:59] * fwereade hopes it's counting logical cores, not physical, because that seems to fit best with the ec2/openstack situation [11:00] jam: so the lifecycleWatcher needed to change for that, so it's not entirely orthogonal, but i can propose that change independently as a prereq if that's your preference [11:01] and actually... jam, mgz: do you know offhand how openstack counts a flavor's cores? [11:01] fwereade: I think it counts cores. It evaluates the xpath count(//node[@id='core']/node[@class='processor'][not(@disabled)]) against an lshw XML dump. [11:01] fwereade: well they are all virtual there, right? [11:01] I don't know how it maps hyperthreading into available cores. [11:01] jam, indeed, and overcommit is a whole new can of worms [11:01] whatever the kernel reports [11:02] jam: essentially it's just moving a dynamic type cast out of collect and into the watcher-specific logic [11:03] rogpeppe1: so given that "StartSync" actually just puts the "reqSync" into the queue, and when req := <-w.request sees it, it calls handle() and *then* flush() before we loop around to 'if w.needSync', doesn't that mean your statement about "it syncs and waits for it to complete" isn't actually true? [11:05] fwereade: nproc on my hyperthreaded 4 core processor returns 8, btw. [11:05] jam: i don't *think* so [11:06] jam: because handle of a reqSync will not actually add anything to be flushed [11:06] fwereade: I would hope we somehow discount hyperthreaded cores, since they don't even come close to actually doubling processing power [11:06] natefinch, indeed, I'm really just fretting about whether consistency is even possible given some of our providers [11:07] rogpeppe1: in the time since we start handling the reqSync, more might come into the channel, which will be flushed before we finish handling the reqSync. [11:07] that time window is very small [11:07] since we only really need to set the bool [11:07] but it does exist, doesn't it? [11:08] jam: how could that happen? if there are no events to be flushed, then flush will never read on the channel [11:08] natefinch: when I was testing it 7 years ago, 2+2 hyperthreaded cores were easily equivalent to 3 cores (as in, enabling hyperthreading allowed my threaded code to run 50% faster on 2 physical cored [11:08] cores) [11:09] jam: and so i'm fairly sure there are no places where new events can arrive between handling a request and calling sync() [11:09] jam: last I remember it was like a +25% and then only for jobs that have a lot of thread switching.... but regardless, we shouldn't treat them as fully powered cores [11:11] natefinch: I think the precision of this stuff is such that people basically need to test it and figure out what works for them. :) I don't think MaaS or Juju need to grow all that aware of what the actual benchmark results for a given workload map into "cores=X". [11:11] We just want to provide a way for people to give their input. [11:12] Ignoring hyperthreading completely doesn't seem quite correct, though neither is considering them 100%. But I think doing "something" is reasonable, as long as it is consistent. [11:12] natefinch: in the case of MaaS most likely people who *really* cared would use hardware-based tags to essentially define their own flavors, and deploy based on that. [11:14] jam: yep, totally makes sense. [11:31] standup [11:32] rogpeppe1: fwereade: https://plus.google.com/hangouts/_/f497381ca4d154890227b3b35a85a985b894b471 [11:33] mgz: ^^ === ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: - | Bugs: 7 Critical, 92 High - https://bugs.launchpad.net/juju-core/ [12:42] bigjools, or arosales i just tested a saucy daily from today and it seems functional. you could have been bit yesterday by bug 1214541 [12:42] <_mup_> Bug #1214541: hostname setting is erroring out [12:42] tested == tested from cloud-init's perspective (it ran user-data, provisioned user ... ) [13:04] jam: " [13:04] LifecycleWatcher coalescing its changes is a good thing, and a pretty notable [13:04] change to have it silently added. [13:04] " [13:05] jam: Lifecycle watcher *was* previously coalescing its changes [13:05] jam: my CL doesn't change that [13:07] jam: it's quite possible the testing for that wasn't great though [13:07] rogpeppe1: so is your change just making it use a common helper, or ? Either way it is a modest change that should probably make it into the "and I changed LifecycleWatcher to XXXX". It helps frame an understanding of what is actually changing. Given that I clearly got it wrong 2 times now :) [13:07] "make it into the *summary*" [13:07] jam: lifecycleWatcher is still calling the same helper it always called [13:08] jam: it's just that i needed to change the signature of that helper so i could use it with the CleanupWatcher [13:09] jam: i could put "I changed the collect helper function to use interface{} keys" into the summary if you think that's worth it [13:09] rogpeppe1: so I guess some of it is diff context: looking here: https://codereview.appspot.com/13089045/patch/5001/6009 [13:09] it certainly looks like lifecycle watcher is changing [13:09] but I realize that last diff block could be CleanupWatcher [13:10] which I'm *pretty* sure means CleanupWatcher is now collecting when it didn't before [13:10] jam: hmm, i don't see that in my diff [13:10] rogpeppe1: https://codereview.appspot.com/13089045/diff/5001/state/watcher.go is a different way to look at it. [13:11] but collect() is now getting called where it wasn't before (unless I'm *completely* misreading this) [13:11] jam: i think you're misreading the unified diff [13:11] jam: the collect code is being added to cleanupWatcher [13:11] jam: occupational hazard with unified diffs, i fear [13:11] rogpeppe1: so I misread that it was lifecycle, but the code is added to cleanupWatcther which is the same thing I'm mentioning (adding collection to something that wasn't collecting before) [13:12] rogpeppe1: so s/Lifecycle/Cleanup/ and my comment still applies, I think. [13:12] jam: you're right. sorry, i was thrown off by the name [13:12] rogpeppe1: we seem to be missing a test for CleanupWatcher now, given that if you revert that change no tests will break, right? [13:12] so we don't *know* that cleanup is collecting [13:13] jam: no, i made the change because tests broke [13:13] jam: in particular, TestWatchCleanup failed [13:14] jam: i'll retry to make sure of that [13:18] jam: hmm, it doesn't seem to fail any more! [13:18] fwereade: just a gentle nudge to remind you to submit a couple bugs about container.go [13:19] * jam is off for the evening, though I'll probably respond at some point later [13:19] jam, still talking to ian, have a doc open ready to convert :) [13:21] jam: i'll add a specific test for cleanup event coalescence [13:51] rvba, are you able to reproduce https://bugs.launchpad.net/juju-core/+bug/1214636 ? [13:52] <_mup_> Bug #1214636: Azure Provider: Deployed service never goes to started === tasdomas is now known as tasdomas_afk [14:00] i'm going to be offline for an hour or so, then i should have sporadic network access for 5 hours after that === rogpeppe1 is now known as rogpeppe [15:08] fwereade: ping [15:46] anyone here familiar with lxc? I used juju to deploy locally, and I'd like to open up the service to computers on my network, but I don't really know how to do it. Right now the services just have local IP addresses like 10.0.3.187... .how do I expose that to my local network? [15:51] there's not a trivial way of doing that [15:52] huh ok [15:53] you can use iptables or similar to manually route traffic on a port in, for instance [15:53] and we've briefly discussed making juju expose do something like that [15:55] mgz: yeah, manually routing the traffic is pretty much what I was thinking [15:55] I'd give you the iptables command you need, but you can probably google it as easily as me :0 [15:56] mgz: haha yeah, that's what I was just doing, no worries [16:33] fwereade, or rogpeppe1 any core folks interested/have time to join our weekly charm sync. [16:33] fwereade, rogpeppe1 wed at 16:00 [16:33] utc, that is. [16:34] arosales, yes please, sign me up [16:34] fwereade, thanks I'll add you to the invite. Please feel free to delegate and/or let me know if I should any other folks. [16:35] arosales, I might end up doing so occasionally, but I'm very interested personally [16:36] fwereade, be great to have some core folks there, thanks! :-) [16:38] fwereade, invite sent. === BradCrittenden is now known as bac [17:07] hey, it's after 6; I'm tired, see you all later :) [17:44] got a juju ssh question if any folks are around [17:47] arosales: I'm around, but you probably know more than I do. However, might as well ask :) [17:47] on juju core I am sure you have me beat :-) [17:48] arosales: We'll see :) I can at least search the codebase pretty easily for answers that can be answered that way [17:49] * arosales getting [17:49] 2013-08-21 17:43:25 ERROR juju supercommand.go:282 command failed: required environment variable not set for credentials attribute: User [17:49] error: required environment variable not set for credentials attribute: User [17:49] but I am using keys values not user [17:50] also odd it is opening up my hp environment when I state an aws one . . . [17:50] juju --debug ssh 1 -e aws-go [17:50] 2013-08-21 17:43:25 INFO juju provider.go:121 environs/openstack: opening environment "hp-go" [17:50] hmm, that may be the problem . . . [17:50] heh [17:50] thats odd [17:50] the code looks like it'll say "user" even with keys [17:51] which looks like a copy and paste error [17:51] (or at the very least, the error message should be made clearer) [17:52] nah, itlooks like copy and paste.... looks like the section on username/password got copied for keys and then didn't change the error message [17:52] But, it sounds like you may have figured it out anyway? [17:52] juju seems to be picking up my bash env setting when trying to ssh instead of my command line option, and just for ssh [17:53] juju --debug stat -e aws-go [17:53] 2013-08-21 17:52:08 INFO juju ec2.go:137 environs/ec2: opening environment "aws-go" [17:53] but ssh tries my "hp-go" environment even though I state "-e aws-go" [17:54] arosales: sounds like a bug, though it's weird that it would happen only in one subcommand, I'd expect that to be shared logic... but I can see if I can find where that's set [17:55] i'll open a bug and see if I can work around this by taking out my env setting in my bashrc file [17:56] certainly if you say -e and it doesn't use that environment, that's a bug :) [18:02] https://bugs.launchpad.net/juju-core/+bug/1215052 [18:02] <_mup_> Bug #1215052: juju ssh ignores the command line "-e" and instead uses JUJU_ENV in my .bashrc [18:02] bug filed [18:02] odd issue [18:04] yeah, pretty weird [18:07] arosales, are you sure it wouldn't work with [18:07] juju -e aws-go --debug ssh 1 [18:07] smoser, yup [18:07] that the exact command I ran [18:08] well, its not what you typed above [18:08] its not completely unreasonable if juju stopped looking for flags to it after it saw 'ssh', and instead passed those forward to something else. [18:08] juju --debug ssh 1 -e aws-go [18:08] ie [18:08] juju -e aws-go --debug ssh 1 [18:09] smoser, so you are saying order of arguments matter [18:09] order maybe important [18:09] yes. its not terribly uncommon. [18:09] good point [18:09] especially if juju was going to pass other options on to ssh [18:09] ie: [18:09] juju --debug ssh 1 run this command [18:10] smoser, I'll try your order here [18:10] arosales, also, icame here wondering if you tested aws and saucy [18:10] (which i suspect you were trying :) [18:10] smoser, btw I was working on trying to confirm precise ssh is still working [18:11] per the Azure bug juju --debug ssh 1 -e aws-go [18:11] smoser: good point, ssh may be different because it expects to be passed arbitrary arguments to be run [18:11] https://bugs.launchpad.net/juju-core/+bug/1214636 [18:11] <_mup_> Bug #1214636: Azure Provider: Deployed service never goes to started [18:13] lol [18:13] juju -e aws-go --debug ssh 1 [18:13] error: flag provided but not defined: -e [18:13] ? [18:13] but, the following works [18:13] odd. [18:13] juju --debug stat -e aws-go [18:13] 2013-08-21 18:13:05 INFO juju ec2.go:137 environs/ec2: opening environment "aws-go" [18:13] smoser, if I put -e towards the front of the command, juju doesn't recognize it [18:14] put it after ssh and before '1' [18:14] maybe. just try that. [18:14] smoser, so I can't run your command example, 'juju -e aws-go --debug ssh 1" [18:14] arosales, try [18:14] juju --debug ssh -e aws-go 1 [18:15] that would not be terribly unreasonable if the '-e' was not a juju global flag, but was a flag to the 'ssh' sub command. [18:15] (and just happened to be a flag to many subcommands) [18:15] smoser, that does work [18:15] alright. [18:16] well thats at least moderately sane [18:16] (i'd even argue "perfectly fine") [18:16] but from a mere mortal like me totally unreasonable [18:16] so did you verify that juju works with saucy ? [18:16] smoser, so precise works on aws [18:16] I can ssh [18:16] yeah... seems like juju -e should work, even if the command you're running doesn't care about the environment [18:16] arosales, bigjools reported precise (with his custom image) worked. [18:16] smoser, I went back to precse on aws as I was getting the above error [18:17] i wanted to see if saucy worked on aws. to rule out general saucy error. [18:17] as it really does seem to me that cloud-init is functioning correctly. [18:17] smoser, trying that now [18:18] arosales, can you ssh to your precise aws ? [18:18] smoser, yes [18:18] i was going to ask you to give me output of 'ec2metadata --user-data' [18:18] bootstrapping with saucy now on aws [18:18] in a secure chanel [18:19] ah, just destroyed [18:19] let me see if saucy works and I can get you user data off precise [18:41] smoser, saucy ssh with juju works on aws [18:41] smoser, so sounds like the issue is Azure specific . . . ? [18:43] arosales, can you point me at the doc you have so far ? [18:43] and i'll try to reproduce it? [19:33] marcoceppi, http://marcoceppi.com/2013/07/compiling-juju-and-the-local-provider/ [19:33] export GOPATH="~/.juju/" [19:33] is wrong [19:33] quoting the '~' explicitly creates a directory called '~' [19:34] smoser: that's...odd. [19:34] its expected :) [19:34] It's odd that I put that quoted in the post [19:34] I'll update it! [19:35] 2 other things [19:35] hm.. [19:35] you need bzr for 'go get' [19:36] smoser: ack, that was already installed on my system [19:36] I didn't run these against a "clean" machine [19:36] Will update the post [19:39] marcoceppi, becaus eyour'e the expert (i'm follooing your blog) [19:39] do you know [19:39] http://paste.ubuntu.com/6011504/ [19:39] anyone else maybe ? [19:39] I've not recieved that error before. What version of ubuntu? I can try to replicate [19:40] smoser: almost certainly because you're running go 1.02 and juju uses 1.1 now [19:40] unfortunately apt-get still installs 1.0.2 [19:40] natefinch: ah, was that a recent switch? I've not tried to compile since 1.11.4 [19:41] marcoceppi: yeah in the last month or so, I think [19:41] natefinch: ah, sorry smoser, I'll update my blog to reflect the golang ppa too [19:43] natefinch: actually, I thought there was a ~gophers ppa, but I don't see 1.1 in there [19:44] marcoceppi: https://groups.google.com/forum/#!topic/golang-nuts/iJFhI8K5a2Y [19:45] natefinch: bummer :\ [19:45] yeah, there is no raring either in golang ppa [19:46] saucy! [19:51] marcoceppi: when I started I think I had to use the tarball from golang.org === BradCrittenden is now known as bac [20:03] smoser, marcoceppi: https://launchpad.net/~james-page/+archive/golang-backports [20:03] sidnei: awesome, thanks@ [20:04] sidnei smoser updated the blog post [20:06] how do you normally tell juju about ssh public keys? [20:06] for maas it seems to have explicitly (in config) [20:06] authorized-keys-path: ~/.ssh/authorized_keys # or any file you want. [20:06] # Or: [20:06] # authorized-keys: ssh-rsa keymaterialhere [20:06] but that is provider specific ? [20:07] smoser: it normally just uses whatever is in ~/.ssh/id_rsa.pub [20:07] You can add additional ones using either the two keys above [20:22] marcoceppi: I deployed discourse using juju and it looks great except that in the registration confirmation emails, it's using the internal hostname of the EC2 instance, instead of the external hostname.... any thoughts on how to fix that? [20:35] natefinch: Yeah, you'll need to edit the config/database.yml file [20:35] I need to add "external hostname" configuration option to the charm [20:35] to automatically add that information in [20:36] marcoceppi: I'd be happy to contribute to the charm :) [20:36] natefinch: please do! [20:36] * marcoceppi syncs his local version to charm branch [20:36] marcoceppi: I didn't think you'd say no ;) [20:37] marcoceppi: I am completely new to the charms, so... it'll take me some ramp up time. But especially for this particular charm, I want to use it for personal reasons. So I have skin in the game that it works well :)\ [20:37] natefinch: I've got several fixes to the auto-thin configuration that I need to land, so I'm not sure how far behind my cs:~marcoceppi/discourse version actually is [20:37] but the github branch is always a little ahead [20:37] and then I sync when the charm is "stable" again to the charmstore branch [20:38] * marcoceppi enjoys convoluted processes [20:38] marcoceppi: lol fair enough [20:39] but yeah, that part could use a bit of work (ie, update database.yml file and the nginx config with the hostname) [20:40] I tried to keep the charm pretty simple, as I wanted to use it as an example charm, but it's kind of grown a bit beyond that, so if you have any questions as to why I've backed bits of crack in to the charm, don't hesitate to ask [20:40] baked* [20:40] haha [20:40] ok [20:56] any ideas? [20:56] http://paste.ubuntu.com/6011776/ [20:58] whoa [20:58] looks like it choked on the cert? [21:00] http://paste.ubuntu.com/6011792/ [21:01] it sure does look like that. i agree [21:01] that above is what i've done so far to get here. [21:51] morning [21:53] hi arosales [22:03] bigjools, morning [22:03] bigjools, smoser was unable to reproduce what you and I found on saucy [22:04] arosales: because he wasn't using juju [22:04] bigjools, actually he was [22:04] I only saw the azure command line tool being used [22:04] compiled the latest even [22:04] * arosales not sure if he updated with his latest [22:05] arosales: the last comment on https://bugs.launchpad.net/bugs/1214636 doesn't show juju [22:05] <_mup_> Bug #1214636: Azure Provider: Deployed service never goes to started [22:05] bigjools, smoser had to run so he may not have updated his bug with the latest [22:08] righto [22:44] hi folks [22:44] this branch is giving me the shits [22:44] I thought it would be a small, simple branch [22:44] but OH, NO, no it isn't at all [22:46] just replacing agent.Conf with an interface, and unexporting the structure [22:46] FFS it is tedious [22:46] I seem to have all tests passing except for agent/agent_test [22:46] which is because there are shed loads of explicit struct tests [22:46] so I left it for last [22:47] trying to do the bare minimum to get this landed [22:47] aargghh! [22:47] that and no ubuntu edge to make me feel better [22:57] thumper, ha, I only just got round to thinking "bah, I'd better get one in case a mystery benefactor kicks in 20M at the last moment", but paypal can go fuck itself, so meh [22:57] :) [22:57] so no comment on the rest of the rant then :) [22:58] fwereade: I may throw it at you for review [22:58] thumper, just reading backwards [22:58] * thumper looks at the size [22:58] thumper, I won't say it'd be a *pleasure*, but I won't complain too much ;p [22:59] * thumper sucks wind [22:59] 1600 lines ATM [22:59] ouch [22:59] 17 files changed, 441 insertions(+), 446 deletions(-) [22:59] and this is the simplest thing [22:59] that made sense [22:59] fucking structs [22:59] long live interfaces [23:01] * fwereade girds his loins in preparation for the morrow then [23:25] thumper: im trying to figure out why local provider is not setting the hostname of the containers it creates, and if this is an lxc bug or not [23:25] sidnei: it normally does [23:26] sidnei: using clone? [23:26] thumper: nope, trunk without my changes [23:26] thumper: but im using the daily lxc ppa [23:26] so might be a change there [23:26] sidnei: it should, and is a template param [23:27] --hostid [23:27] line 154 of container/lxc/lxc.go [23:32] thumper: i'm going to move the Broker interface from worker/provisioner to (somewhere, probs instance), and make Environ be composed from Broker and remove the duplicated Environ methods [23:32] as part of some refactoring [23:32] ok [23:32] since part of it is extracting common start nstance code [23:32] i am sharing some of your refactoring pain :-) [23:33] i still don't fully understand why the fcuk we used structs and not interfaces [23:33] maybe whoever did it did not read software enginerring 101 [23:37] I believe it was because "we don't need it yet" was the rationale [23:37] however, the retrofitting of interfaces is a royal PITA [23:39] there is no such thing as "we don't need it yet" with interfaces [23:40] they are needed for all sorts of things from day one, not the least of which is for tests [23:40] and extensible, refactorable code [23:41] and Go's design almost mandates their use unless you want gobs of cut and paste boilerplate everywhere [23:43] wallyworld: I agree [23:43] * wallyworld sighs [23:43] wallyworld: but then again, you and I often do [23:43] often but not always :-) [23:43] like with rugby [23:44] no, that would be boring [23:44] so, think you have a shot this weekend? [23:44] nope :-( [23:44] heh [23:44] * thumper heads to the gym [23:44] we're fooked