/srv/irclogs.ubuntu.com/2014/06/24/#juju-dev.txt

davecheneythumper: alexisb email sent00:11
davecheneytell me what you think00:11
davecheneycertainly more than 6 weeks work :)00:11
davecheneysinzui: i am blocked00:22
davecheneysomething is fucked up on batuan and I cannot pull source from github00:23
davecheney[rt.admin.canonical.com #72748]00:23
_mup_Bug #72748: Crash while exiting <tea (Ubuntu):Invalid by tea-dev> <https://launchpad.net/bugs/72748>00:23
davecheneygoing to talk to #is now00:23
sinzuidavecheney, I have copied files to a machine inside the network, hackes /etc/hosts to point to that machine. I have also created certs that  claim to be the other site00:24
* sinzui doesn't accept no00:24
davecheneysinzui: i'll try to debig this on amd64 for the moment00:26
menn0bodie_: review of PR 141 finished for now00:30
davecheneysinzui: crisis averted00:39
davecheneyconnectivity restored00:39
davecheneysinzui: interesting, I cnanot reproduce the build failure on my pcc64 machine00:44
sinzuiwe saw it several times in ci http://juju-ci.vapour.ws:8080/job/run-unit-tests-trusty-ppc64el/00:44
sinzuidave the machine is stilson-07, do you want to visit it?00:45
sinzuidavecheney, ^00:46
sinzuidavecheney, ssh ubuntu@10.245.67.135. Your keys are there. maybe you can find a older or newer version of gcc there00:50
sinzuidavecheney, oh, 10.245.67.136 saw the same error. so both the unittest machine and the packaging machine hate juju00:53
davecheneysinzui: intersting00:58
davecheneysinzui: trying stilson now01:01
davecheneysinzui: stilson-07 is running the outdated version of gccgo01:08
davecheneysinzui: are you permitted to update it ?01:08
davecheneysinzui: wtf, stilzon-07 doesn't even have bzr in the path ...01:18
davecheneythat's like saying the machine is actually running fedora01:18
axwmenn0: thanks for the review01:19
axwwallyworld: can you also take a look at https://github.com/juju/juju/pull/148/ ? there's some changes to the instance-type constraint handling that you added01:19
sinzuidavecheney, We try to keep the machines clean. tests purge the left overs, they tests often export all the locations needed01:20
wallyworldaxw: oh hi, i had looked, was waiting for you to come online01:20
waiganithumper: added some comments on the doc, heading your way01:21
davecheneysinzui: short version01:21
wallyworldaxw: i don't quite see the purpose from the covering letter - the azure provider already calls into common instance matching functionality01:21
davecheneyyou need to upgrade the compiler01:21
sinzuihurray01:22
davecheneyto the one that is (hopefully) in trusty updates01:22
axwwallyworld: I'll find the code in question for you, just a sec01:22
davecheneybug is fixed in that version01:22
axwwallyworld: would've been more obvious with a branch preqreq'ing ;)01:22
davecheneysinzui: I don't know how you can reconcile that with the requirements of the lp builders01:22
wallyworldyup01:22
axwwallyworld: https://github.com/juju/juju/blob/master/provider/azure/instancetype.go#L1901:23
axwall this preferredTypes stuff can go01:23
axwand be replaced with a call to MatchingInstanceTypes01:23
wallyworldaxw: also, this line "if len(itypes) == 0 && cons.Mem != origCons.Mem {"  <-- the semantics seem slightly different from the original origCons.Mem != nil01:23
sinzuidavecheney, the unittest run called this to get the compiler01:24
sinzuisudo apt-get install -y build-essential bzr distro-info-data git-core mercurial zip rsyslog-gnutls juju-mongodb gccgo-4.9 gccgo-go01:24
axwwallyworld: the idea is that above it'll only try again if it tried above with implied mem=1G01:24
davecheneysinzui: the update has not landed01:24
davecheneyit's still stuck in whatever process is blocking it01:25
davecheneyi had to install the compiler from ppa01:25
sinzuiThe builder called this sudo apt-get install -y build-essential fakeroot dpkg-dev debhelper bash-completion gccgo-4.9 gccgo-go01:25
davecheneyyes, you said01:25
davecheneybut it looks liek the compiler has not made it out of the -propose pocket01:25
davecheneythe original ppc bug is not marked fixed-released01:25
axwwallyworld: I could do "!cons.HasInstanceType() && origCons.Mem == nil", but I thought this was clearer01:25
davecheneysinzui: https://bugs.launchpad.net/ubuntu/+source/gccgo-4.9/+bug/130475401:26
_mup_Bug #1304754: gccgo has issues when page size is not 4kB <ppc64el> <trusty> <gcc:Fix Released> <gcc-4.9 (Ubuntu):Fix Released> <gccgo-4.9 (Ubuntu):Invalid> <gcc-4.9 (Ubuntu Trusty):Invalid> <gccgo-4.9 (Ubuntu Trusty):Fix Committed by doko> <gcc-4.9 (Ubuntu Utopic):Fix Released> <gccgo-4.9 (Ubuntu Utopic):Invalid> <https://launchpad.net/bugs/1304754>01:26
sinzuidavecheney, more interestingly. all machines got their compilers from ppa, but the ppa01:27
davecheneywhat ppa ?01:27
sinzuidavecheney, the machines use ubuntu-toolchain-r-ppa-trusty.list per your instructions01:27
wallyworldaxw: so you plan on changing the selectInstanceTypeAndImage() method?01:27
sinzuidavecheney, stilson-7 is missing it though01:28
axwwallyworld: yes, but I think selectMachineType is more relevant01:28
axwwallyworld: actually it could probably just be replaced01:28
axwwallyworld: I could just propose my other branch01:29
axwas a wIP01:29
wallyworldaxw: i'm thinking that both openstack and ec2 providers call into FindInstanceSpec() and their code handles instance type constraints etc as is - can we just tweak azue to use the same code?01:29
wallyworldwithout exporting anything?01:29
axwwallyworld: maybe... I'll see what they do01:29
davecheneysinzui: ppa is not installed on stilson-0701:30
davecheneyapt-get update confirms it01:30
sinzuiI am adding it now. I think a test replaced it...01:30
axwwallyworld: do they allow you to explicitly specify the image name?01:30
wallyworldaxw: i'm all for refactoring if it improves the code, so if it's necessary, go for it. but i also think we'd want azure, ec2, openstack, joyent etc to be consistent01:30
wallyworldah, imagename01:30
sinzuidavecheney, the machine with the right ppa failed the same way01:30
wallyworldsorry01:30
wallyworldi was getting confused with instance type01:31
axwwallyworld: this is caused by having to deal with force-image-name01:31
wallyworldhmmm. we specifically removed image name selection from ec2 etc01:31
wallyworldie the image-id config was removed01:31
wallyworldbecause people could do bad things01:31
wallyworldlike forcibly specify an image that didn't match tools01:32
wallyworldthe fact that azure added support for it is unfortunate01:32
wallyworldi'm almost inclined to see if we shouldn't look at deprecating it01:33
menn0axw: np01:33
wallyworldit may have been useful early on when azure images were changing rapidly and we didn't have simplestreams01:33
axwwallyworld: can do, but I think we need to give people notice. is exposing this function really that bad?01:34
davecheneysinzui: can I see the failure from that machine ?01:34
sinzuidavecheney, http://juju-ci.vapour.ws:8080/job/run-unit-tests-trusty-ppc64el/606/consoleFull01:36
wallyworldaxw: yeah, it would be deprecated over a release cycle. in which case i guess we could expose the function. but any time we expose previously internal stuff is potentially an issue we'd prefer to avoid. but in this case we could do at and hide it again when azure is changed01:36
axwyep, that sounds fine to me01:37
wallyworldok, let me take another look at the pr01:37
axwta01:37
thumperdavecheney: arm email looks good to me01:37
wallyworldaxw: also, i'd be interested in your thoughts on review board as per martin's email01:38
thumperdavecheney: thanks01:38
axwwallyworld: yeah taking a look now01:38
davecheneysinzui: that machine is also lacking the ppa01:39
davecheneyoh no01:39
davecheneyi'm sorry01:39
sinzuidavecheney, ubuntu-toolchain-r?01:39
davecheneyi guess01:39
davecheneyi cannot see from that output01:39
davecheneyall i see is01:40
davecheneyGet:3 http://ppa.launchpad.net trusty/main ppc64el Packages [11.9 kB]01:40
davecheneysinzui: can you add a01:40
davecheneygccgo -v to the build script, just before doing go build01:40
davecheneythat will settle it01:40
sinzuidavecheney, that is a little tricky since that would error on golang01:41
davecheneyeh ?01:41
sinzuidavecheney, http://pastebin.ubuntu.com/7693053/01:41
axwwallyworld: are you able to get onto reviewboard atm? it's refusing my connection, just wondering if I've set up the tunnel right or not01:41
davecheneyinteresting01:41
davecheneythat is the correct version01:41
davecheneythat matches winton-0701:42
davecheneythat matches winton-0901:42
axwwallyworld_: are you able to get onto reviewboard atm? it's refusing my connection, just wondering if I've set up the tunnel right or not01:44
wallyworld_axw: yeah, worked for me01:44
axwhrm01:45
wallyworld_did you set up proxy in browser?01:45
axwwallyworld_: seems busted. I can't even telnet to 8080 on the machine.01:45
axwoh, it's 80 isn't it01:45
wallyworld_axw: all i did was run the ssh -D command, and then that logged me into a session. then i changed the browser to use a socks proxy and it worked01:46
wallyworld_i used port 8080 in the socks proxy config01:46
axwwallyworld_: I was trying to be clever and just forward the port, but I chose the wrong destination port. never mind :)01:47
wallyworld_ok :-)01:47
sinzuidavecheney, stilson-07 with the correct ppa failed the same way http://juju-ci.vapour.ws:8080/job/publish-revision/546/console01:48
sinzuidavecheney, I am still deploying a hack to print the compiler to all the slaves01:48
davecheneygccgo -v ::01:49
davecheneysinzui: confirmed01:51
davecheneysame compiler01:51
davecheneyvirtually same kernel01:51
davecheneydifferent results :(01:51
wallyworld_sinzui: do you know what the policy would be in terms of deprecating and removing a juju feature which shipped in trusty? can we do that over a 1.20->1.22 release, or are we stuck with it forever?01:51
sinzuiwallyworld_, jamespage's proposal is co-installable version, so we can deprecate in devel and obsolete next devel. We will continue to state modern client works with older server 1 stable behind01:54
=== wallyworld_ is now known as wallyworld
sinzuidavecheney, I can reboot? I have rebooted stilson-08 a lot actually because the ppc bug past week cause the disk and ram to fill up01:59
axwwallyworld: how did you create a review from a PR in reviewboard?02:00
wallyworldaxw: i clicked on the new review link and it showed the recent branches02:00
axwwallyworld: did you just get the diff and upload it?02:00
wallyworldi then clicked on the branch02:00
axwhuh ok02:00
axwI don't get that...02:00
wallyworldno New Review menu?02:01
axwwallyworld: it just shows me the juju/juju repo and master branch02:01
wallyworldhmmm02:01
wallyworldso you have the menu but it doesn't show any branches?02:01
axwwallyworld: I clicked "New Review Request" at the top, and the only repo is "juju" which is juju/juuju02:02
axwjuju*02:02
axwno obvious way to add my own02:02
wallyworldhmm, let me re setup the tunnel etc and try02:04
davecheneysinzui: sure02:04
davecheneysinzui: stilson-07 looks fucking sit02:05
davecheneydmesg shows continual crashes02:05
wallyworldaxw: just emailed a screenshot showing what i get when i click "New Review Request"02:08
davecheneys/sit/sick02:08
axwwallyworld: yeah that's what I see too. that's merged commits.02:08
wallyworldoh balls, it is too02:09
wallyworldi didn't look too closely02:09
wallyworldso looks like the rbt tool is needed after all02:09
axwyeah, which is a bit crap IMO02:10
wallyworldyep :-(02:10
wallyworldi wonder if gerrit is any better02:10
davecheneywaigani: you're ocr today ?02:10
davecheneywallyworld: everyone says gerrit is the one to go for02:10
wallyworlddavecheney: we'll take a look at it. trouble is, they're all crap compared to lp02:11
davecheneywallyworld: i'll agree to disagree with you there02:11
davecheneyno inline commenting on lp was a non starter for me02:12
wallyworlddavecheney: what don't you like about lp? it has the best review queue, can mark stuff as wip, is *not* patch based, supports pre-req branches etc etc02:12
wallyworldnone of the others do that very well at all02:12
davecheneywallyworld: lack of inline commenting on reviews02:12
wallyworldmeh02:12
wallyworldlp has that now anyway02:12
davecheneydamn, too late02:13
wallyworldsince maybe about a month02:13
davecheneylike i say, we don't have to agree on this point02:13
wallyworldsure :-)02:13
davecheneysinzui: did you reboot stilson ?02:36
sinzuidavecheney, 7 and 8 are rebooted. 7 is back02:36
sinzuiand 8 is back02:37
davecheney[    5.238055] init: plymouth-upstart-bridge main process ended, respawning02:37
davecheney[    7.117990] init: pollinate main process (797) terminated with status 102:37
davecheneythis machine is sick02:37
sinzuidavecheney, we could backout your change for a half a day to get a pass rev we can release. or may rewrite the offending code to be friendlier to gccgo02:45
davecheneysinzui: yup, will revert02:47
davecheneydoes anyone know how to do that ?02:47
davecheneywallyworld: can you help revert a merge ?02:49
wallyworldwhich one?02:49
davecheneyhttps://github.com/juju/juju/pull/14402:49
wallyworldi think you just reverse cheery pick and propose a pr02:49
davecheneywallyworld: i have _never_ done this before on git02:49
wallyworldme either :-)02:50
davecheneyit's guarenteed i'll scrwe it up02:50
davecheneymight be easier to work around the compiler bug02:50
sinzuidavecheney, I don't have confidence in that myself.02:50
wallyworlddavecheney: it that what breaks the compiler?02:50
davecheneysinzui: wallyworld I have a workaround for the compiler crash02:53
davecheneypls hold02:53
wallyworldok02:53
sinzui\o/02:53
davecheneyhang on02:54
davecheneyshit is weird02:54
davecheneymy local working copy of master does not match what i'm seeing on stilson02:55
davecheneyfuck, forgot to pull master02:55
davecheneyok, running tests02:57
davecheneyPR comming ASAP02:57
axwwallyworld: did you see the review request for gwacl?03:07
wallyworldno, i'll look03:07
axwwallyworld: https://code.launchpad.net/~axwalk/gwacl/rolesizes-update/+merge/22410303:07
wallyworldaxw: i know, let's just write a html page scraper, WCPGW03:09
axwwallyworld: heh :)03:10
davecheneysinzui: wallyworld https://github.com/juju/juju/pull/15103:10
sinzuidavecheney, jam made a similar fix last week03:11
wallyworlddavecheney: we could leave the authEntityTag alone and just do if names.NewMachineTag(parentId).String() == authEntityTag.String() {    ??03:13
davecheneywallyworld: sure,03:14
wallyworldjust a suggestion to preserve more of the original branch03:14
davecheneybut i've tested this version03:14
wallyworldok, i was just thinking that we'd want to keep various getAuth functions consistent03:15
davecheneythis isn't forever03:15
wallyworldok, +103:15
sinzuidavecheney, there is a cursed branch in front of yours. github-merge-juju will be available in 30 minutes03:17
davecheneysinzui: ok03:17
davecheneyi don't know what you mean03:17
davecheneybut ok03:17
bodie_I think this is ready to go -- https://github.com/juju/juju/pull/14003:40
bodie_would appreciate a lgtm / lbtm :)03:40
menn0bodie_: I'll take a look03:49
menn0davecheney: do you want to get this merged or would you prefer that the tests I suggested get done first? https://github.com/juju/juju/pull/12703:49
davecheneymenn0: i'm not fussed03:50
menn0davecheney: let's just get it in. it's got my LGTM.03:51
davecheneycool, thanks03:57
davecheneypanic: runtime error: invalid memory address or nil pointer dereference03:58
davecheney[signal 0xb code=0x1 addr=0x1 pc=0x40761f]03:58
davecheneygoroutine 1438 [running]:03:58
davecheneyruntime.panic(0xed70c0, 0x1f9c7c8) /usr/lib/go/src/pkg/runtime/panic.c:266 +0xb603:58
davecheneygithub.com/juju/juju/state/apiserver.func��009(0x0, 0x0, 0xc210256c60, 0x30941b60a0, 0x414361, ...) /home/ubuntu/juju-core_1.19.4/src/github.com/juju/juju/state/apiserver/root.go:169 +0x5ed03:58
davecheneygithub.com/juju/juju/state/apiserver.(*srvCaller).Call(0xc21033cb40, 0x0, 0x0, 0x0, 0x0, ...) /home/ubuntu/juju-core_1.19.4/src/github.com/juju/juju/state/apiserver/root.go:101 +0x3f03:58
davecheneygithub.com/juju/juju/rpc.(*Conn).runRequest(0xc210859500, 0x7f9e941e1b18, 0xc21033cb40, 0x129fb20, 0x12, ...) /home/ubuntu/juju-core_1.19.4/src/github.com/juju/juju/rpc/server.go:533 +0xd503:58
davecheneycreated by github.com/juju/juju/rpc.(*Conn).handleRequest /home/ubuntu/juju-core_1.19.4/src/github.com/juju/juju/rpc/server.go:462 +0x67103:58
davecheneyerr03:58
davecheneydidn't jam make a fix for this ?03:58
davecheney                r.objectCache[objKey] = objValue03:59
davecheney                return objValue, nil03:59
davecheneythe hell03:59
davecheneythat means r.objectCache is nil03:59
bodie_could use a bit more review on this as well -- menn0 if you're interested -- jcw4 https://github.com/juju/juju/pull/14104:00
menn0davecheney: he has a fix but he hasn't merged it yet04:02
menn0davecheney: PR 14604:02
davecheneycool, thanks04:02
davecheneyi'll check it out04:02
menn0davecheney: it's fairly sporadic04:03
menn0bodie_: that extension to the tests for #141 looks good. I had some other comments too.04:04
menn0thumper: did you see this? https://github.com/juju/juju/pull/108#issuecomment-4682218304:05
menn0thumper: fwereade is right that the implementation is probably not quite right given the plans in the identity spec. most of the work is still useful though. I wonder if it should merged but disabled.04:06
davecheneymenn0: urgh, shit, lots of races in cmd/jujud04:07
menn0davecheney: where? what?04:07
davecheneymenn0: pls hold04:08
davecheneysinzui: that gccgo fix landed04:09
sinzui\o/04:09
davecheneyhow do I kick off the ppc build ?04:09
davecheneymenn0: http://paste.ubuntu.com/7693425/04:10
davecheneyas suspected there is a race on the api server root hashmap04:10
sinzuidavecheney, you can't CI already sees there is a new revision http://juju-ci.vapour.ws:8080/04:10
davecheneysinzui: ok04:10
sinzuidavecheney, Both publish-revision and run-unit-tests-trusty-ppc64el will start in 5 minutes04:11
davecheneysinzui: https://bugs.launchpad.net/juju-core/+bug/133351304:12
_mup_Bug #1333513: state/apiserver: data race on on apiserver method hashmap <race-condition> <juju-core:Confirmed> <https://launchpad.net/bugs/1333513>04:12
davecheney^ blocks 1.19.4 i'm afraid04:12
sinzui:(04:12
davecheneyi can try jam's fix and see if that helps04:13
thumpermenn0: hey, back at my desk now04:14
thumpermenn0: let me look04:14
menn0thumper: k04:15
menn0davecheney: that fail is due to the thing that jam has fixed but not merged. I believe there was discussion about the best way to fix it which might be why there's a delay.04:16
bodie_menn0, I had a few replies for your comments -- I need confirmation from jcw4 on at least one of them since 141 is actually an API for the Watcher, which itself is tested elsewhere -- I'm not entirely sure all the error cases need testing, since many of them are things from other packages04:22
bodie_the API should really be simple, I think, but I'm open to being wrong about that :)04:22
menn0bodie_: give me a bit, I'm in the middle of your other review04:23
bodie_sure thing, it's way past EOD for me here so I'll be reviewing in the morning -- hopefully we can sync effectively :) I really appreciate the comments04:24
menn0bodie_: no problems04:57
davecheneysinzui: ppc build passed!05:01
davecheneyw00t05:01
davecheneymenn0: what shold we do05:06
davecheney1. release with this know issue ?05:06
davecheney2. wait a few hours for jam ?05:06
davecheney3. try to fix it ourselves ?05:06
menn0davecheney: I don't think we can release. This problem will happen in actual use.05:07
davecheneyok05:07
davecheneyi agree05:07
davecheneythere are also a shitload of other races in that paste05:07
menn0davecheney: it looks like jam has a valid fix that several people approved05:07
davecheneyi only made an issue for the first one05:07
davecheneymenn0: hit it with $$merge$$05:07
menn0davecheney: there was quite a bit of discussion though so I wonder if jam1 was planning on doing something better05:08
jam1davecheney: menn0: the fix for *my* code is just fine, the ancillary fix for other stuff that showed up with -race is in question, but I'm looking into it right now.05:09
davecheney:)05:09
menn0davecheney: maybe just go with what jam has right now and he can always change it later.05:10
davecheneyi agree05:10
menn0hitting merge now05:10
jam1davecheney: trying to use "go test -compiler=gccgo" I got this error: http://paste.ubuntu.com/7693569/05:12
jam1thoughts?05:12
davecheneyjam1: fix in trunk05:12
jam1running it a second time and it passed...05:12
jam1ah, nm, still breaks05:12
davecheneylanded a few minutes ago05:12
jam1I forgot I run the regular tests first05:13
jam1davecheney: thanks05:13
menn0jam1: did you catch that davecheney and I just hit $$merge$$ on your objectCache PR?05:13
jam1davecheney: is that a fix in "juju" trunk, or a fix in gccgo trunk05:13
jam1?05:13
davecheneyjam1: workaround in juju05:13
jam1menn0: yeah, though I did *just* push up the alternative fix05:13
menn0jam1: crap.05:14
menn0jam1: shall we cancel the merge then?05:14
jam1menn0: meh we can just submit it again, I think if we missed something. It is noise but not terrible05:14
jam1 menn0: there is a queue 3 deep already and maybe the bot doesn't track the tip version that was voted on, in which case it will get the updated one. We'll see.05:17
menn0jam1: I was wondering the same thing.05:18
jam1tarmac was careful about it, because you could be approving 3rd party proposals, though it often was annoying to have to go and reapprove since most of our branches were actually trusted.05:19
jam1I don't know the new bot nearly as well.05:19
menn0davecheney: I just send off that status API PR for merging too05:20
davecheneythanks05:20
davecheneysinzui: still there ?05:20
davecheneywhen do we have to stop screwing around so you can cut a release ?05:21
wallyworldjam1: did you still want to catch up?05:50
thumperOMG... lots of addressing document comments, but no other work05:54
* thumper feels exhausted05:54
thumperit is all rick_h_'s fault05:54
thumperyes rick_h_, read this when you wake up and know that you did this to me :-P05:54
* thumper will add more tomorrow05:54
thumpernight all05:54
davecheneywallyworld: axw  http://juju-ci.vapour.ws:8080/job/run-unit-tests-trusty-ppc64el/06:02
davecheney^ can you push go on this build please06:02
wallyworldsure06:02
davecheneyta06:02
wallyworlddavecheney: what revision? tip?06:02
davecheneywallyworld: tip is fine06:05
wallyworldta, i started it with the sha of your latest commit06:05
davecheneyyup06:05
davecheneythat is the one i want to check06:05
davecheneymake sure I havn't just screwed things again06:05
=== vladk|offline is now known as vladk
jam1fwereade: if you are around and have time for a 5-minute chat about a tasteful way to share common code I'd like to run some ideas by you.06:16
fwereadejam1, sure06:19
jam1fwereade: https://plus.google.com/hangouts/_/canonical.com/juju-sapphire06:19
rogpeppemornin' all06:43
davecheneywallyworld: playing with wercker07:09
davecheneyit looks like we can setup custom build environments07:09
davecheneytrying to get the juju tests to pass07:09
wallyworldcool07:09
davecheneywallyworld: you get pre commit tests07:09
davecheneyon a per branch basis07:09
davecheneythe werker bot participates on the PR and says if the build passes or not07:10
davecheneyi've probably screwed my working copy07:12
davecheneydoing all this07:12
davecheneyhttps://app.wercker.com/#buildstep/53a925f9770aadd70b0f194407:17
davecheneywell07:19
davecheneythat didn't work07:19
davecheneyand i'm out of fucks for today07:19
jam1fwereade: so I've made a couple comments, but now Google is telling me "file not found" anytime I click on the doc.07:22
jam1fwereade: It comes to mind that if we do the "this hook is only called if the other hook doesn't exist" model, then we could call it "unhandled-changes"07:23
fwereadejam1, that's just the "missing" hook, and it'll get called 10000 times, isn't it?07:23
fwereadejam1, (fwiw loading it in a new tab works for me)07:23
jam1fwereade: well it could be "missing" but have the semantics that it is only called once for a sequence of hooks07:23
fwereadejam1, it's not quite working for me, but maybe I just need to think it through more07:26
jam1fwereade: so I mentioned in my comments that either semantic would be possible07:26
jam1"always queue one of these" vs "only queue if the hook wasn't there"07:26
jam1fwereade: I still get it to load and show the first time, but clicking anywhere says there is a problem. Can you share the doc directly with me?07:27
fwereadejam1, shared07:28
jam1fwereade: thanks, it seems happier07:29
jam1fwereade: I just brought it up because I think it might change the name of the thing, and naming it seems problematic right now :)07:30
fwereadejam1, I dunno, calling it once in response to any sequence of unimplemented hooks feels quite different to calling it when stable (and occasionally if it looks like we're not stabilising any time soon)07:32
fwereadejam1, tying it to other hooks feels like complexity for no benefit -- maybe I'm just not getting the value though07:33
fwereadejam1, you can implement install, you can implement relation-broken, etc etc07:33
jam1fwereade: so tying it to other hooks is because existing charms are going to have this symlink farm, and it will mean that it actually gets called significantly more often07:34
fwereadejam1, having it so if you implement r-b you basically always see s-c, r-b, s-c, r-b, s-c, r-b, s-c, r-b, s-c when leaving a few relations -- vs r-b, r-b, r-b, r-b, s-c07:34
fwereadejam1, ok, but the symlink farm is stupid and broken07:34
fwereadejam1, getting rid of that is almost the whole point07:35
jam1fwereade: sure, getting there from here is something to be aware of.07:35
fwereadejam1, I don't follow07:36
jam1fwereade: juju certainly doesn't have the concept of "I can deploy version X of charm Y", but not the latest.07:36
fwereadejam1, symlink farms keep working until they delete everything07:36
fwereadejam1, er, yes it does07:36
jam1so charms that *just implement* the new hook still need the symlink farm07:36
fwereadejam1, ahhh ok07:36
fwereadejam1, sorry, yes, I think we need charm feature flags much sooner than later07:36
dimiternjam1, i reverted the network model doc to before domas changes07:38
jam1fwereade: so the thing with even feature flags is that Juju-1.18 could still install version 10 of the charm, it is just version 11 that it can no longer install, but juju has no way of knowing/representing that to the user.07:38
jam1dimitern: is that the giant paste in the header?07:38
dimiternjam1, yep07:38
fwereadejam1, expand please?07:38
fwereadejam1, the charm store needs to know about feature flags too, it is true07:39
fwereadejam1, and getting a version of 1.18 out that understands and uses them is important07:39
jam1fwereade: if I try to "juju deploy mysql" can it pick a version that doesn't have the features it doesn't know about ?07:39
fwereadejam1, that's my expectation and assumption, yeah -- pass supported feature flags when querying charm store07:40
jam1the spec as I read it says that it wouldn't list "mysql" if the last version of mysql had "feature=unknown"07:40
jam1"charms with features not included in list"07:40
fwereadejam1, it wouldn't list that version of mysql07:40
jam1is not the same as07:40
jam1"charm versions with features are not included in the list"07:40
fwereadejam1, perhaps poorly worded then07:40
jam1fwereade: oh google docs, why is "ctrl+alt+m" write a comment but "ctrl+shift+m" is go into some weird 320x200 mobile view07:41
jam1the latter is far easier to type07:41
fwereadejam1, but, er, I was not trying to propose a feature in which valid charm versions just *disappear* ;)07:41
fwereadejam1, I was trying to convey that invalid ones are hidden from clients that can't handle them07:42
fwereadejam1, I guess the issue is the fuzziness between charm and charm revision07:42
jam1fwereade: so the idea of r-b being implemented or not and how it effects queuing s-c being available.07:45
jam1fwereade: you missed my point a bit07:45
jam1the idea is that *if* r-b is implemented you get "r-b r-b r-b" full stop07:45
jam1if it is not07:45
jam1you get "s-c" full stop07:45
jam1when I say "queued" I meant "queued for some time in the future when we reach quiescent point"07:46
jam1so if you have config-changed, c-c, c-c, relation-changed, c-c,  and only relation-changed and something-changed are implemented, you would get07:46
jam1r-c s-c07:46
jam1after the first "c-c" was triggered, s-c would be marked as "I want to run this when I can"07:47
jam1if, on the other hand, you had just "r-c r-c" then you would get exactly that, and not "r-c r-c s-c"07:47
jam1I don't think anyone is saying *if* r-c is implemented then immediately call s-c afterward07:48
jam1that would, indeed, be silly.07:48
jam1I realized "queued" is a bit of a bad term to use here, as it has meta meaning and real-meaning in juju hooks07:48
rogpeppefwereade: i'm thinking of moving the charm package to gopkg.in/juju/charm.v2 to avoid breaking the current API (and to try to commit to maintaining a stable API in the future).07:48
rogpeppefwereade: also with a view to potentially moving other juju packages there too07:49
rogpeppejam1, fwereade: does that sound reasonable to you?07:49
rogpeppethe actual branch would be named "v2" at github.com/juju/charm07:50
rogpeppejam1: with your something-changed hook, would that mean that even if there was an hour gap between two things changing, something-changed wouldn't be called the second time?07:51
fwereadejam1, I am certainly saying "call s-c whenever the queues clear out, however many hooks were implemented or not in the interim"07:51
=== mwhudson is now known as mwhudson-
fwereadejam1, what's the issue there?07:52
rogpeppefwereade: my issue with that is that "queue clearing out" is a very fuzzy concept (it's not with our current highly dubious 5-second polling system of course, but hopefully we can move to something better in the future and i hope we can design for that)07:53
rogpeppefwereade: queue clear for... how long?07:54
vladkdimitern: please, take a look https://github.com/juju/juju/pull/12107:55
fwereaderogpeppe, a few seconds with nothing else firing?07:55
fwereaderogpeppe, but the 5-second polling is so many layers away that I don't really see the relevance07:55
dimiternvladk, looking07:55
rogpeppefwereade: without the 5 second polling, things can keep on firing indefinitely, and maybe that's ok07:56
rogpeppefwereade: well, even *with* the 5 second polling, things can keep on firing indefinitely07:56
rogpeppefwereade: are you trying to address the "fire something when we're in a `stable state'" issue?07:57
fwereaderogpeppe, sure, that's why we fire every N minutes when not stable07:57
fwereaderogpeppe, I'm more trying to address the "most charms are stupid and wasteful and boilerplatey" issue07:58
fwereaderogpeppe, and I think fire-a-hook-when-stable is a good solution to that07:58
rogpeppefwereade: oh, you mean it would be nice to write a charm that just had a "tell me when something happens" hook?07:58
fwereaderogpeppe, that's what people do already07:58
fwereaderogpeppe, but they have to implement every hook as a symlink to their entry point07:58
rogpeppefwereade: ah, but you want to amalgamate events07:59
fwereaderogpeppe, yes, because what happens is that the entry point gets called 30 times and returns without doing anything because not enough context is around07:59
rogpeppefwereade: presumably you can't amalgamate events for different relations?07:59
rogpeppefwereade: or do you just have an env var that can hold all the relations that have changed?08:00
fwereaderogpeppe, and then once there's enough, it gets called another 100 times in a row, rebuilding the full service config every time, diffing against the running config and maybe replacing and bouncing the service08:00
fwereaderogpeppe, nobody cares what's changed08:00
fwereaderogpeppe, they all just slurp up the complete environment state and translate it into a config08:00
rogpeppefwereade: right08:00
rogpeppefwereade: the main issue with amalgamating events is that you won't get such a timely response, because you can never fire a hook immediately08:01
fwereaderogpeppe, but I think you *converge* much faster08:01
fwereaderogpeppe, because you don't do the same processing 100x over08:02
fwereaderogpeppe, you do no processing 100x08:02
rogpeppefwereade: you may do - it depends how costly your hook executions are08:02
fwereaderogpeppe, and then do the actual work just once08:02
rogpeppefwereade: if your actual work only takes a millisecond, then it's not a problem08:02
fwereaderogpeppe, quite -- this is presented as a way of working better with the charms which are just one, big, complex hook08:02
rogpeppefwereade: given that we currently always have up to 5 second delay, perhaps that's the self-imposed queue-gathering delay is not a problem even in a non-polling system08:03
fwereaderogpeppe, didn't quite follow that08:04
rogpeppefwereade: if you get an event, you have to wait for some length of time to gather other events before you can fire your something-changed hook08:05
rogpeppefwereade: otherwise you'll regress to always firing an event every time08:05
rogpeppefwereade: alternatively...08:06
rogpeppefwereade: (and probably better)08:06
fwereaderogpeppe, or we could integrate the hook queues and have them generate an s-c whenever they empty out08:06
rogpeppefwereade: is to just fire the first hook anyway, then gather any events that happen while the hook is firing, then fire all of them at once when that completes08:06
fwereaderogpeppe, may or may not be enough better to justify the cost08:07
fwereaderogpeppe, I never imagined *not* firing any other hook -- just that I'd expect most of those hooks to not be implemented08:07
rogpeppefwereade: i don't really have an idea of what "integrating the hook queues" implies08:07
fwereaderogpeppe, there's one per relation at the moment, and other hooks coming in from a variety of sources -- eg config-changed from the filter, install/start/stop according to the state machine08:08
=== mwhudson is now known as mwhudson-bip
* rogpeppe goes to have a glance at the uniter source08:09
fwereaderogpeppe, move relationId from AliveHookQueue to UnitInfo and you're quite a lot of the way there, although you probably want to maintain a linked list per relation as well alongside the global one08:11
rogpeppefwereade: perhaps life would be easier if the filter only had a single output channel08:11
fwereaderogpeppe, mmmmm if we only had one channel for *hooks*, yes, it probably would08:12
fwereaderogpeppe, single output chan on filter doesn't seem helpful to me08:12
rogpeppefwereade: ah, yeah, i was thinking of a single channel that modeAbideAliveLoop could be waiting on08:13
fwereaderogpeppe, but regardless, we don't *need* any of that08:13
fwereaderogpeppe, waiting a few seconds and firing s-c if nothing else happens, then not waiting if we just ran s-c, would I think work fine08:14
rogpeppefwereade: mmm, probably. it does feel a bit hacky though08:15
rogpeppefwereade: after all, the recipient *knows* that something has changed08:16
fwereaderogpeppe, recipient == the charm? or the uniter?08:17
rogpeppefwereade: the uniter08:17
rogpeppefwereade: specifically modeAbideAliveLoop, though there may be other places08:17
fwereaderogpeppe, right, but that's the uniter setting things up to tell itself when things *stop* changing08:17
fwereaderogpeppe, and deciding then to inform the charm that s-c08:18
rogpeppefwereade: isn't that what you want?08:18
fwereaderogpeppe, it is, we may be in violent agreement -- I think I didn't understand08:18
fwereadeafter all, the recipient *knows* that something has changed08:18
jam1TheMue: I'd like to turn https://docs.google.com/a/canonical.com/document/d/1fPOSUu7Dc_23pil1HGNTSpdFRhkMHGxe4o6jBghZZ1A/edit# into a concrete doc in the source tree about how it was actually implemented and how people interact with the system. It is currently a little too "how do we do this" in places. Do you think you can work on that, or is it stuff that only I have in my head.08:36
TheMuejam1: that’s a doc that will move into the Juju API Design Specification I’m currently working on08:39
TheMuejam1: it’s pretty detailed and together with your code changes I think it’s no problem to get it08:39
TheMuejam1: in unclear cases I’ll simply ask you :D08:39
rogpeppefwereade: FWIW i was thinking along these kinds of lines: http://paste.ubuntu.com/7694109/08:41
rogpeppefwereade: though i'm sure it doesn't interact correctly with hook error retries, shutdowns and all that jazz08:42
TheMuejam1: btw, thx for review. beside changing the tests and adding a failing case, do you think I should add a validity check to the API, or even deeper the RPC layer?08:42
jam1TheMue: I'd like a test at at least the state/api/ layer (which means probably in state/apiserver/client_test.go08:42
fwereaderogpeppe, yeah, that's roughly what I was thinking too, although I agree it probably isn't *exactly* right as it is08:42
dimiternvladk, reviewed08:43
vladkdimitern: thanks08:43
rogpeppefwereade: cool08:43
rogpeppefwereade: i thought you were considering something much more upstream than that08:44
fwereaderogpeppe, considering, yeah -- there's something architecturall skewed about relation handling and filters and so on -- but I think the s-c can be done at that layer completely independently08:45
rogpeppefwereade: cool08:45
fwereaderogpeppe, I just keep wanting to find excuses to look into that stuff again ;)08:45
rogpeppefwereade: FWIW the 2 second delay could probably be 10 milliseconds and it would still be useful08:45
fwereaderogpeppe, concur08:45
rogpeppefwereade: BTW did you have an opinion on moving the charm package to use gopkg.in ?08:46
fwereaderogpeppe, I rather like gopkg.in, I don't see why not08:47
rogpeppefwereade: cool. i've got a couple of outstanding proposals which i'd like to merge, but they break the API horribly, so i was wanting to merge only after moving to a new api version08:47
=== mwhudson-bip is now known as mwhudson
vladkdimitern: I answered some comments in https://github.com/juju/juju/pull/12109:12
dimiternvladk, thanks, will look in a bit09:13
=== vladk is now known as vladk|offline
natefinchmornming all09:33
natefinchjam1: do you have time to go over the multi env state server spec?  Seems like we have some comments to talk about09:36
fwereadedimitern, vladk|offline: either we need a stringswatcher, in which case we should write it as a stringswatcher, or we want a one=shot in which case we should write it as a one-shot09:36
wwitzel3morning natefinch09:37
natefinchwwitzel3: up early huh?09:38
wwitzel3natefinch: woke up and it was only 30 minutes till my alarm anyway09:39
natefinchahh yeah, I know that one09:39
wwitzel3natefinch: just reading over that email from wallyworld I'll get started on that09:42
natefinchwwitzel3: yeah that seems good09:43
=== mwhudson is now known as mwhudson-bip
wallyworld_jam1: i'm free wherever you are, just ping when when you have a break in your schedule09:47
wallyworld_wwitzel3: i'm not sure how long that will take you, i can find more to do if you get that done :-)09:48
wallyworld_fwereade: will you get a chance to review https://github.com/juju/juju/pull/124 today? I have most of the proof-of-access followup done which I plan to propose tomorrow09:50
fwereadenatefinch, jam1: based on a super-quick look at that, what I was hoping for was a plan for fixing the db to handle multiple envs, rather than a redesign of the stuff tim's been working on for the last couple of weeks -- added a couple more comments just now09:50
fwereadewallyworld_, sorry :(09:51
wallyworld_np :-)09:51
fwereadewallyworld_, it mostly looked good, I will try to do it properly today09:51
wallyworld_ok, ta09:51
natefinchfwereade: well shit09:52
fwereadenatefinch, ehh, communications screwup, it happens09:53
dimiternfwereade, we'll primarily watch the machine itself i think, but we'll also need to watch the req. networks (the watcher server-side will handle the machines + services deployed on it ofc, so we don't need to care about the services), raw addresses and subnets attached to the machine's interfaces09:53
fwereadedimitern, (1) why watch the machine (2) are any of those other things relevant other than in the context of "we need to configure X network, let's look up the details of how we do so"?09:54
natefinchfwereade: is there more to fixing the db than scoping each document's id by adding the environment UUID to it?09:54
dimiternfwereade, check the https://docs.google.com/a/canonical.com/document/d/16SYAlZFc19YPXrB7BRwufZVoeLFpqGzBTAdo4EoQIHg/edit#heading=h.idpldjoq36jf section about the networker's responsibilities09:54
dimiternfwereade, sorry, not the machine, but other things09:55
fwereadenatefinch, there's (1) picking a shard key -- I don't think _id makes for a good one -- and  (2) Getting There From Here: how we change apiserver/state to work with multi-env without requiring rewriting All The Things09:55
fwereadedimitern, checking09:55
dimiternfwereade, fwiw, it seems more and more we'll actually need a worker not based on a watcher though09:56
fwereadedimitern, how can a subnet start dying when a machine's using it? I thought non-zero refcounts would block that09:57
dimiternfwereade, but not a one-shot single use worker, something that can still handle things in a loop using multiple watchers and "watcher-like" things, i.e. monitoring ifaces09:57
dimiternfwereade, a subnet with no enabled interfaces attached to it has a refcount of 009:58
fwereadedimitern, I am suspicious that there's a big pile of necessary jobs that are all being crammed into one worker because the name's roughly related09:58
fwereadedimitern, then why can the machine see that subnet?09:58
dimiternfwereade, i had that feeling as well09:58
fwereadedimitern, mainly I'm scared of another firewaller09:58
dimiternfwereade, because it has disabled ifaces attached to it09:58
fwereadedimitern, that thing's a horrorshow09:59
fwereadedimitern, hmm. can't we just disable ifaces that don't correspond to desired networks, bam, done?09:59
dimiternfwereade, so we can split the tasks in two at least - and "addresser", which handles watching interfaces as they come up and update raw addresses of the machine, as opposed to the instance poller, which calls the provider; the addresser can take care of filtering addresses as well perhaps, moving them from raw to official10:00
fwereadedimitern, the address handling stuff is IMO nothing to do with a worker10:00
dimiternfwereade, why? who's gonna monitor what addresses are assigned to the new interfaces and save them in state?10:01
fwereadedimitern, SetAddresses/SetMachineAddresses *themselves* are expected to look at all the raw addresses and update the *actual* addresses in one go10:01
fwereadedimitern, SetMachineAddresses is really just "ehh, we have a bunch of IPs, figure them out please state server"10:01
dimiternfwereade, yes, but someone has to call that with the discovered addreses, right?10:02
dimiternfwereade, will it be another worker or something in the MA?10:02
fwereadedimitern, sure, that's a worker, but *all* the worker does is discover IPs and call the API10:02
fwereadedimitern, it is not expected to do anything sophisticated with those addresses10:03
dimiternfwereade, right10:03
dimiternfwereade, the networker can to watch the machine's network interfaces to make sure we do the right thing when they are enabled/disabled10:04
dimiternfwereade, which will happen as part of provisioning or deployment (i.e. when they're added in the first place, or when a unit gets deployed and the combined req. networks change, triggering interfaces being marked as enabled/disabled)10:05
fwereadedimitern, maybe I'm being dense, but I still don't see why the networker needs to do anything other than (1) watch the list of networks and (2) every time it changes, look up relevant info on those nets from the API server, config the ones we have, and disable the ones that don't map to those reported active by the state server10:06
fwereadedimitern, why watch the interfaces though?10:07
dimiternfwereade, ok it seems we need another talk on this10:07
fwereadedimitern, yeah, probably :)10:07
dimiternfwereade, and sequence diagrams of the order of events and who handles them :)10:07
fwereadedimitern, you free now?10:07
fwereadedimitern, +110:07
dimiternfwereade, can we do it in 5m?10:07
fwereadedimitern, sure10:09
dimiternfwereade, sent you a link10:16
jam1fwereade: so it turns out that there is a reason to use the 'interface' style for Client facing facades. because they will be exposing both BestAPIVersion *and* at least Close. I'm not sure if there will be another common function yet or not.10:21
jam1And while yes, we could create 2 'simple' thunks10:22
jam1once we have >1 it feels better to put that as a common embed to me.10:22
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
perrito666morning everybody11:21
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
wwitzel3morning perrito66611:24
perrito666sinzui: did we manage to get 1.19.4 out?11:33
axwwallyworld_: is it just me, or is the bot way worse than usual today?11:51
wallyworld_not just you, does seem bad :-(11:51
jam1wallyworld_: if your still around, poke12:09
wallyworld_hi12:09
mattywfwereade, OpenPort in in state/unit.go - this looks like a bug - just checking it's not intended behaviour: https://github.com/juju/juju/blob/master/state/unit.go#L65312:09
jam1wallyworld_: can you meet me over here: https://plus.google.com/hangouts/_/canonical.com/juju-sapphire?authuser=112:09
wallyworld_sure12:09
rogpeppebac, dimitern, jam1, wwitzel3, mgz, natefinch, perrito666, wallyworld_: here's the start of bundles implementation in the charm package; reviews very much appreciated: https://github.com/juju/charm/pull/912:33
jam1natefinch: poke12:58
natefinchjam1: howdy12:58
wallyworld_axw: finally landed :-/12:59
jam1natefinch: hey, sorry we didn't get the focus on multi-environment stuff, I do feel we need to work on it. however, we have a release blocker bug (I believe)12:59
=== vladk is now known as vladk|offline
natefinchthe gccgo stuff?13:00
jam1natefinch: I think I fixed those, this is an upgrade failure13:01
jam1https://bugs.launchpad.net/juju-core/+bug/133368213:01
_mup_Bug #1333682: upgrading 1.18 to 1.19 breaks agent.conf <panic> <upgrade-juju> <juju-core:Triaged> <https://launchpad.net/bugs/1333682>13:01
jam1specifically, juju 1.19 expects there to be an "apiaddresses" line in agent.conf and panics on a null pointer dereference if it isn't there.13:01
jam1natefinch: but 1.18 doesn't have it, and nothing seems to *put* it in there.13:01
perrito666jam1: mm, shouldn't peergrouper do that?13:03
jam1perrito666: peergrouper can't come up because the data isn't there and we try to connect to the state with a nill API address13:04
jam1well, maybe maybe not it can come up, It isn't quite clear, but the process itself panics13:04
jam1perrito666: natefinch: this *might* not be a 1.19 regression, because it appears 1.18.1 is putting the line in agent.conf13:05
jam1so the bug is that potentially these people are upgrading from originally 1.1613:05
jam1and 1.18 doesn't add the line, but doesn't care if it isn't there13:05
jam1and 1.19 now expects it to be there.13:05
bodie_morning all13:06
jam1morning bodie_13:07
jam1mramm: ping13:15
mrammjam1: pong13:16
jam1mramm: were we doing 1:1 call now?13:16
mrammoh, I'm in the cloudbase sprint13:16
mrammI can drop out and come over to the 1 on 113:16
mrammbe there in one min13:16
=== vladk|offline is now known as vladk
perrito666bzr branch takes a bit....13:47
wwitzel3natefinch: standup14:08
natefinchwwitzel3: sorry, in a meeting with the cloudbase guys.  Can you guys deal for now?14:16
ericsnownatefinch: we got started without you :)14:17
wwitzel3natefinch: yep ^14:17
perrito666dimitern: ping14:24
alexisbmgz, you around?14:25
ericsnownatefinch: will you be available for our 1on1 in a few minutes?14:26
dimiternperrito666, hey14:26
natefinchericsnow: can we move it to this afternoon?14:26
ericsnowsounds good14:26
mgzalexisb: yup14:27
perrito666mgz: ah you here too14:28
perrito666good14:28
alexisbmgz, can you reach out to perrito666, he is working a critical bug and could use your great wisdom :)14:28
mgzperrito666: feel free to bug me :)14:28
TheMuejam1: any chance to take another look at https://github.com/juju/juju/pull/15014:29
TheMuejam1: ?14:29
alexisbthanks mgz, this is important given it is our latest block for the release which is now a week behind :)14:30
jam1TheMue: my immediate thought is that "juju set" isn't returning an error code when it gets bad data?14:31
TheMuejam1: thought about it too, but it would also be for names or any string arguments which pass the API14:34
TheMuejam1: best would be imho if here no invalid encoded data would pass14:37
jam1TheMue: reviewed14:37
TheMuejam1: thx14:38
TheMuejam1: Main() so far returns no error as it doesn’t recognize it as error. as I said, to recognize it we would have to check any value for valid utf-8 best on rpc level14:42
tasdomasis there a way to connect to the mongo db created by a test ?14:49
natefinchtasdomas: you mean manually?  by default they get cleaned up at the end of the test, so they go away... but you can comment out the cleanup code if you want to go poke at the DB by hand15:03
perrito666is anyone else having juju report dns-name for local deploys as localhost?15:03
automatemecolemaI have a bug problem on precise with local provider https://gist.github.com/anonymous/9ecb23a51844627028b0 Anyone able to point out something here? Here's a bug that maybe somewhat related https://bugs.launchpad.net/juju-core/+bug/1330406 ??15:04
_mup_Bug #1330406: juju deployed services to lxc containers error executing "lxc-create" with bad template: ubuntu-cloud <bootstrap> <local-provider> <lxc> <juju-core:Incomplete> <https://launchpad.net/bugs/1330406>15:04
sinzuinatefinch, wwitzel3: what you you think about https://bugs.launchpad.net/ubuntu/+source/juju-core/+bug/132895815:04
natefinchautomatemecolema: maybe you need to update lxc?15:05
sinzuiThe summary is juju requires the ubuntu user to be on the client machine...except I don't and I don't know anyone who does15:05
sinzuiI have never seen this issue...and if this is about server images, they come with ubuntu so juju local still works15:06
natefinchsinzui: I think we create the user in cloud init if it doesn't exist15:06
sinzuinatefinch, right, but the issue here is local host machine your desktop15:07
natefinchoh sorry, I missed that it was local15:07
sinzuinatefinch, the juju client does not create the ubuntu user on the host machine15:07
natefinchsinzui: no, I wouldn't expect it would15:07
* fwereade was working at 1am and 8am today, calling it a day now15:09
* fwereade probably back on later, ping me if you need me15:10
tasdomasnatefinch, thanks - I'm actually suspending the test using a sleep15:11
sinzuinatefinch, I think the issue with https://bugs.launchpad.net/ubuntu/+source/juju-core/+bug/1328958 is that the localhost is a server image. juju recognises that, and then wants to use the ubuntu user. This works most of the time because servers always come with ubuntu user.15:15
sinzuinatefinch, The error implies that something in .juju/local is owned by ubuntu...I have never seen that on any of the 5 machines that test local. I would be looking though unless the test failed15:16
natefinchtasdomas: that works15:18
tasdomasnatefinch: I can't however, find the correct username/password to log into the db15:19
natefinchperrito666: ^^15:19
* perrito666 reads15:19
natefinchperrito666: I know you were just talking about that... where do you get the username/pw?15:20
automatemecolemanatefinch: well I followed the juju guide on what packages needed to be installed15:20
perrito666natefinch: var/lib/juju/agents/<tag>/agents.conf15:20
perrito666tasdomas: ^15:20
automatemecolemanatefinch: apt-get install juju-local linux-image-generic-lts-raring linux-headers-generic-lts-raring15:20
perrito666user==Tag: password=apipassword iirc15:20
tasdomasperrito666, natefinch thanks15:21
automatemecolemanatefinch: not sure how more up to date I can get with lxc on precise??15:21
hatchhey guys is there documentation for people who want to interact with the juju api like the GUI does?15:28
natefinchautomatemecolema: that sounds valid....15:28
natefinchhatch: no, sorry15:28
hatchnatefinch ok np15:28
automatemecolemanatefinch: so I think I have a bug then....15:29
natefinchhatch: right now I'm recommending that if you want to script against juju that you do it using the CLI, since that's a lot better documented and much more suitable for human consumption15:29
natefinchhatch: which I know doesn't work for a lot of use cases15:29
natefinch(like a web gui)15:29
hatchnatefinch yeah I'm sure the primary use cases would work with the CLI, but we should probably document it sometime :)15:30
natefinchhatch: it's on the list of things to do, definitely.   You're far from the first to ask about it.15:31
hatchnatefinch, if only we had unlimited resources :)15:31
mattywfwereade, ping?15:32
natefinchhatch: yep15:32
natefinchautomatemecolema: precise definitely works.... oh maybe you need to set default series15:32
natefinchautomatemecolema: in ~/.juju/environments.yaml   add default-series: precise   to the local provider section15:36
natefinchautomatemecolema: and/or edit ~/.juju/environments/local.jenv   to add default-series: precise15:37
automatemecolemanatefinch: trying your suggestion out right now15:40
automatemecolemanatefinch: so I can't run a trusty charm with a bootstrapped precise environment?15:43
automatemecolemathe problem is trying to deploy trusty/juju-gui when my bootstrap node is precise15:44
natefinchyou should be able to deploy that to something other than the bootstrap node (like you couldn't do juju deploy trusty/juju-gui --to 0)15:45
automatemecolemaYea, but every time I tried that it failed with an lxc-create problem15:45
natefinchI seem to remember there being a problem running trusty containers on precise..... but I forget exactly what the problem was15:45
natefinchautomatemecolema: so.... generally when I hit an lxc problem with the local provider, I just reboot, because most of the time it's lxc getting itself wedged in a bad state15:46
automatemecolemayea I tried a reboot, that didnt work out15:49
=== vladk is now known as vladk|offline
natefinchmgz: any ideas to help out ^^?15:52
rick_h_natefinch: there were issues in the original juju release especially without a default series and such defined.15:54
rick_h_natefinch: maybe you were thinking of https://bugs.launchpad.net/ubuntu/+source/juju-quickstart/+bug/1306537 ?15:56
_mup_Bug #1306537: LXC local provider fails to provision precise instances from a trusty host <deploy> <local-provider> <lxc> <juju-core:Fix Released by wallyworld> <juju-core 1.18:Fix Released by wallyworld> <juju-quickstart:Fix Released by frankban> <juju-quickstart (Ubuntu):New> <juju-quickstart (Ubuntu Trusty):New> <https://launchpad.net/bugs/1306537>15:56
natefinchrick_h_: ahh that may have been what I was thinking of16:04
perrito666natefinch: alexisb I need to step off for a moment, I did not manage to fix the upgrade issue (I did nevertheless manage to break part of my env) Ill be back later but if anyone else wants to take a look he/she is welcome16:56
bachi sinzui, are you running jenkins for any go projects?18:54
sinzuibac no. which ones interest you18:55
ericsnownatefinch: ping19:00
natefinchericsnow: coming19:00
perrito666back19:19
bodie_anyone clear enough on the State.Caller interface to tell me where to look for the point where I can fake it in my API client test?19:20
bodie_basically I just want to have st.caller.Call("WatchActions", blah blah) use my mocked-up function instead of the real one19:21
bodie_however, since caller isn't an exported field of uniter.State, I'm not sure where I can poke the new function (I'm using testing.Patch to replace the function)19:22
bodie_the example I'm working from is state/api/usermanager/client_test.go but that appears to use a slightly different call technique19:22
perrito666how do I specify to upgrade-juju --version (usinglocal provider) my own stream?19:38
perrito666I want to go to 1.19.4 from 1.18.1.119:38
sinzuiperrito666, local provider ignores streams, it is impossible...we reported the bug months ago19:44
perrito666sinzui: mmpf19:45
sinzuiperrito666, we have test streams in aws, hp, and joyent that you can use19:46
perrito666sinzui: its ok, I have my own ;) I just thought that reproducing this bug was possible locally19:48
sinzuiperrito666, If you have both juju's installed, I think you can use the lower juju to upgrade (downgrade)19:49
sinzuiperrito666, one report of this bug was about local host I thought19:49
sinzuiperrito666, since local ignores streams, and only provides a crippled subset of archs, that the machine had two version of juju installed...19:50
sinzuiperrito666, and since few people know about the need to strictly define $PATH, the two jujus can mix19:50
lazypowerCan we call on user-data scripts / cloud init customizations at any time during the boot process? i dont see any documented constraints i can pass to populate user data on my cloud provider.20:11
lazypowers/boot/provisioning20:11
natefinchlazypower: no20:19
waiganimenn0: morning :)20:19
natefinchlazypower: we don't expose that20:19
lazypowernatefinch: ok, so if we cant modify user data, can we specify custom AMI's then? or are we bound to the official ubuntu images?20:19
lazypowerthe idea behind this is to eliminate bloating charms install hooks installing a-z toolkits that will be required on every machine for compliance.20:20
lazypowerwait, we do this. i foudn an AU post on it.20:21
lazypoweror rather, we did but dont now20:21
lazypowerhttp://askubuntu.com/questions/84333/how-do-i-use-a-specific-ami-for-juju-instances20:21
natefinchlazypower: yeah, right now it's not implemented20:22
lazypowerok, thats all i needed. Thanks natefinch20:22
* lazypower doffs hat20:22
natefinchwelcome20:23
wallyworldnatefinch: did anyone on your team make any progress on bug1333682?20:38
mbruzekHey guys is there a way to set environment variables for the local machine/units in Juju?20:38
alexisbwallyworld, I believe that is the one perrito666 is working on20:39
alexisblet me go verify the number20:39
mbruzekI was reading the documentation that describes changing the environment, but I am specifically interested in environment variables.20:39
wallyworldalexisb: ok, thanks. the bug is still marked as triaged20:40
wallyworldrather than in progress20:40
lazypowermbruzek: doesnt juju set-environment do that?20:40
alexisbwallyworld, yeah perrito666 has been looking at that one, but he will have to update you on progress I am not sure how far he has gotten20:40
lazypowermbruzek: https://juju.ubuntu.com/docs/commands.html -- see: set-env20:40
mbruzeklazypower, The set-environment command will set a configuration option to the specified value.20:41
lazypowerah, since we use environment interchangeably in our jargon, i see what you're saying. Thats wrt your juju env, not the bash env correct?20:41
wallyworldset-env only sets juju config values20:41
mbruzekI think that means that it will set a config option in our environments.yaml20:41
wallyworldi'm not sure about how to set environment variables20:41
wallyworldno, it will set a config value in a running deployment20:42
wallyworldenvironments.yaml is only used when first bootstrapping20:42
wallyworldafter that, juju maintains a database on the state servers which contain the system config, plus also a local jenv file with certs and things like that20:43
wallyworldmbruzek: a perhaps crappy solution is to use juju run20:43
wallyworldthat command runs a given set of commands on each machine/unit20:44
wallyworldthe script that can be run could include export FOO=bar20:44
natefinchyeah, that was my thought20:44
wallyworldi think that's the only way at the moment20:45
mbruzekOK thanks wallyworld and natefinch for responding20:45
wallyworldgood luck, ping back if you get stuck20:45
rick_h_alexisb: wallyworld I saw him reply in one of these channels, looking for this comment on progress20:47
rick_h_alexisb: wallyworld it was basically, someone can have fun with it tonight20:47
wallyworldrick_h_: you talking about bug 13333682?20:47
rick_h_oh hmm, that was some 4hrs ago so maybe there's more20:48
rick_h_wallyworld: an upgrade issue?20:48
rick_h_perrito66| natefinch: alexisb I need to step off for a moment, I did not manage to fix the upgrade issue (I did nevertheless manage to break part of my env) Ill be back later but if anyone else wants to take a look he/she is welcome20:48
wallyworldrick_h_: yeah, the panic20:48
rick_h_was the last thing I saw related in irc20:48
rick_h_fyi20:48
wallyworldrick_h_: great, thank you20:48
alexisbrick_h_, I think perrito666 has since come back, but no sure if he is still around20:49
alexisbeitherway, wallyworld I would consider that bug fair game20:49
alexisbit needs to get resolved20:49
alexisband it is perrito666 eod20:50
wallyworldalexisb: yes indeed. i just wanted to see where others may have got to before i started my day20:50
rick_h_alexisb: yea, I hadn't realize how long ago that was20:50
rick_h_time flies when you're fixing bugs20:50
wallyworldalexisb: this 1.19 release sure is cursed :-(20:50
wallyworldhopefully this will be the last blocker20:51
* alexisb keeps her fingers crossed20:53
=== automate_ is now known as automatemecolem_
perrito666alexisb: looking for me?21:05
alexisbperrito666, wallyworld was looking for an update on the bug given his team will be working the "night" shift on it21:06
alexisbperrito666, can you please touch base with wallyworld ?21:06
wallyworlds/team/wallyworld :-)21:06
perrito666wallyworld: let me touch your base21:09
perrito666:p21:09
wallyworldooooh21:09
* wallyworld braces21:09
alexisblol21:14
* perrito666 touched bases with wallyworld in priv21:14
perrito666ok I dissapear, Ill be back later21:17
perrito666wallyworld: anything else before I leave?21:17
wallyworldperrito666: nah, thanks, enjoy your evening. you can touch my base anytime :-)21:18
perrito666wallyworld: http://www.youtube.com/watch?v=z13qnzUQwuI21:18
wallyworldlol21:18
perrito666bye21:19
sinzuiwallyworld, I will be happy for you to declare the bug not a regression. I can release what we have while this be is fixed for the next release21:21
alexisbalrighty all, I am headed into town21:21
alexisbI will check back in later this evening, if you need me before then email or call my cell21:22
wallyworldsee ya21:22
=== alexisb is now known as alexisb_bbl
wallyworldsinzui: i am still ramping up but there's a line in the bug comment which says "So potentially it is a different bug, which is that 1.19 is actually *removing* the line that used to be there"21:22
wallyworldif that's the case, then we do have a problem it seems21:22
sinzuiI defer to your judegment21:23
=== mwhudson-bip is now known as mwhudson
=== hatch__ is now known as hatch
=== makyo_ is now known as Makyo
bodie_menn0, I really want to avoid redundancy at high time cost in these tests, we have a meeting with Mark approaching Friday and we're really trying to push the Actions down through these layers to the RunHook call21:41
bodie_I understand your concern over the test coverage, but I think the api client methods here should really only be tested as far as their responsibility goes, I'm not positive we need to add redundancy here21:42
bodie_e.g., the StringsWatcher is being checked for duplication at the State level; therefore, if duplicates are coming in, it seems that would be an issue with the st.call() method21:44
bodie_which itself is being exercised elsewhere21:44
menn0bodie_: I think we're misunderstanding each other. I'm not talking about anything particularly heavyweight.21:47
menn0bodie_: I'm just interested in seeing tests that hit the error handling lines thats aren't currently being tested in state/api/uniter/unit.go:WatchActions21:47
bodie_yeah, I was just discussing with jcw4 -- that function variable could be returned by the st.call() method21:48
menn0specifically 423, 426 and 43021:48
menn0bodie_: I'll whip up a quick example of what I mean ... it won't take long21:48
bodie_we spent some time trying to emulate the usermanager Patch technique, but we were having trouble I think since we weren't using the function var as you'd mentioned21:49
menn0bodie_: this is what I'm thinking: http://paste.ubuntu.com/7697305/22:01
menn0untested but should be close22:01
thumperfwereade: still around?22:02
menn0bodie_: saw your comments about the time pressure you're under. Feel free to leave this bit until later if need be.22:03
bodie_thanks, I think this should be pretty straightforward to implement :)22:03
bodie_menn0, I was actually thinking of simply inserting a var call = ... which is then called by the existing st.call() function -- thus requiring no refactor22:04
bodie_any reason not to do so?22:04
bodie_besides being horribly lazy...22:04
menn0bodie_: that should be ok as well I think22:06
menn0bodie_: you'll probably still need to do something in export_test.go or the tests won't be able to get to call to patch it.22:08
bodie_yep, got that bit in22:09
bodie_thanks for the code example, btw!22:09
bodie_I'm actually really happy about how close we are to finally getting Actions pulled together, the last few inches can be a little frustrating at times22:10
=== tvansteenburgh1 is now known as tvansteenburgh
bodie_and pr 141 updated23:26
bodie_menn0, would much appreciate a clean bill of health ;)23:26
menn0bodie_: in a call... should be done soon23:28
wallyworldsinzui: i have a theory as to what's happening. it's only a guess based on reading the code. i will make a trivial change which may help but i cannot be certain it will definitively fix things https://bugs.launchpad.net/juju-core/+bug/1333682/comments/523:37
_mup_Bug #1333682: upgrading 1.18 to 1.19 breaks agent.conf <panic> <upgrade-juju> <juju-core:In Progress by wallyworld> <https://launchpad.net/bugs/1333682>23:37
menn0I wonder how much work will be required to support this architecture? http://www.engadget.com/2014/06/23/russian-government-avoids-intel-amd-chips-for-baikal/23:44
mwhudsonwell it's a cortex a5723:44
mwhudsonso once it's booted you should be ok...23:45
wallyworldthumper: you got time for a trivial review? critical fix for 1.19.4 release https://github.com/juju/juju/pull/15523:57

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