/srv/irclogs.ubuntu.com/2014/09/02/#juju-dev.txt

thumperwaigani: just user IMO00:20
thumperwaigani: because all users are local00:20
waiganithumper: ok00:20
davecheneythumper: waigani menn0 https://github.com/juju/juju/pull/65300:34
davecheneyif you have a chance00:34
davecheneythis is what we discussed on the call00:34
menn0davecheney: sorry, I haven't had a chance to look yet00:35
davecheneys'ok00:38
davecheneyno that urgent, but not that complex either00:38
menn0davecheney: done00:39
davecheneythanks00:39
davecheneyre gofmt00:39
davecheneythat's sort of how it comes00:39
davecheneyand i'm moving those packages to the top level so that will change the ordering again00:39
davecheneymenn0: you were right about gofmt00:46
davecheneyfixed00:46
davecheneythumper: the state/api{,server} -> / change is coming next00:48
thumperdavecheney: kk, awesome00:48
davecheneythanks mongo, http://paste.ubuntu.com/8211128/00:55
thumperugh...01:01
* thumper is starting to really hate the juju/juju/juju package01:01
davecheneyback in the day j/j/juju was supposed to be "the" way of connecting to state01:01
davecheneybut now we have01:01
davecheneystate/api01:01
davecheneyand agent/01:01
davecheneyi guess all good things come in threes01:01
* thumper nods01:01
thumperj/j/juju needs to die IMO01:02
davecheneyi'm the man for that job01:02
thumperunfortunately I can't kill the method right now01:02
thumperas restore plugin has decided to use it01:02
thumpereverywhere else is just tests01:02
thumperfor the method I'm looking at01:02
thumperjuju.NewAPIState(environ, api.DialOpts{})01:02
davecheneyhmm01:05
davecheneythere is OpenAPIState in another package01:05
davecheneyprobably  few of them01:05
davecheneyand testing/OpenAPIAs01:05
thumpercolour me unsurprised01:05
davecheneyI am daves complete lack of surprise01:05
* thumper needs to find some time to write the LXC talk he is giving in about 4.5 hours01:06
davecheneyglwt01:06
davecheneythumper: http://godoc.org/github.com/davecheney/graphpkg01:11
davecheneyjust updated this a little01:11
davecheneyso I can see the lay of the land01:12
davecheneyyou can also use godoc to get a graph of the packages01:12
davecheneybut I don't trust it to be up to date01:12
davecheneyand dot went to 100%01:13
davecheney:(01:13
davecheneynot a good sign01:13
davecheneywallyworld_: I think we have more new flaky test01:15
davecheneyhttp://paste.ubuntu.com/8211272/01:15
wallyworld_davecheney: known issue, already in the doc01:16
davecheneycool01:16
davecheneythanks for confirming01:16
wallyworld_np01:16
davecheneyi haven't seen that one before01:16
wallyworld_you're lucky01:16
davecheneyi'm not sure if that means Ineed to look more, or less01:16
wallyworld_sadly we have a few of those common ones01:16
wallyworld_but once it's fixed, a several breakages will go away01:17
davecheneyit's an odd one01:17
davecheneyit's happening in test tear down01:17
davecheneybtw, I love the open source community01:17
davecheneyhttps://github.com/davecheney/gmx/issues/201:17
davecheneysuch people skills01:17
wallyworld_yup, it also can happen elsewhere i think, but teardown is most common01:17
wallyworld_lol01:18
davecheneyi'm a tool01:19
wallyworld_davecheney: in Launchpad, the various build recipe APIs were wrong for a while because I couldn't spell01:19
davecheneywho can't spell gauge01:19
wallyworld_i thought it was recipie01:19
davecheneywallyworld_: how many i's are there in recipippie ?01:19
wallyworld_not enough01:19
wallyworld_imo01:19
davecheneywallyworld_: you're not alone, i have a hard time remembering that recipe isn't spelled, recepit01:19
davecheneyfuck01:20
davecheneyrecepit01:20
wallyworld_i just can't spell in general01:20
davecheneydamn it01:20
davecheneyi really cannot spell that word01:20
davecheneyor any other that is slightly like it01:20
davecheneywithout the red underscore I am worthless01:20
wallyworld_dyslexic much01:20
wallyworld_me too01:20
wallyworld_axw: well, i have done my friday test fix early this week - stupid mega watcher test race bit me trying to land some code01:21
axwwallyworld_: okey dokey,01:22
davecheneyhttps://github.com/juju/juju/pull/65501:22
davecheneytruly enormouse, entirely mechanical change01:22
axwwallyworld_: I think I'm going to do tools catalogue & storage in one01:23
axwprobably not much bigger of a PR in the end01:23
wallyworld_whatever is easiest :-)01:23
wallyworld_i don't mind big pr's sometimes01:23
davecheneywallyworld_: https://github.com/juju/juju/pull/655/files01:23
axwI don't think it'll be all that big, we'll see01:24
wallyworld_600 files!!01:24
davecheney600 files changed, +600 lines, -600 lines :(01:24
wallyworld_davecheney: so just a package move01:24
davecheneysed baby, sed01:24
davecheneyyup01:24
davecheneyhopefully uncontentious01:24
wallyworld_yup01:24
davecheneypeople i talk to think putting the api at the top level makes sense01:25
davecheneyi'm +/- on having both api and apiserver at the top level01:25
davecheneyi rememver back in the day there was something like01:25
davecheneyapi/apiserver01:25
davecheneyor apisever/api01:25
davecheneybut that sounds no better01:25
axwdavecheney: IMO we should move api out of this repo altogether at some point01:26
davecheneyaxw: +1 << 3201:26
axwhave language-specific API repos01:26
davecheneyyes, that was part of the reason for monving api/params to apiserver/params01:26
axwcool.01:26
davecheneyi'd be keen to see the api (client) move it it's own repo01:27
davecheneybut I don't think it is urgent01:27
davecheneyie, it doesn't justify your time to setup another repo and top level build job01:27
axwagreed01:27
menn0davecheney: FWIW the gofmt comment was waigani's, not mine01:43
waiganiprefixed with "super minor point" gofmt -s -d says it should come after01:44
davecheneymenn0: right02:11
davecheneysorry02:11
davecheneyanyway, it's fixed now02:11
thumper(╯°□°)╯︵ ┻━┻02:19
davecheneythat's the ticket02:19
davecheneythumper: waigani the current state of play http://godoc.org/github.com/juju/juju/state?import-graph02:46
waiganihey that's really cool02:47
davecheneyhit hide(all) to hide the std lib pacakges02:47
thumperdavecheney: can you generate that but only look at "github.com/juju/juju" ?02:47
davecheneythat will make it a bit simpler02:47
davecheneythumper: do you mean the juju/juju package02:48
davecheneyor juju/juju/...02:48
davecheneythumper: https://github.com/davecheney/juju/compare/juju:master...davecheney:188-state-clone-state-serving-info?expand=102:50
davecheneynot ready for review yet02:50
davecheneyI think I can reduce the delta  a bit more02:50
davecheneybut we're still going to have three copies of params.StateServingInfo after this change02:50
davecheneythere are also a lot of things which now depend directly on state02:53
davecheneywhich is not good either02:53
wwitzel3thumper: ping02:55
thumperwwitzel3: hey02:56
thumperwhazzup?02:56
wwitzel3hey, you have a second for a quick hangout, I have some questions about some juju run stuff I've been working on.02:57
thumpersure02:59
wwitzel3thumper: I'll go to the Oynx standup one02:59
thumperack02:59
davecheneyall: juju/mongo is a helper package for setting up and managing mongo servers, right ?03:04
thumperfixed it: ┬─┬ ノ( ゜-゜ノ)03:06
hazmatso much awesome.. http://vimeo.com/9506682803:06
hazmatcomedy value and distributed systems03:06
wwitzel3thumper: looking at state/apiserver/client/run.go .. the client.Run method, it calls ParallelExecute which calls ssh.ExecuteCommandOnMachine03:51
thumperwwitzel3: yeah, that is how the api server calls out to the machines that it needs to call03:51
thumperwwitzel3: it calls the 'juju-run' command on the other side03:51
wwitzel3thumper: ahh, ok03:52
wallyworld_jam: i have an api version question if you're around04:17
thumperwaigani: hmm...04:40
* thumper thinks of expedience04:40
thumpervs learning04:40
thumperbugge04:40
thumperr04:40
thumperwaigani: the issue I'm having is that you have done things exactly as they have been done before04:41
thumperthe problem is that they way they were done before is kinda crap04:41
waiganihaha04:41
waiganiwell, let's do it right04:41
thumpersure?04:41
waiganiugh .. no but your call04:41
* thumper takes a quick look to determine the amount of work04:42
waiganihangout?04:42
thumpersure04:43
thumperwaigani: use the standup one04:43
=== Ursinha is now known as Ursinha-afk
axwhazmat: if you haven't already, you should read his columns too. hilarious and educational06:11
=== urulama-afk is now known as urulama
mattywmorning all07:37
voidspaceback and I have internet....08:04
voidspacecurrently provided by a 30metre ethernet cable slung into next door...08:04
TheMuemorning08:11
TheMuevoidspace: hehe, welcome back. troubles with provider switch at least almost solved?08:12
voidspacewell, that's 330mb of updates done09:15
mattywvoidspace, have EE given you a better date than 2 weeks?09:25
dimiternmattyw, since you're the OCR along with myself, would you mind taking a look at this trivial fix? https://github.com/juju/juju/pull/65909:48
mattywdimitern, looking09:49
mattywdimitern, done09:52
mattywdimitern, and thanks for pointing it out, the branch I'll be landing soon had some loggers I needed to rename09:53
dimiternmattyw, cheers!09:55
dimiternmattyw, mail sent\10:00
dimiternjam, can you take a look at https://github.com/juju/juju/pull/659 as well please?10:10
jamdimitern: heya. want to fill me in on what you and markS talked about?10:20
jamwallyworld_: /wave10:20
wallyworld_jam: hi there, just otp, will ping soon10:20
jamdimitern: so on https://github.com/juju/juju/pull/659 I'm wondering if we want to change the logging path, since if anyone was filtering theyd have to change their scripts10:21
jamdimitern: review10:22
jamreviewd10:22
dimiternjam, you mean the prefixes?10:27
jamdimitern: the logging prefixes, yes10:27
jambut it seems better in the new place anyway10:27
dimiternjam, yeah, and I've sent a mail to juju-dev, just in case someone complains, we can deal with it10:28
dimiternjam, thanks, I'll merge it then10:28
hazmataxw, those are precious.. thanks "A systems programmer will know what to do when society breaks down, because the systems programmer already lives in a world without law."10:33
hazmatalthough the nosql bane line in the presentation takes the cake for me. bane voice. "let your reads and writes choose their own destiny." :-)10:35
hazmatjam, did you have a chance to try the rudder charm or look at the readme.10:37
jamhazmat: I looked through the readme, but I haven't played with it10:38
jamits essentially just creating a tunneling network just like you would get installing openvswitch etc on each node10:38
axwhazmat: :)10:39
hazmatjam, in a nutshell, but its all coordinating the subnet split to host map without central point of failure and it works in environments that are gre hostile (azure).10:40
hazmat and you don't really need openvswitch to do the point to point gre tunneling.10:41
menn0fwereade: the UpgradeInfo work is finally up for review. https://github.com/juju/juju/pull/66010:42
jamdimitern: standup?10:46
dimiternjam, omw, sorry10:47
perrito666morning10:52
fwereademenn0, thanks, there is a small chance I will get to it today...11:19
menn0fwereade: it probably needs someone else to have a look as well given that we're the authors11:20
menn0fwereade: but it would be good to get your feedback on the change I made since you last looked at it11:20
* perrito666 discovers new levels of heartburn11:22
wallyworld_jam: hi, got time for a question?11:29
jamwallyworld_: so I'm on the phone now myself, I'm happy to chat in IRC a bit11:31
wallyworld_sure11:31
mattywperrito666, morning11:45
perrito666mattyw: morning11:45
jamwallyworld_: so what's your question?11:45
mattywperrito666, I managed to get that auth fails bug again this morning - but I wasn't looking for it when it happens :|11:45
davecheneydimitern: thanks for fixing my fuckup11:45
davecheneyit never occred to me about the logger names11:45
jam1voidspace: http://paste.ubuntu.com/8214743/11:45
davecheneyplease consider my suggestion in reply11:45
davecheneyi think we can make the default case of the logger less of a footgun11:46
jamdavecheney: what is the call stack for top level var inits?11:46
mattywmgz, am I being hated again? https://github.com/juju/juju/pull/56211:46
perrito666mattyw: I presume you cannot make it happen willingly right?11:46
davecheneyjam it will have the package name in it11:46
davecheneyall package level vars are initalised by a faux init() function11:47
davecheneybascically one per file11:47
davecheneythat is created by the compiler for you11:47
davecheneyhang on11:47
davecheneyi'll prove it11:47
mattywperrito666, well I've tried running just a subset of the tests that should show the error and I've got through hundreds of runs with no error. But I've seen it a couple of times during a make check11:47
wallyworld_jam: so, i have a client api call that i can add params to. when run against older juju, the new params will be ignored. but i'd rather have the client detect what version of the api is running server side and warn the user. it's the EnsureAvailability() api call on client. can we up that one api call to version 2? or does it have to be done at the facade level?11:48
perrito666mattyw: I have the theory that under a decent load on the testing machine you should be able to triggerit11:48
davecheneyjam: http://paste.ubuntu.com/8214777/11:48
dimiterndavecheney, no worries :)11:49
jamwallyworld_: api versioning is at the Facade level, and I would like us to bump the version if we change anything, even if it is "technically compatible"11:49
wallyworld_ok, sad that the client facade is sooooo big11:49
mfoordjam: back on freenode - rejoining hangout11:49
mfoordjam: calling Remove on a replicaset is likely to cause primary renegotiation11:50
mfoordjam: (I would expect)11:50
hazmatdavecheney, you heading out early on the sprint to hit go eu?11:50
mfoordjam: which is why it would be slow11:50
jamwallyworld_: agreed. would it be easier to move EnsureAvailability to a locally clustered API and version *that* one ?11:50
davecheneyhazmat: negative11:50
wallyworld_jam: is the version gets bumped to V2, how will a caller know what methods may be incompatible or not? they won't.11:50
davecheneyhazmat: people couldn't get their shit sorted in time11:50
davecheneyso I couldn't change my flights11:50
jamwallyworld_: they know only about the ones that they are using. So we will still expose v0 for clients that don't know about v211:51
davecheneyi'm going to dotGo only11:51
jamwallyworld_: but no, we don't have WADL sort of thing so that you can programattically say "oh, v2 is exactly like v0 except for here"11:51
hazmatdavecheney, ugh. bummer. i was thinking of coming in for the day from brussels just to check it out.11:51
davecheneyhazmat: i wouldn't say no11:51
wallyworld_jam: i could introduce a new facade. it makes sense that all apis on a facade should be bumped together11:51
davecheneyi'm going to be in paris from the 9th til the 12th11:51
jamwallyworld_: you've already been part of the great Client breakup11:52
jamKeyserver et al11:52
wallyworld_jam: yes indeed, i was going to use the same technique11:52
jamwallyworld_: just to mention, that all new facades should start at V1, as v0 is intended to be the version that was in 1.1811:53
wallyworld_jam: is there sample code that shows how to set up a new api version? point me where to look?11:53
wallyworld_i guess there's a version number registered somewhere11:54
jamwallyworld_: so just creating a new one is easy11:54
jamthe line of Register()11:54
jamtakes a 1 instead of a 011:54
wallyworld_ok, ta11:54
jamwallyworld_: the client side code needs to check what the supported version of the API is, and then fall back to the Client facade if it can't get to the new facade11:55
wallyworld_how do it do that? in this case it doesn't matter as the new fascade will be there or not, but in general?11:55
jam1wallyworld_: Facade.BestAPIVersion()11:58
wallyworld_thanks11:58
voidspacejam: I think I'm back again, lost the hangout though *sigh* - really sorry11:59
jam:)11:59
jamTheMue: can you help wallyworld_ find the right API docs to figure out how to properly introduce a new Facade version?12:01
wallyworld_jam: TheMue: in standup, will check back soon12:01
jamI feel like we've documented all this, but I'm not finding the docs in our source tere.12:01
jamtree.12:01
jamwallyworld_: so there is a bit of "must be careful" here, I believe, which maybe we can make better. But for a Facade that didn't exist in 1.18, then "BestAPIVersion()" should return 0, which we "know" didn't exist, so your client code can tell that it should use the other facade.12:03
jamIt is also possible that the new client layer could do the transition without the cmd/juju stuff caring.12:04
jamso we would have api/statemanagement/statemanagement.go12:04
jamand that would embed a FacadeCaller for your new StateManagement facade12:04
jamand it could have EnsureAvailability() on it12:04
jamwhich internally would check12:04
jamif self.BestAPIVersion() == 0 { // switch to old interface:12:05
TheMuewallyworld_: back from lunch, ping me when available too12:07
mfoordjam: I don't have the wireless router connected at all now, and my connection is via a switch12:07
jambut you're still only either or?12:07
jammfoord: either IRC or Hangout, but never both... :)12:10
voidspacejam: it still looks like my connection is being broken every minute12:12
voidspacejam: I've emailed you12:12
voidspacejam: I can browse and use email fine but both freenode and hangouts hate me12:13
voidspacejam: I *have* to get IRC working as a very minimum12:13
jamvoidspace: yeah12:13
jamI emailed you12:13
jamgood luck sorting it out12:13
jamI'm close to EOD anyway12:13
jamvoidspace: it seems to be calling c.stopNow() which is fundamentally calling runtime.Goexit()12:15
jamwhich certainly seems like it should be exiting ungracefully12:15
jamvoidspace: ah, goexit is just this goroutine12:16
voidspacejam: looking at the traceback12:16
jameg, kill this thread, not kill this process12:16
voidspacejam: so Remove didn't used to be an attemptLoop - but that was unreliable too because Remove *needs*  to be an attemptLoop (for the same reason that the other operations do)12:17
voidspacejam: we probably don't want Remove to be in a defer12:17
jamvoidspace: it doesn't help the traceback that we defer a func() that calls a function that takes a func()12:17
voidspaceright...12:17
voidspacejam: we could just not defer those removes and do them at the end, that would simplify12:18
voidspacejam: that function isn't used outside of those two tests I don't think - so it shouldn't matter (?) if a test fails and we don't call remove12:19
jamvoidspace: I wonder if we want to Remove at all12:19
voidspacewe'll clean up the replicaset anyway12:19
jamI would think changing the test to just nuke everything would be cleaner12:19
voidspacejam: well, it is "assertAddRemoveSet"12:19
jamvoidspace: so *those* Remove calls are just "cleanup what I set up"12:19
jambecause they are in defer12:19
jamthere is a call on line 24112:19
voidspacethey are, but the test name implies we want to test that Remove works12:19
jamthat is the actual testing of Remove working12:19
voidspaceah12:20
wallyworld_TheMue: hi. i can read the code to see how to bump up an api version, or are there docs i can read?12:20
jamthat may also be the flakiness12:20
jamvoidspace: if we get an error, and the replicaset is in a bad state12:20
jamand then we hammer it with "remove them one by one"12:20
jamwhile I'm destroying some of them12:20
jamI imagine it isn't happy with that12:20
voidspacethe tests setup a new replicaset every time - so perhaps we don't need those defered removes at all12:21
voidspaceas we call Destroy immediately after12:21
jamvoidspace: The only reason we *might* is if we wanted to not have to set up the Root to be shared between tests or something like that12:21
jambut I have the feeling, we're better off *for the replicaset tests* to start and return to scratch each time12:21
jamI know we share the DB between tests when we can, just calling Drop Databases in TestTearDown12:22
jambut I don't think we need to do that here.12:22
TheMuewallyworld_: do you know jams doc on Google?12:23
voidspacejam: TearDownTest calls root.Destroy()12:23
voidspacejam: and in the IPV6 suite we explicitly call Destroy ourselves12:23
wallyworld_TheMue: i don't think so. i may have got an email at one point but can't recall now12:23
jamTheMue: probably not. as the goal was to get them somewhere in the source tree/on juju.ubuntu.com and I think those never got finished12:24
voidspacejam: so I don't think that's a concern12:24
jamvoidspace: right, so that is just the root, but yeah, we should just be clearer that we call Instance.Destroy() on everything and not try to Remove them down the stack12:24
jambecause cleaning up a Mongo Cluster by removing one, killing it, removing one, killing it12:24
jamis likely to just cause us more pain that we need to be testing.12:24
TheMuejam, wallyworld_: ah, ok. a part of it is here: https://github.com/TheMue/juju/blob/api-implementation-guide/doc/design/juju-api-implementation-guide.md12:25
voidspacejam: we also defer the Destroy on the members12:25
wallyworld_TheMue: thanks, will read that12:25
TheMuejam: I only wait to get my current experiences with new facades into it too12:25
TheMuewallyworld_: I'm currently writing some code helping to test the client side when the server side not yet has the newest version12:26
wallyworld_ok, sounds good12:26
jamTheMue: sure, so just share it as we can, and we should get it published soon. better to have something for reference.12:26
TheMuejam: yep12:27
jameven if it isn't 100% complete, as long as it isn't *incorrect*12:27
wallyworld_jam: i need to be able to run ensure-availability with a placement directive to have a specified machine become a state server, not just any old new one. the guys are happy to pass in either a machine number or maas name (like in --to for add-unit). This will require either converting a HostUnits machine to a ManageEnvirons machine, since add-machine creates HostUnits machine, or 2. adding an option to add-machine to create a12:38
wallyworld_ManageEnvirons machine which does not participate until activated. pros and cons to both. maybe there's a 3rd option.  i think 1 may be most flexible. update machine jobs in state; a watcher in machine agent notices, updates agent conf to record the manageenviron job, then restarts machine agent. but i'm not fully across all of the HA mechanics so i'm not sure what else needs to be done. do you have any thoughts or should i ask nate12:38
wallyworld_or william?12:38
jamwallyworld_: what has never been clear from a MaaS guys is why they need to add-machine first12:39
jamI realize they want to control locations12:39
wallyworld_jam: this is landscape guys12:40
jamand maybe there is a problem that they need to specify 2 machines12:40
jamwallyworld_: sure, but its on MaaS12:40
wallyworld_yes, >1 will be needed12:40
wallyworld_--to foo,bar12:40
katcowallyworld_: hey regarding https://github.com/juju/juju/pull/630/files#r1696842512:40
wallyworld_they want this machine right here to be the state server, not any other one12:40
jamvoidspace: lost you again ?12:40
katcowallyworld_: will the updated config be persisted to environments.yaml making the change permanent?12:41
jamwallyworld_: sure, I'm just wonderign why we need to "add-machine" first12:41
jamcan't we just "juju ensure-availability --??? maas-name:A,maas-name:B"12:41
wallyworld_katco: it will get written to jenv, becoming permanent12:41
katcowallyworld_: ahh ok. ty12:41
wallyworld_jam: we could i guess, but that will be a bit of work, since we won't have run cloud init to set stuff up12:42
jamwallyworld_: ?12:42
jamwallyworld_: the point is that we can have ensure-availability still allocating machines, just give them the knob to say what machine12:43
wallyworld_add-machine boots a machine and runs cloud init to set up the tools, agent config etc. if we don't do that and ensure-availability to an arbitrary machine, that machine still has to then be set up to run juju12:44
jamwallyworld_: presumably they had a knob available on "add-machine" so that they could decide what that exact machine was12:44
jamand couldn't we supply it on ensure-availability?12:44
wallyworld_ah, i think the add-machine knob was to specify ssh:12:44
wallyworld_that would take an existing machine and put juju on it12:45
wallyworld_so i guess if we did juju ensure-availability --to maas-name:A,maas-name:B  then that would have to ssh in and set up juju12:46
jamwallyworld_: the idea is that they are manually provisioning with ssh?12:47
jam"juju add-machine ssh:foo@bar" /12:47
jamI thought they were just doing "juju add-machine" but with maas-name12:47
jamto pick an explicit machine to proviison12:47
jamprovision12:47
wallyworld_they want to use whatever they use with add-unit12:47
wallyworld_add-unit --to blah12:47
jamwallyworld_: add-unit or add-machine ?12:47
wallyworld_same syntax as for add-unit12:47
jamwallyworld_: AFAIK you can't add-unit to a manually provisioned machine12:48
wallyworld_so a machine number or mass name, right?12:48
jamwallyworld_: right, but that just requests a machine from the Provisioner, which lets us set up everything in cloud-init.12:48
jamwallyworld_: now... I *hope* all of the EnsureMongoServer stuff has gotten done correctly so we can create a state server late12:48
jamrather than only at cloud-init time.12:48
jamSo I'd be *happy* if "juju ensure-availability --to 1" worked correctly. But For what they're doing what they need is12:49
jam"juju ensure-availability --to maas-name:A"12:49
wallyworld_how does mass-name placement directive work then? does that assume a virgin maas machine?12:49
jamnot "juju ensure-availability --to 1" (I think)12:49
jamwallyworld_: like tags12:49
jamwallyworld_: each machine just has a unique name12:49
wallyworld_with tags, that assumes that a maas machine is not running, but tagged in maas, and so is then booted with cloud init etc?12:50
jamwallyworld_: right, same with maas-name12:50
jammaas-name is a Provisioning constraint (placement directive)12:50
jamgive me a machine that fits this description12:51
jamwhich happens to uniquely address one machine ever12:51
wallyworld_ok, so "juju ensure-availability --to maas-name:A" would be like add-machine but setting it up to run a state server etc12:51
jamwallyworld_: so... I'd like "juju ensure-availability --to 1,2" to work. But I'd really like to understand what Landscape is trying to do, as I feel that them doing "juju add-machine" first is actually bad practice12:51
wallyworld_rather than host units12:51
jamwallyworld_: (I think everything still gets host units, but it would also get JobManageEnviron)12:52
wallyworld_yep12:52
wallyworld_i think we can tell them what best practice is12:52
wallyworld_i think not using add-machine is the right way to go12:52
jamwallyworld_: I certainly understand their desire to say "ensure-availability and put it exactly here"12:53
jamAnd we want to definitely support that case.12:53
jamAnd ideally we could turn a machine into a proper state server late.12:53
jamYou'd have to try it/check with nate to see if it might work today12:53
jambecause we *shouldn't* be setting all that stuff in cloud-init now12:54
jambut doing it as part of EnsureMongoServer12:54
mattywmgz, ping?12:54
wallyworld_that sounds right12:54
* fwereade has a doctor's appointment and may be gone for the rest of the afternoon, but will be back in the evening sometime12:56
wallyworld_fwereade: just ask him to warm his hands first12:56
wallyworld_and use gloves12:56
mattywwallyworld_, are you able to help solve problems with the landing bot?13:00
mattywwallyworld_, my branch isn't being picked up https://github.com/juju/juju/pull/56213:00
wallyworld_mattyw: i may not have login credentials to jenkins handy, i'll have a look13:01
mattywwallyworld_, thanks13:02
voidspacejam: ping13:10
jamvoidspace: /13:10
voidspaceI'm here for now...13:10
jamvoidspace: sure, I'm just in the next meeting now13:10
voidspacejam: ah, ok13:10
voidspaceI'm getting 12mbp downstream but can't connect to google hangouts13:11
jamvoidspace: I'm usually EOD now, but I have a meeting with markr today13:11
voidspacejam: I'll create a PR with those extra Removes removed13:11
voidspaceand look at GetStatus13:11
jamsounds good, just test it a bit as well13:11
voidspaceok13:11
wallyworld_mattyw: i can't seem to ssh in to the slave to look, you'll have to ask mgz sorry13:12
jamvoidspace: well maybe if you stopped streaming 12mbps of youtube videos your google hangouts would  be more stable :)13:21
hazmatdoes api server returning non json results ring a bell to anyone.. (1.20.5-1.20.6) https://bugs.launchpad.net/juju-deployer/+bug/136437513:23
mupBug #1364375: TypeError: expected string or buffer <oil> <juju-deployer:New> <https://launchpad.net/bugs/1364375>13:23
jamwwitzel3: ping about cloud-sigma reviews13:35
jamI know you mentioned you've been doing some, but I'm wondering if I'm missing the comments somewhere13:35
mattywsinzui, ping?13:42
sinzuihi mattyw13:43
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1348477
wwitzel3jam: no, you aren't missing them, I've only got my comments published for two of the PRs. I will get them published for #173 and #172 today.13:50
=== Ursinha-afk is now known as Ursinha
jamwwitzel3: how are you managing to delay publishing them, writing them somewhere else?13:56
wwitzel3jam: yeah, I've been doing most of the review locally since i'm trying to use the amazon and azure provider as examples.13:57
wwitzel3jam: then I just take then and add them all to github at the same time13:57
ericsnownatefinch, perrito666, wwitzel3: standup?14:01
wwitzel3jam: I'm still feeling like I'm not reviewing this correctly though. I feel like there is some bigger picture I am supposed to be aware of, but I'm just reviewing usage and ensuring common idioms.14:02
wwitzel3jam: yeah, my notes for 172 are done, I will publish those right after standup and you can take a look.14:03
perrito666here14:04
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1348477 1364410
natefinchericsnow, wwitzel3, perrito666: trying to join... google is defying me14:07
natefinchericsnow, wwitzel3, perrito666: chrome has been a bitch since it updated this morning.14:07
perrito666natefinch: different browser?14:08
cmarssinzui, i'm going to take a look at LP: #1348477, since I'm already set up with access to a power machine14:20
mupBug #1348477: userAuthenticatorSuite.TearDown failure <ci> <ppc64el> <regression> <test-failure> <juju-core:Triaged by cmars> <https://launchpad.net/bugs/1348477>14:20
cmarswould latest master branch be a good place to start?14:20
sinzuithank you cmars...i think mattyw was saw it14:20
mattywsinzui, we're going to work together14:21
mattywsinzui, for moral support14:21
dimiternmattyw, perrito666, natefinch, what's that windows PR that needs reviewing?14:26
mattywdimitern, which one?14:27
dimiternmattyw, something about logging? not sure..14:27
dimiternmattyw, alexisb asked me to take a look as OCR14:27
mattywdimitern, #652?14:27
dimiternmattyw, could be - looking14:27
wwitzel3jam: also I just realized that my client review ended up on the environinstance review. Guess that is a problem with doing them offline and then adding them.14:32
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1348477 1364410 1364438
=== hatch__ is now known as hatch
voidspacewwitzel3: ping15:12
wwitzel3voidspace: pong15:13
katcoevilnick: i understand you're the guy to talk to regarding juju documentation! please see https://github.com/juju/docs/pull/155 :)15:17
voidspaceNo wonder this test was passing every time no matter what I did to it15:45
voidspace"OK: 0 passed"15:45
voidspacegocheck takes a regex pattern not a glob...15:45
evilnickkatco, okay! thanks!16:16
evilnickkatco, that all sounds very terrifying, thanks16:24
katcoevilnick: lol16:24
katcoevilnick: the evil you know... etc. :)16:24
evilnickkatco, *I* am the evil I know. But yeah. I might have to put some sort of warning for those of a nervous disposition on those docs16:25
katcoevilnick: https://github.com/juju/juju/pull/630/files#diff-7f2ac2b013ef527684140a73c9773b54R11016:26
evilnickkatco :)16:27
katcoevilnick: halloween isn't far away either. we could do a special on juju and "how the repear harvests" ;)16:28
mattywperrito666, ping?16:53
=== urulama is now known as urulama-afk
perrito666mattyw: pong16:54
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1348477 1364410 1364438 1359837
natefinchericsnow: can we move our 1:1 back another half hour?  I just got back and need to do a few things first17:32
ericsnownatefinch: sure17:32
mattywwwitzel3, ping?17:47
wwitzel3mattyw: pong17:50
mattywwwitzel3, I'm not sure how much you know about the presence watcher. I want to know if there's a reason why it uses mgo.Collection rather than taking a session and opening/closing it as needed17:51
mattywwwitzel3, actually - I just noticed it does session.copy17:53
wwitzel3mattyw: ok, I was going to say no I don't know why, so my response wasn't going to be very helpful17:55
mattywwwitzel3, ok no problem17:55
wwitzel3mattyw: yeah, that ping method copies the session, no sure why specifically17:55
wwitzel3mattyw: actually looks like the prepare method does as well, maybe others17:56
mattywwwitzel3, looks like a few of them17:56
wwitzel3mattyw: yeah looks like most of them do17:56
mattywwwitzel3, I'm looking into https://bugs.launchpad.net/juju-core/+bug/1348477 with cmars and it appears that it's the presence watcher that is returning the error in some cases17:56
mupBug #1348477: userAuthenticatorSuite.TearDown failure <ci> <ppc64el> <regression> <test-failure> <juju-core:Triaged by cmars> <https://launchpad.net/bugs/1348477>17:56
wwitzel3mattyw: ahh, interesting17:59
ericsnownatefinch: ready?18:00
natefinchericsnow: yep18:01
evilnickkatco, well, I think we have the trick sorted. not sure about the treat.18:01
cmarsi'm having a gccgo toolchain issue on ppc64el and opened a bug, https://bugs.launchpad.net/ubuntu/+source/gccgo-go/+bug/136456218:48
mupBug #1364562: Intermittent go test crashes on ppc64el <gccgo-go (Ubuntu):New> <https://launchpad.net/bugs/1364562>18:48
cmarsanyone experienced this? where should I look for support (if any is available)?18:49
alexisbcmars, I always start with dave cheney18:53
alexisbcmars, do you know if this is a known gcc-go toolchain issue?18:53
alexisbthere are a few out there we seem to always hit18:54
cmarsalexisb, will try to find out18:54
alexisbcmars, this one seems to come up a lot:18:54
alexisbhttps://bugs.launchpad.net/ubuntu/+source/gccgo-4.9/+bug/136290618:54
mupBug #1362906:  internal compiler error: in comparison, at go/gofrontend/expressions.cc:6508 <gcc-4.9 (Ubuntu):Fix Released> <gccgo-4.9 (Ubuntu):Invalid> <gcc-4.9 (Ubuntu18:54
mupTrusty):Invalid> <gccgo-4.9 (Ubuntu Trusty):Confirmed> <gcc-4.9 (Ubuntu Utopic):Fix Released> <gccgo-4.9 (Ubuntu Utopic):Invalid> <https://launchpad.net/bugs/1362906>18:54
cmarsalexisb, yep, that one bit us last week. this one's weird, its as if the 'go test' command itself has the issue18:55
alexisbok18:55
cmarsdavecheney, good morning, I have a gccgo question for you20:04
cmarsi keep seeing these nil pointer refs and segfaults on ppc64el, https://bugs.launchpad.net/ubuntu/+source/gccgo-go/+bug/136456220:05
mupBug #1364562: Intermittent go test crashes on ppc64el <gccgo-go (Ubuntu):New> <https://launchpad.net/bugs/1364562>20:05
cmarsknown issue? any advice?20:05
davecheneycmars: sorry mate20:20
davecheneyhad to cloes that bug20:20
davecheneyi dunno where you got that compiler from but it's to old20:20
cmarsdavecheney, what should I use then?20:20
davecheneycmars: can I ask a different question20:21
davecheneyhow did you hit this bug ?20:21
cmarsmattyw and I were pairing on reviews, and it was raised by QA20:22
cmarswe were looking at https://bugs.launchpad.net/juju-core/+bug/134847720:22
mupBug #1348477: userAuthenticatorSuite.TearDown failure <ci> <ppc64el> <regression> <test-failure> <juju-core:Triaged by cmars> <https://launchpad.net/bugs/1348477>20:22
cmarsso i apt-get install gccgo-go, rsync over a snapshot of master (because no github access in the lab) and then go test is falling all over the place20:23
davecheneycmars: yes that is because the compiler fix has not landed in main20:24
cmarsack20:24
davecheneyi wish I could explain why20:24
davecheneyjust stear clear of gccgo bugs20:24
davecheneythey need special care and attention to repro20:24
davecheneythat bug isn't ppc64 related20:24
davecheneytake the ppc tag off it20:24
davecheneyyup, all those failures are the "known failures" that wallyworld_ is tracing20:25
davecheneytracking20:25
cmarsah, oh20:25
cmarsok20:25
hazmatgsamfira, ping20:46
gsamfirahazmat: pong20:46
hazmatgsamfira, sweet20:47
hazmatgsamfira, i was wondering about maybe getting juju to work on debian.. and figured your the right person to ask ;-)20:47
davecheneycmars: thanks for fixing the tag on that bug20:47
davecheneyas you saw, it's one of our known failures, which ian logged on the 25th of july20:47
gsamfiradebian should be easy :). All you need to fix up is the userdata :)20:48
gsamfirathe rest is almost identical20:48
davecheneyi can't speak for sinzui but I think there is a general agreement that those bugs are not build blockers20:48
davecheneyfor whatever value of living with broken windows you choose20:48
gsamfirahazmat: namely, making sure that you add proper repos before doing the apt-get install bits20:48
hazmatgsamfira, juju has a few hardcodes around the distro series detections bits20:49
gsamfirahazmat: and of course creating the repos for the bits you need :)20:49
hazmatgsamfira, nothing really needed re repos afaics, package names are all the same20:49
gsamfirahazmat: yes. Correct. But that should be easy to code. If it was easy for windows, debian should be 20 mins work :). Look in version/osversion.go20:50
hazmatgsamfira, i thought you might have already done the basics around centos20:50
hazmatwindows is different enough that its a separate path through alot of the base, where as linux variants remove distro assumptions20:50
gsamfirahazmat: not yet. Merging the windows support took longer then expected.20:50
gsamfirahazmat: off the top of my head, for os detection: https://github.com/juju/juju/blob/master/version/supportedseries.go#L2820:51
gsamfiraosversion_linux.go should work for debian as well20:52
hazmatgsamfira, aha.. yeah. thats what i wanted20:52
hazmatthanks20:52
* hazmat hacks20:52
gsamfirahazmat: you are welcome. I remember juju having to add a few repos on older versions of ubuntu to get up to date packages20:53
sinzuidavecheney, which bugs?20:53
hazmatgsamfira, yeah.. only on precise.. for mongo20:53
gsamfiraalso, for MaaS you need to enable debian as a supported OS20:53
davecheneysinzui: the list that wallyworld_ is curating20:53
gsamfirahazmat: talk to Blake Rouse, or Andreas about any plans to do so20:53
hazmatgsamfira, yeah.. they have user uploaded images in maas now.. its basically a masquerade there20:53
davecheneysinzui: https://docs.google.com/a/canonical.com/document/d/1k6o9yBzlJeRdaSuH3ZgPcdhL7SzhS2Ws7wDKSN99fAU/edit20:54
hazmatwell maas 1.720:54
davecheneylook ma, not on LP :)20:54
hazmatgsamfira, targeting gce atm though not maas, but yeah.. i had this discussion with them as well ;-)20:54
gsamfirahazmat: awesome :D20:54
sinzuidavecheney, right, they are not release blockers. I am happy to defer them to a future release to deliver goodness to people sooner20:54
gsamfirahazmat: debian should be quick and easy to add20:54
gsamfirahazmat: centos will require a bit of abstraction on package management, and an updated cloud-init package.20:55
gsamfirahazmat: they still have an outdated package from the paleolithic20:55
sinzuidavecheney, But I am happy to discuss the essential definition of 1.21.0 If stakeholders wont use it because they want something on that list...I think we will require the issue to be resilved20:55
hazmatgsamfira, i'm trying with manual provider to get started20:56
hazmatskip the cloud init bits..20:56
davecheneysinzui: cool20:57
gsamfirahazmat: https://github.com/juju/juju/blob/master/version/supportedseries.go#L17 and https://github.com/juju/juju/blob/master/version/supportedseries.go#L75 might interest you as well20:57
davecheneyi don't want to be part of that discussion20:57
davecheneyonly trying to help cmars20:57
gsamfirahappy hacking :D20:57
gsamfirahazmat: looking forward to seeing debian work :D20:58
hazmatinteresting...21:05
menn0_thumper_, waigani: morning21:05
hazmatjuju upgrade juju -> error message can't upload charm http://pastebin.ubuntu.com/8218255/ silly21:06
hazmatargh.. cpu-checker21:09
hazmatso not needed.. its line two lines of shell script to check for kvm support in /proc/cpuinfo output21:09
hazmatits like21:09
alexisbhazmat, ping21:10
mbruzekHello juju-dev I am having a tools problem with 1.20.6 and I was hoping someone could have a look at the bug https://bugs.launchpad.net/juju-core/+bug/136463121:33
mupBug #1364631: juju fails to find matching tools <juju-core:New> <https://launchpad.net/bugs/1364631>21:33
mbruzekIt may _look_ like a dupe of https://bugs.launchpad.net/juju-core/+bug/1309805 but I do not believe it is.21:33
mupBug #1309805: LXC / Local provider machines do not boot without default-series <config> <local-provider> <lxc> <juju-core:Fix Released by jose> <https://launchpad.net/bugs/1309805>21:33
sinzuimbruzek, I doubt the issue relates to the bug. What is your tools-metadata-url set to? Are you are a private network?21:39
sinzuimbruzek, There was a subtle change to the rules for locating tools in 1.20.6. The command line didn't change to prevent regressions, but the rules certainly are different21:39
mbruzeksinzui, I have no tools-metadata-url set in environments.yaml for local and not on a private network this is my laptop21:39
sinzuimbruzek, very interesting, do you see the trusty precise tools being uploaded when you first bootstrap?21:40
mbruzeksinzui, I do I also have a pastebin of the bootstrap with --debug21:40
mbruzekhttp://paste.ubuntu.com/8218239/21:41
sinzuimbruzek, thanks I was going to ask about that. So bootstrap confirms the tools were uploaded and the metadata was generated21:42
sinzuimbruzek, is it the deployments that didn't find tools?21:43
mbruzeksinzui, it looks to me like the tools are found and downloaded, but never found by the machines.  I can not deploy cs:precise/ubuntu21:44
sinzuimbruzek, We need the cloud-init-output.log from machine-121:45
mbruzeksinzui, sure, looking for that now...21:46
sinzuimbruzek, I did this today but lost the command to copy that file from the container to $HOME to read it before it is destroyed21:47
mbruzek/home/mbruzek/.juju/local/cloud-init-output.log21:48
mbruzekIs that the one you are looking for?21:48
sinzuino21:48
sinzuimbruzek, we need to log from the actual container that failed, not your localhost (state-server)21:50
sinzuimbruzek, I did something like this today after I saw the status of a container say there was an error21:50
sinzuisudo cp /var/lib/lxc/jenkins-local-precise-utopic-amd64-machine-1/rootfs/var/log/cloud-init-output.log ./21:50
mbruzeksinzui, I can not juju ssh to those machines to get it.21:50
sinzuimbruzek, you can always ssh to the machines juju created even when jujud isn't installed. juju provisions with your keys so you just ssh to the ip address21:51
mbruzeksinzui, The machines do not have an IP address they are in a pending state21:52
sinzuimbruzek, sudo lxc-ls --fancy will always show the truth21:56
sinzuimbruzek, juju often claims it cannot create machines/containers because the jujud didn't report...but lots of things happen before jujud is downloaded as a tool21:57
mbruzekhttp://pastebin.ubuntu.com/8218539/21:57
sinzuimbruzek, that isn't a tools error. you cannot get a tools error without a machine. what is juju status showing?21:58
mbruzeksinzui, http://pastebin.ubuntu.com/8218548/21:59
mbruzekjuju status is reporting "no matching tools available"21:59
sinzuimbruzek, I award you a gold star for finding a awesome cryptic bug22:00
* mbruzek bows22:01
sinzuimbruzek, you are on trusty deploying a precise charm right?22:01
_thumper_o/22:01
mbruzeksinzui, yes.22:01
=== _thumper_ is now known as thumper
mbruzeksinzui, you can see that I tried to deploy precise first and then trusty.22:01
sinzuimbruzek, did you set default-series in environments.yaml?22:02
mbruzekIt *was* set when I reported the bug, but I suspected that was an issue so I removed default-series for this particular bootstrap22:02
mbruzeksinzui, I will add it again but charms will not deploy22:03
sinzuimbruzek, I am just looking for differences between my own setup. I am trusty with default-series of trusty22:03
waiganithumper: the Action field in ModifyUsersStruct, where are we using that?22:04
mbruzeksinzui, I am setting default-series, do you want me to set it to trusty or precise?22:04
sinzuimbruzek, trusty22:04
thumperwaigani: we should be using that in the server side, check that the action = 'add' and error if it doesn't with 'unknown action'22:04
thumperwaigani: the idea being that we'll implement 'remove'22:05
waiganithumper: but isn't the action determined by the function called: ShareEnvironment would always add a user, so what value does the check have in there?22:06
thumperwaigani: the current client api will always add to the server api22:07
thumperwaigani: we will add another client api that calls the same server api with a different action22:07
thumperthe server api stays the same22:07
thumperbut gains another action22:07
thumperdoes that make sense?22:07
mbruzeksinzui, http://pastebin.ubuntu.com/8218617/22:08
waiganithumper: what do the cmds look like?22:08
thumperwhat commands?22:08
thumperjuju ?22:08
thumperwe haven't decided yet22:08
waiganie.g. juju share add user@pro22:08
thumperno22:08
thumperjuju share user@pro user2@pro22:08
thumperperhaps...22:08
thumperjuju share --remove user@pro22:08
waiganiah22:08
thumperdefault is to share with someone22:09
thumperbut we need to allow removal22:09
waiganiso that is why we need the actions22:09
thumperyes22:09
waiganigot it22:09
thumperthere will be two different client api calls22:09
thumperor...22:09
thumpermaybe later, one call22:09
thumperwith an action option22:09
thumperbut the server needs to support the action22:10
thumperas that is the bit that shouldn't change22:10
waiganishould I make the actions consts and where should they live?22:10
thumperapiserver code22:10
waiganiok22:10
thumperwith the params22:10
waiganiright22:10
thumperconsts are preferred but not essential22:10
waiganiiotas ?22:11
thumpercmars: around?22:11
thumperno, strings22:11
waiganiok22:11
thumper"add", "remove"22:11
thumperbetter for understanding the wire protocol22:11
cmarsthumper, here22:11
waiganimakes sense, going over the wire22:11
thumpercmars: are we meeting today?22:11
cmarsthumper, we are. thought it was monday, sorry22:12
thumper:)22:12
sinzuimbruzek, I am trying juju sync-tools to change the tools in the env, if that works, then we know something more22:14
sinzuimbruzek, oh!22:14
mbruzeksinzui, ?22:15
sinzuibefore you try sync-tools, pastebin a copy of ~/.juju/local/storage/tools/streams/v1/com.ubuntu.juju\:released\:tools.json22:15
sinzuimbruzek, this is mine: http://pastebin.ubuntu.com/8218656/22:16
sinzuimbruzek, sync-tools is not fast :( It will pull down about 8 tools for precise and trusty22:17
mbruzekhttp://paste.ubuntu.com/8218657/22:18
sinzuimbruzek, that looks fine to me22:18
mbruzeksinzui, Looking at the diff of those 2, looks very similar to me.22:19
wallyworld_sinzui: mbruzek: i haven't read all the backscroll in detail. 1. you have found a tools bug? 2. if you want to juju ssh into a local provider lxc instance, you need to use sudo ssh or else you get a permission denied error22:22
sinzuiwallyworld_, I just updated the bug https://bugs.launchpad.net/juju-core/+bug/136463122:23
mupBug #1364631: juju fails to find matching tools <deploy> <local-provider> <lxc> <juju-core:New> <https://launchpad.net/bugs/1364631>22:23
mbruzekwallyworld_, I don't think my lxc instances are coming up.22:23
mbruzeksinzui,  thanks for the update22:24
mbruzekwallyworld_, I believe I have found a tools related bug.  I can not deploy and it looks to be tool related.22:24
sinzuimbruzek, It took me 15 minutes to sync-tools. I forgot that it would download utopic too. I wonder if matching tools were found after you had the non .1 versions22:25
mbruzeksinzui, I have not yet synced would you like me to?22:25
wallyworld_sinzui: mbruzek: i can retest with 1.20 trunk, but last time i tried it last week, there were no issues that i know of. so i'm sad if there's a new problm :-(22:25
sinzuimbruzek, Lp is timing out. I am trying to set the bug to 1.21-alpha1 with a suggestion to backport to 1.20.722:25
wallyworld_sinzui: mbruzek: there is a potential issue in trunk because of aria2 not being found - that is going to be reverted22:26
wallyworld_that issue will cause the lxc container to come up but tools copy into the container to fail22:26
sinzuiwallyworld_, I have been using 1.20.6 all day, and I cannot reproduce it myself. I even did this same kind of deployment this morning22:27
wallyworld_:-( that will make it hard to fix22:27
sinzuiwallyworld_, failure to download tools means we get a machine and a nice log.22:27
wallyworld_so we will need all the logs from /var/lib/juju/containers22:27
wallyworld_let's get these attached to the bug if possible22:28
sinzuimbruzek, does this show anything interesting about deploy: juju debug-log -l ERROR --replay22:29
sinzuimbruzek, or just attach the .juju/local/log/all-machines.log to the bug22:29
mbruzekOK.22:29
wallyworld_and the /var/lib/juju/containers logs22:30
wallyworld_^^^^ these are important as they container cloud init data22:30
wallyworld_contain22:30
sinzuiwallyworld_, there is no cloud init because there were not tools selected22:30
mbruzekwallyworld_, that path contains 4 directories, which files do you want from there?22:30
sinzuiwallyworld_, sudo lxc-ls --fancy shows no containers being created22:31
wallyworld_mbruzek: all of them if possible, in  tar.gz22:31
mbruzekhttp://pastebin.ubuntu.com/8218736/22:31
wallyworld_sinzui: oh, ok. so it's failing really early22:31
sinzuiwallyworld_, mbruzek /var/lib/juju/containers The four containers are the new and old template containers I think22:31
wallyworld_mbruzek: ok, just the ones with lxc22:31
wallyworld_the ones without are the old directories and can be deleted22:32
mbruzekwallyworld_, uploaded to https://bugs.launchpad.net/juju-core/+bug/136463122:36
mupBug #1364631: juju fails to find matching tools <deploy> <local-provider> <lxc> <juju-core:Triaged> <https://launchpad.net/bugs/1364631>22:36
wallyworld_mbruzek: ty. can you also include all-machines.log22:36
mbruzekwallyworld_, on it22:36
wallyworld_ty22:36
mbruzekdone.22:37
mbruzeksinzui, your command shows only 2 lines22:40
mbruzekmachine-0: 2014-09-02 22:05:47 ERROR juju.worker runner.go:218 exited "api": unable to connect to "wss://localhost:17070/"22:40
mbruzekmachine-0: 2014-09-02 22:06:20 ERROR juju.provisioner provisioner_task.go:418 cannot find tools for machine "1": no matching tools available22:40
sinzuimbruzek, and that one extra line is the difference from me.22:42
mbruzeksinzui, you mentioned that you saw this problem earlier today?22:42
sinzuimbruzek, no, I have never seen this problem22:43
sinzuiI have done deployments exactly like yours today without incident22:43
wallyworld_mbruzek: can you please upload your ~/.juju/local/storage/tools ?22:44
wallyworld_so we can see what tools and metadata were generated at bootstrap22:45
sinzuiwallyworld_, it is in the pastbin I added to the bug22:47
wallyworld_ok, ta, looking22:47
sinzuiwallyworld_, mbruzek , but I didn't ask to confirm the tools were there and readable. We just verified http://paste.ubuntu.com/8218657/22:48
mbruzeklooking22:48
mbruzekeverything looks readable by mbruzek22:50
wallyworld_mbruzek:  sinzui: that pastebin is the products file, if there the index file also?22:50
wallyworld_it's the index file that appears to be the problem22:50
mbruzek$ ls -l streams/v1/22:51
mbruzektotal 822:51
mbruzek-rw------- 1 mbruzek mbruzek 1671 Sep  2 17:05 com.ubuntu.juju:released:tools.json22:51
mbruzek-rw------- 1 mbruzek mbruzek  498 Sep  2 17:05 index.json22:51
mbruzekwallyworld_, do you need to see index.json?22:51
wallyworld_yup22:51
wallyworld_that's what the error message in machines.og refers to22:51
mbruzekhttp://paste.ubuntu.com/8218852/22:52
wallyworld_hmmm, looks ok22:52
mbruzekwait22:52
mbruzekfetchData failed for "http://10.0.3.1:8040/tools/streams/v1/index.sjson": file "tools/streams/v1/index.sjson" not found22:53
mbruzekthe file is named index.json22:53
mbruzektypo?22:53
mbruzekor is that just a different file?22:54
wallyworld_mbruzek: no, it first looks for the sjosn version22:56
wallyworld_so that's ok22:56
mbruzekOK22:56
wallyworld_mbruzek: can get fetch http://10.0.3.1:8040/tools/streams/v1/index.json ?22:56
wallyworld_subst localhost for 10.0.3.122:57
wallyworld_the sjson is signed json metadata22:57
mbruzek$ wget https://localhost:8040/tools/streams/v1/index.json22:58
mbruzek--2014-09-02 17:57:47--  https://localhost:8040/tools/streams/v1/index.json22:58
mbruzekResolving localhost (localhost)... 127.0.0.122:58
mbruzekConnecting to localhost (localhost)|127.0.0.1|:8040... failed: Connection refused.22:58
wallyworld_we use signed json on the official simplestreams website22:58
wallyworld_do you still have your local provider running?22:58
wallyworld_or have you destoyed it?22:58
mbruzekstill running22:58
wallyworld_hmm, maybe you need to leave the 10.0.3.122:58
wallyworld_i'm just curious as to what data is actually served up22:59
wallyworld_just to rule out it is not providing different data to what we think22:59
sinzuiwallyworld_, mbruzek NO ONE NEEDS sjson, None of us have keys to sign it23:00
sinzuionly streams.canonical.com gets signed metadata23:01
wallyworld_yep23:01
mbruzekwallyworld_, leaving 10.0.3.1 worked23:01
mbruzekhttp://paste.ubuntu.com/8218897/23:01
sinzuimbruzek, I thought you were on local host23:02
wallyworld_mbruzek: there's the problem23:02
mbruzekwhy does it say ppc64?23:02
wallyworld_exactly23:02
mbruzeksinzui, I AM on the local provider on my intel laptop23:02
wallyworld_it's generating tools metadata for ppc6423:02
sinzuimbruzek, your bug gets more awesome by the hour23:02
wallyworld_mbruzek: your local laptop isn't ppc64 is it? :-)23:03
mbruzekno it is not23:03
wallyworld_not that i think it is23:03
mbruzekwhat would cause the arch to be incorrect.23:04
mbruzek?23:04
wallyworld_well, now we know why it can't find tools, just have to fogure out how the fark it's generating ppc64 metadata23:04
wallyworld_don't know right now, i'll do a little digging in the code23:04
mbruzekwallyworld_, OK.23:05
sinzuiwallyworld_, mbruzek is one of the few people who can develop on ppc64, Is there a backdoor to select arch that mbruzek could have tripped in his shell env?23:05
sinzuimbruzek, I if you run sync-tools, then return in 30 minutes, you will have every tool and I suspect you can deploy.23:06
wallyworld_something is making juju think it needs ppc64 tools23:07
mbruzekwallyworld_, do you want me to do that?  Will that provide anything useful for your debug?23:07
wallyworld_not straight away23:07
mbruzeksinzui, I dumped my env vars and grepped for ppc23:07
wallyworld_let me first check to see how juju gets the arch it thinks it needs23:08
sinzuiwell I think uname -p says what we expect to be selected23:08
mbruzek$ uname -p23:08
mbruzekx86_6423:08
wallyworld_yes, that's what i think too, but something else must be happening23:08
wallyworld_i can't think of why it then writes ppc6423:08
wallyworld_mbruzek: when possible, i'd love to see a copy of the output when you "juju bootstrap --debug --show-log"23:19
wallyworld_that will contain the info needed to delve deeper into this23:19
wallyworld_to see where the tools are getting generated23:19
wallyworld_mbruzek: also a listing of the ~/.juju/local/storage/tools/releases directory23:22
mbruzekmbruzek@workhorse:~/.juju/local/storage/tools/releases$ ls -l23:23
mbruzektotal 1600823:23
mbruzek-rw------- 1 mbruzek mbruzek 8195954 Sep  2 17:05 juju-1.20.6.1-precise-amd64.tgz23:23
mbruzek-rw------- 1 mbruzek mbruzek 8195954 Sep  2 17:05 juju-1.20.6.1-trusty-amd64.tgz23:23
mbruzekLet me destroy the environment and get that for you23:24
mbruzekhttp://paste.ubuntu.com/8219045/23:26
wallyworld_thank you23:27
mbruzek~$ juju bootstrap --debug --show-log -e local 2>&1 | tee juju_bootstrap_4.txt23:27
mbruzekThat is how I ran it23:27
wallyworld_mbruzek: that log appears to show everything is correct at first glance, ie amd64 tools metadata, nt ppc6423:28
wallyworld_what does the index.json file contain now?23:29
wallyworld_since this looks perfectly as expected:23:34
wallyworld_2014-09-02 23:25:37 DEBUG juju.environs.simplestreams simplestreams.go:367 read metadata index at "file:///home/mbruzek/.juju/local/storage/tools/streams/v1/index.json"23:34
wallyworld_2014-09-02 23:25:37 DEBUG juju.environs.simplestreams simplestreams.go:534 candidate matches for products ["com.ubuntu.juju:14.04:amd64"] are [{Tue, 02 Sep 2014 18:25:36 -0500 products:1.0 content-download  [] streams/v1/com.ubuntu.juju:released:tools.json [com.ubuntu.juju:12.04:amd64 com.ubuntu.juju:14.04:amd64]}]23:34
wallyworld_2014-09-02 23:25:37 DEBUG juju.environs.simplestreams simplestreams.go:847 finding products at path "streams/v1/com.ubuntu.juju:released:tools.json"23:34
wallyworld_2014-09-02 23:25:37 DEBUG juju.environs.simplestreams simplestreams.go:885 metadata: &{map[com.ubuntu.juju:12.04:amd64:{ 1.20.6.1 amd64   map[20140902:0xc21000a360]} com.ubuntu.juju:14.04:amd64:{ 1.20.6.1 amd64   map[20140902:0xc21000a660]}] map[] Tue, 02 Sep 2014 18:25:36 -0500 products:1.0 com.ubuntu.juju:released:tools  }23:34
wallyworld_2014-09-02 23:25:37 INFO juju.environs.bootstrap bootstrap.go:58 newest version: 1.20.6.123:34
wallyworld_2014-09-02 23:25:37 INFO juju.environs.bootstrap bootstrap.go:86 picked bootstrap tools version: 1.20.6.123:34
mbruzekwallyworld_, the wget gives me ppc64.23:37
mbruzek                "com.ubuntu.juju:12.04:ppc64",23:37
mbruzek                "com.ubuntu.juju:14.04:ppc64"23:37
wallyworld_wtf23:37
mbruzekI don't know!23:37
wallyworld_the content of the file on disk?23:38
wallyworld_says ppc64?23:38
mbruzekgive me location again?23:38
wallyworld_"file:///home/mbruzek/.juju/local/storage/tools/streams/v1/index.json23:38
mbruzek                "com.ubuntu.juju:12.04:amd64",23:38
mbruzek                "com.ubuntu.juju:14.04:amd64"23:38
mbruzekthis is a mystery !23:39
wallyworld_yes23:39
mbruzekWhere is it getting ppc64.23:39
wallyworld_so if you wget from http://10.0.3.1/.... you get ppc6423:39
mbruzekyes23:39
davecheneymbruzek: netstat -anp23:40
davecheneywho is listening on 10.0.3.123:40
mbruzekoh crap23:40
mbruzeksinzui, was right.23:40
wallyworld_what did he say?23:41
mbruzekI am running sshuttle -r ubuntu@stilson-01 10.0.3.0/24 so I can see the local systems on the power machine stilson-0123:41
davecheneybad ida23:41
davecheneyidea23:41
wallyworld_lol23:42
davecheneyespecially on that range23:42
wallyworld_well that explains a lot23:42
wallyworld_i was beginning to worry23:42
mbruzekDoh!23:42
mbruzekI am sorry23:42
wallyworld_no problemo23:42
wallyworld_glad we found the problem23:42
davecheneyso, has this fixed all the problems ?23:43
davecheneyor just some of them ?23:43
mbruzekbootstrapping.23:43
wallyworld_what is "all the problems"?23:43
davecheneywallyworld_: all the ones mbruzek reported to me earlier23:43
davecheneywith tools selection being screwed23:43
wallyworld_yes, i think this will fix all that23:44
davecheneygood23:44
wallyworld_i hope  anyway23:44
davecheneyi hope everyone learnt a valuable lesson :)23:44
mbruzeksorry guys23:44
davecheneynp23:44
wallyworld_no need to apologise :-)23:44
davecheneywe found the problem23:44
wallyworld_we introduce enough bugs of our own :-)23:45
davecheneymbruzek: your pennence is to write up what happened23:45
davecheneyand forward it to anyone who is using sshuttle23:45
mbruzekyes sir23:45
mbruzekI can confirm that the system bootstraps now, and I can deploy both precise and trusty ubuntu charms.23:46
wallyworld_\o/23:49
davecheneyalexisb: i've finished my review of the gccgo4.9 bugs23:49
davecheneyplease see my email for details23:50
menn0anyone able to review this? https://github.com/juju/juju/pull/66023:56

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