/srv/irclogs.ubuntu.com/2014/03/19/#juju-dev.txt

davecheneyworker/instancepoller/aggregate.go:67:22: error: reference to undefined identifier ‘ratelimit.New’ bucket := ratelimit.New(gatherTime, 1)00:21
davecheneyi have the latest github.com/juju/ratelimit00:21
bodie_same test failure on my part again00:25
bodie_http://paste.ubuntu.com/7117154/00:26
bodie_hrm00:26
bodie_broken pipe00:26
waiganidavecheney: godeps -u dependencies.tsv00:33
=== thumper-afk is now known as thumper
thumperwallyworld_: the reason we don't use version.readSeries is because it conflates the host with what we are going to start using tools00:46
wallyworld_ok00:46
wallyworld_is there no way to avoid "some-series"00:46
thumpersure, can use "precise"00:46
thumperhowever00:46
thumperin order for that method to work correctly, they need to pass in series00:47
thumperso it should use that when it happens00:47
thumperthat function is unused as yet00:47
wallyworld_ok00:47
wallyworld_just make sure you tell them.....00:47
thumperack00:47
thumperdavecheney: ping00:55
thumperdavecheney: I'm getting the same failure for juju-mongodb that I was getting for mongodb-server on power00:55
thumperit seems to think there is no journal present00:55
thumperis mongod changing the user from root?00:56
thumperdavecheney: you had the local provider working, did you do anything special for mongod?00:58
thumperdavecheney: I want to check in prior to filing a bug01:00
thumpero/ axw01:00
axwhey thumper01:00
davecheneythumper: all I did was the symlink01:03
davecheneyto be fair01:03
davecheneytests don't pass on ppc64el01:03
thumperdavecheney: I get it failing to even start01:03
thumperdavecheney: complaining about no journal01:03
* thumper does an update01:04
thumperlets see if that changes anything01:04
thumpernope01:05
davecheneywhaaaaaaaaaaaa ?01:07
davecheneywhen you deploy the local machine01:07
davecheneysorry, bootstrap local env01:07
thumperumm... not long ago01:07
davecheneyworker/instancepoller/aggregate.go:67:22: error: reference to undefined identifier ‘ratelimit.New’ bucket := ratelimit.New(gatherTime, 1)01:07
thumperI grabbed my branch01:07
davecheney^ any idea how to fix this one01:07
thumperrebuilt01:07
davecheneythen I can try to have a look01:07
thumperrun godeps?01:08
davecheneyubuntu@winton-02:~/src/launchpad.net/juju-core$ go get -u -v github.com/juju/ratelimit01:08
davecheneygithub.com/juju/ratelimit (download)01:08
davecheneygithub.com/juju/ratelimit01:08
davecheneywhat ?01:08
davecheney\01:08
davecheneyhead isn't buildable /01:08
davecheneywhere is the source for godeps ?01:08
thumperlaunchpad.net/godeps01:08
davecheneysorry01:08
davecheneydumb question01:08
davecheneyubuntu@winton-02:~/src/launchpad.net/juju-core$ godeps -u github.com/juju/ratelimit01:09
davecheneygodeps: cannot parse "github.com/juju/ratelimit": open github.com/juju/ratelimit: no such file or directory01:09
davecheneyoh for fuxcks sake01:09
davecheneywhy the fuck doesn't it default to something sane01:10
davecheneyubuntu@winton-02:~/src/launchpad.net/juju-core$ pstree -p | grep -C2 mongo |              |-{jujud}(31735) |              `-{jujud}(31742) |-mongod(31700)-+-{mongod}(31705) |               |-{mongod}(31706) |               |-{mongod}(31707) |               |-{mongod}(31708)01:14
davecheneyurgh01:14
davecheneythumper: bzr up'd01:14
davecheneyand apt-get updated01:14
davecheneystill works for me01:14
davecheneythumper: have you removed the mongodb-server package ?01:14
thumperdavecheney: no01:14
davecheneythat'll be the problem01:15
thumperwhy?01:15
davecheneyfirst in the path maybe ?01:15
thumpernah, full path specified01:15
davecheneyyes, but /usr/bin/mongod => mongodb-server <-- borken!01:15
davecheneythumper: hang on, let me test that scenario01:18
thumperdavecheney: my upstart script specifies /usr/lib/juju/bin/mongod01:19
davecheneythumper: i'm still trying to reproduce the failure01:19
* thumper is reading mongo source files ...01:20
davecheneythat'll only make it worse01:20
hazmatdavecheney, my eyes are bleeding already01:22
hazmatdavecheney, the assert seems to be from here.. https://github.com/mongodb/mongo/blob/v2.6/src/mongo/util/logfile.cpp#L24101:22
davecheneythumper: i've just bootstrapped01:23
davecheneyroot     32316  2.1  0.5 445460 43088 ?        Ssl  01:19   0:00 /usr/bin/mongod --auth --dbpath=/home/ubuntu/.juju/local/db --sslOnNormalPorts --sslPEMKeyFile /home/ubuntu/.juju/local/server.pem --sslPEMKeyPassword xxxxxxx --bind_ip 0.0.0.0 --port 37017 --noprealloc --syslog --smallfiles01:23
davecheneyworked fine01:23
hazmathmm01:23
hazmatdavecheney, are you on the same emulation thingy thumper is on?01:23
thumperdavecheney: so what is different for you and me?01:23
thumperthis seems to be an os alignment bug01:23
bodie_I could really use a second pair of brain cells on this01:24
davecheneyii  juju-mongodb                2.4.9-0ubuntu2     ppc64el            MongoDB object/document-oriented database for Juju01:24
davecheneyii  mongodb-server              1:2.4.9-1ubuntu1   ppc64el            object/document-oriented database (server package)01:24
thumperhazmat: davecheney is on a different machine01:24
davecheneybodie_: sure, mine are lonley01:24
bodie_it's in TestWriteFailure in environs/sshstorage01:24
bodie_http://paste.ubuntu.com/7117154/01:24
bodie_no idea what's supposed to happen, or what's going wrong, except the broken pipe bit01:25
thumperdavecheney: can I get you to try my branch?01:25
bodie_replicable01:25
bodie_it's on a remote01:25
davecheneythumper: sure01:25
thumperlp:~thumper/juju-core/juju-mongodb01:25
davecheneybodie_: you might ahve to turn up the debug on the remove sshd01:25
davecheneybodie_: my guess is /bin/ssh is01:25
thumperdavecheney: build it, and make sure that juju-mongodb is installed01:25
davecheneya. crashing01:25
davecheneyb. being hung up on01:25
thumperbootstrap a simple local provider01:25
thumperdavecheney: and it should start with no tweaking at all01:26
davecheneyOT: hazmat where can I get a trusty install image that is < 2.5 Gb01:26
thumperdavecheney: in theory01:26
bodie_could it be caused by disabling root login?01:26
davecheneybodie_: absolutely01:26
bodie_hm01:27
davecheneycheck /var/log/secure.log01:27
davecheneyor audit.log01:27
davecheneyor wherever the AUTH syslog target points too01:27
davecheneybodie_: the bug is that that test is discarding the output of stderr01:28
hazmatdavecheney, hmm.. i just use cloud-images most of the time.. their minimal and small.. but you mean like a boot installer.. if you need super small and have the bandwidth.. there's always net install01:28
davecheneyhazmat: i just want to download it and try it01:29
davecheneydo I really need a 2.5 Gb iso ?01:29
bodie_hrm ? ... I'm redirecting stderr into the test output..  so you're saying it didn't go in because it was being discarded in the first place?01:29
hazmatdavecheney, http://cdimage.ubuntu.com/daily-live/current/ look like 950mb01:29
davecheneyhazmat: ta, that'll do nicely01:29
hazmatdavecheney, kvm with cloud image.. gets you down to even smaller01:29
davecheneybodie_: by default stderr and stdout go to dev null unless otherwise requested01:30
hazmatdavecheney,  240mb http://cloud-images.ubuntu.com/trusty/current/01:30
davecheneyhazmat: ta muchly01:30
hazmatdavecheney, bottom of that page for the raw downloads01:30
davecheneymuch better solution01:30
bodie_I called it like so: go test ./... > output.txt 2>&1 &01:30
hazmatdavecheney, also.. virtualbox images here.. http://cloud-images.ubuntu.com/vagrant/trusty/current/01:30
davecheneybodie_: this isn't something you've done01:31
bodie_ok01:31
davecheneythis is a bug inside the test code01:31
davecheneyhazmat: a bounty of resources01:31
davecheneyhazmat: that error01:31
davecheneyda fuq01:31
wallyworld_thumper: pingy01:31
davecheneythat isn't a journal problem01:32
davecheneythis is somethig to do with the 64mb pages option01:32
thumpercoming01:32
davecheneythumper: this may be the problem01:32
davecheneyLinux winton-02 3.13.0-8-generic #28-Ubuntu SMP Mon Feb 17 08:22:39 UTC 2014 ppc64le ppc64le ppc64le GNU/Linux01:32
davecheneythumper: what you got ?01:32
davecheneyi reckon you've got a different kernel01:32
thumperuname -a?01:32
davecheneythumper: yup01:32
thumperLinux rockne-02 3.13.0-15-generic #35-Ubuntu SMP Mon Mar 3 15:56:08 UTC 2014 ppc64le ppc64le ppc64le GNU/Linux01:33
davecheneyhmm01:33
davecheneyok, that is another angle to try01:33
waigani_thumper: hangouts is not loading for me :(01:39
waigani_wallyworld_: you lot still in hangout? I can't even load https://plus.google.com/01:41
wallyworld_waigani_: yeah, we're here01:41
waigani_wtf?01:41
waigani_:(01:41
wallyworld_talk about you :-P01:41
davecheneywaigani_: thumper is using the internet01:41
davecheneyyou'll have to wait your turn01:41
wallyworld_lol01:42
waigani_lol - bastards01:42
thumperdavecheney: can you run 'getconf PAGESIZE'01:49
thumperdavecheney: I get 6553601:50
davecheneyubuntu@winton-02:~$ getconf PAGESIZE01:50
davecheney409601:50
davecheneybingo01:50
wallyworld_i get 4096 also01:50
thumperarse01:50
davecheneythumper: https://docs.google.com/a/canonical.com/spreadsheet/ccc?key=0Aje1qBKEwuLVdDIxdG9NeWF2REJjemdLbllzbGotamc&usp=drive_web#gid=001:50
wallyworld_thumper: patch getconf :-)01:50
davecheneyline 1001:50
thumperwallyworld_: on rockne?01:50
wallyworld_yeah01:51
davecheneythumper: wallyworld_ the 4k/64k thing is provided by the kvm emulation01:51
davecheneyit's totally possible that different vm's get different views of the underlying hardware01:51
wallyworld_but why does a log funtion vare?01:51
wallyworld_care01:51
wallyworld_we could just patch it to see if it works as an experiment01:52
davecheneywallyworld_: simpler/safer just to apt-get update a new kernel image01:52
wallyworld_davecheney: what does your uname -r say?01:53
davecheney3.13.0-8-generic01:53
davecheneyi'm a week or two behind01:53
wallyworld_i wonder that thumper's is?01:53
wallyworld_what01:53
davecheneywallyworld_: check scrollback01:54
wallyworld_ah. -1501:54
davecheneywallyworld_: i thnk that assert is checking that the log file is aligned to the os page size01:55
davecheneyprobably because they use mmap a lot01:55
davecheney^ just a guess01:55
davecheneybut probably not totally wrong01:55
wallyworld_makes sense i guess01:55
davecheneymongo does a lot of dumb shit for performance without proof that the simple way was a problem to begin with01:55
wallyworld_seems like they could do better though01:55
wallyworld_s/mongo does a lot of dumb shit for performance without proof that the simple way was a problem to begin with/mongo does a lot of dumb shit01:56
davecheneyfassert( 16142, _fd >= 0 );01:56
davecheneywhat the bollocks is this ?01:56
davecheneyevery assert has a unique number01:56
davecheneybut this isn't a constant ?01:57
thumperdavecheney: it'll be a number they can grep the source for :-)01:57
wallyworld_fassert(42, 'the meaning of life')01:57
* thumper takes a stab in the dark01:57
davecheneythumper: i hope youre joking01:57
wallyworld_it's mongo, of course not01:58
* thumper guesses not01:58
davecheneyfassert( 2 , 2 != 2 ) // totally unique, bro01:58
waigani_chrome does not load plus.google.com anymore, yet firefox does ?!? You'd think, if anything, it would be the other way around01:58
thumperdavecheney: can you try my branch?02:04
thumperI was told that there was a second VM for me, but it looks like not...02:04
thumperpermissing denied (public key)02:05
thumperwallyworld_: added cloudinit test for trusty state server02:27
wallyworld_thanks :-)02:27
thumpernp02:27
davecheneywallyworld_: bug: 2014-03-19 03:04:00 DEBUG juju.environs.simplestreams simplestreams.go:995 metadata: &{map[com.ubuntu.juju:14.04:ppc64:{ 1.17.6.1 ppc64   map[20140319:0xc21042bde0]} com.ubuntu.juju:12.04:ppc64:{ 1.17.6.1 ppc64   map[20140319:0xc21042b720]}] map[] Wed, 19 Mar 2014 03:03:55 +0000 products:1.0 com.ubuntu.juju:released:tools}03:04
davecheneythumper: root     11980  0.7  0.4 1076640 37628 ?       Ssl  03:04   0:00 /usr/lib/juju/bin/mongod --auth --dbpath=/home/ubuntu/.juju/local/db --sslOnNormalPorts --sslPEMKeyFile /home/ubuntu/.juju/local/server.pem --sslPEMKeyPassword xxxxxxx --bind_ip 0.0.0.0 --port 37017 --noprealloc --syslog --smallfiles03:04
davecheneybranch looks fine, LGTM03:04
davecheneyurgh, bugs in the server package03:04
davecheneyRemoving mongodb-server (1:2.4.9-1ubuntu1) ...03:05
davecheneyarg: remove03:05
davecheneymongodb stop/waiting03:05
wallyworld_davecheney: me not understand?03:05
davecheneythe middle line03:05
davecheneysome output that shouldn't leak to the user03:05
wallyworld_that's debug03:05
* thumper goes to drink coffee03:05
thumperdavecheney: thanks for testing03:05
davecheneythumper: looking good03:06
davecheneysorry your vm has brain issues03:06
davecheneyttps://bugs.launchpad.net/ubuntu/+source/mongodb/+bug/129445503:06
_mup_Bug #1294455: mongodb-server leaks debug information during remove <mongodb (Ubuntu):New> <https://launchpad.net/bugs/1294455>03:07
davecheneynot important03:07
bodie_so I tried upping the log level on sshd to see about that broken pipe, and it caused a bunch of other test failures for some reason.03:07
bodie_I guess my next step is to try a 12.04 vm, and if that doesn't work, i don't know03:08
davecheneybodie_: you said you disabled root login03:08
davecheneythat is probably the root cause03:08
bodie_yeah, still breaks with root login enabled03:08
davecheneyok03:08
davecheneybodie_: are you canonical03:08
davecheney?03:08
bodie_contracting w/ canonical, so, sorta03:08
bodie_hai o/03:08
davecheneyright, you have my sympathies03:08
wallyworld_davecheney: as soon as outgoing ssh and access to port 10170 is sorted out, you can pull trunk and should be able to bootstrap ec2, hp cloud etc environments03:09
davecheneyi have no idea how you have managed to get yourself into this knot03:09
bodie_i suspect it's a reality tv show03:09
davecheneyi recommend a 12.04 vm03:09
davecheneythat is what the landing bot users03:09
davecheneywallyworld_: OH CRAP, i forgot about the api port03:09
davecheneythis is a nightmare03:09
wallyworld_davecheney: i asked for the api port in the rt03:09
bodie_hey man, I'm getting paid to write Go and work from home.  I'LL.  TAKE.  IT.03:09
davecheneywallyworld_: could I try it now03:09
bodie_I just really want to get rolling.  the testing stuff is driving me #go-nuts.03:10
wallyworld_davecheney: you could, but it won't bootstrap cause it will get stuck on ssh03:10
wallyworld_unless your vm is special03:10
davecheneywallyworld_: could I bootstrap from my amd64 machine to a precise/386 image, or from an armhf machine to an amd64 precise image03:10
davecheneythat is effectively the same thing03:10
wallyworld_yes03:10
wallyworld_yes you could03:10
davecheneygood, i'll test that while I wait03:10
wallyworld_so long as the tools are there03:10
wallyworld_or, so long as they are packaged and available locally03:11
davecheneywallyworld_: i'll choose a version that I know tools exists for03:11
davecheneybodie_: same, https://twitter.com/davecheney/status/44607533336036147203:11
wallyworld_davecheney:  if you have the tarballs, you can use the --metadata-source bootstrap are and they will be uploaded03:11
wallyworld_arg03:11
wallyworld_just fyi03:12
davecheneywallyworld_: whoa there big fella, i'm not that keen03:12
axwdavecheney: I came to the realisation the other day that I basically never wear shoes anymore03:12
axwmy feet never felt so free03:12
axwthumper: https://codereview.appspot.com/77340046 when you're not too busy03:27
axwI'd kinda like to get it in for 1.17.x so we don't have backwards compat nightmares03:28
* axw goes to pick up his daughter03:28
thumperkk03:31
* thumper will look now03:31
davecheneywallyworld_: I don't thnk we should/need to ask for a firewall hole for 1701703:44
davecheneythat must be proxyable03:44
davecheneyand we should prxy it03:44
davecheneyit's http after all03:44
wallyworld_hmm, yeah03:45
davecheneyso the proxy will have to allow03:45
davecheneyCONNECT machine-0:17017 HTTP/1.103:46
wallyworld_17070 i think you mean03:46
wallyworld_i'll update the rt03:47
davecheneyyes03:47
davecheneyi don't know what i'm talking abouit03:47
davecheneyjsut kind of wildly stabbing at the keys03:47
thumperdavecheney: so, with my branch and your VM, did the local provider start and work with no tweaks?03:49
davecheneyyes03:50
thumper\o/03:50
=== vladk|offline is now known as vladk
thumperdavecheney: I've made your tweak suggestion03:50
davecheneyhang on, lemmie get some proof03:50
thumperdavecheney: I was kinda relying on us refactoring that code in the next six months due to other OS support03:50
thumperbut was a good call03:50
thumperso I changed it03:50
thumpero/ vladk03:50
vladkthumper: hi03:51
davecheneyO_o! http://paste.ubuntu.com/7117795/03:51
davecheneythumper: http://paste.ubuntu.com/7117798/03:51
davecheneywinning!03:51
thumperyeah baby, yeah!03:52
thumperdavecheney: make sure you write that one up for the end of day email!03:52
thumperwallyworld_: so for power -> ec2 we are just waiting firewall poking?03:52
wallyworld_thumper: believe so. of course my code will first first time, guarantee it03:53
thumpercoolio03:53
wallyworld_thumper: before we ship 1.18, i want to get my current branch in if possible, which is proper detection of supported arches on each provider, based on what images are available via simplestreams03:54
thumperwallyworld_: line it up03:54
wallyworld_thumper: still wip03:55
davecheneywallyworld_: root     11980  0.1  0.4 1076640 41212 ?       Ssl  03:04   0:05 /usr/lib/juju/bin/mongod --auth --dbpath=/home/ubuntu/.juju/local/db --sslOnNormalPorts --sslPEMKeyFile /home/ubuntu/.juju/local/server.pem --sslPEMKeyPassword xxxxxxx --bind_ip 0.0.0.0 --port 37017 --noprealloc --syslog --smallfiles03:56
davecheneyout of the box03:56
davecheneynoice03:56
wallyworld_davecheney: you mean the password being logged?03:57
davecheneywallyworld_: eh ?03:58
wallyworld_davecheney: sorry, i didn;t grok your paste03:58
davecheneymongo obscures the passwd on the cmdline itself03:58
davecheneyi didn't do that03:58
davecheneymarcoceppi: what would it take to promulgate a trusty/mysql charm ?04:00
davecheneythumper: does debug-log work for the local provider ?04:05
thumperdavecheney: not until it is handled over the api04:06
davecheneyubuntu@winton-02:~/src/launchpad.net/juju-core$ juju debug-log04:06
davecheneyWarning: Permanently added 'localhost' (ECDSA) to the list of known hosts.04:06
davecheneyPermission denied (publickey).04:06
davecheneyERROR rc: 25504:06
davecheneyok04:06
thumperdavecheney: there is an all-machines.log04:06
davecheneyyeah, i just forgot04:06
thumpernp04:06
davecheneyubuntu@winton-02:~/src/launchpad.net/juju-core$ tail -f ~/.ju-bash: cannot create temp file for here-document: No space left on device04:06
davecheney^C04:06
davecheneyuh oh04:06
davecheneysomethign has gone batshit04:06
axwthumper: thanks, yeah I tested with local and canonistack - just about to test with azure04:07
davecheneyok cock04:08
davecheneyroot@winton-02:~# du -sh /var/lib/mongodb/*04:08
davecheney3.1G    /var/lib/mongodb/journal04:08
davecheney64M     /var/lib/mongodb/local.004:08
davecheney17M     /var/lib/mongodb/local.ns04:08
davecheney0       /var/lib/mongodb/mongod.lock04:08
davecheney4.0K    /var/lib/mongodb/_tmp04:08
davecheneymongo has gone batshit04:08
davecheneyoh hang on04:08
davecheneythis is the system mongo db04:08
davecheneynot outs04:08
davecheneyours04:08
davecheneyok04:08
davecheneyi'll just delete that04:08
thumperhaha04:08
davecheneyit probably is still batshit insane04:09
davecheneylemmie raise a bug for that04:09
* thumper tries to land that branch again04:09
davecheneyIf you're happy and you know it, land your branch ♬04:11
davecheneyroot@winton-02:~# du -sh /var/lib/mongodb04:14
davecheney8.0K    /var/lib/mongodb04:14
davecheneygreat, now I can't trigger the problem04:14
davecheneyasshole04:14
thumperdavecheney: branch landed04:29
=== vladk is now known as vladk|offline
dimiternmorning all07:38
dimiternmgz, jam, relatively quick review ? https://codereview.appspot.com/77340044/07:39
rogpeppemornin' all08:05
rogpeppedimitern: 1000 line diff is "relatively quick"? :-)08:05
axwmorning08:13
axwrelative to a 2000 line diff it is ;)08:14
dimitern:)08:16
dimiternrogpeppe, most of that are tests08:17
rogpeppedimitern: so we're not supposed to read tests as closely then? :-)08:18
dimitern:D08:18
rogpeppeaxw: hiya08:18
dimiterni'll remember that one08:18
rogpeppedimitern: i confess that i probably *don't* read tests as closely as production code.08:18
dimiternrogpeppe, well then ;) give it a try ? https://codereview.appspot.com/77340044/08:19
rogpeppedimitern: currently reviewing https://codereview.appspot.com/7750004508:20
dimiternrogpeppe, sure, np08:20
dimiternfwereade, so it turned out there *will be* a sprint in Malta after all.. just not for us ;)08:21
dimiternlast week of may for the apps & client guys08:21
axwI'd rather go to Malta than Las Vegas... hmm that is quite the first world problem08:22
fwereadedimitern, ha, yeah08:22
rogpeppelol08:22
davecheneyya'all are writing the the wrong Go application08:22
fwereadedimitern, I will continue to quietly agitate for malta sprints08:23
rogpeppeaxw: do we now have a valid environment configuration in the state from the word go now?08:39
axwrogpeppe: yup08:39
rogpeppeaxw: cool. we can probably simplify various pieces of agent logic because of that08:39
axwrogpeppe: yeah, there are definitely some things I haven't gotten around to simplifying. e.g. workers waiting for valid config08:40
rogpeppeaxw: that's what i was thinking of08:40
=== vladk|offline is now known as vladk
axwrogpeppe: it is still possible to get an invalid config *after* bootstrap, but that's very close to being fixed08:41
axwrogpeppe: there's a small amount of work required to ensure config changes in state are transactionally validated&updated08:41
vladkmorning all08:42
axwmorning vladk08:42
rogpeppeaxw: ah yes, because if you've got two set-environments concurrently, the combination might not be valid, i guess08:42
rogpeppevladk: hiya08:42
axwrogpeppe: yup. waigani has been working on fixing it. there's a bit more to go, but it's still racy for the moment08:43
dimiternmgz, ping08:57
dimiternaxw, fwereade, rogpeppe, jam, i'd really appreciate a review so i can land https://codereview.appspot.com/77340044/09:03
=== Ursinha is now known as Ursinha-afk
rogpeppedimitern: sorry, still on that other review09:03
fwereadedimitern, I'll take a look09:03
axwabout to go afk, will take a look later if it's not reviewed09:04
dimiternfwereade, ta!09:04
=== Ursinha-afk is now known as Ursinha
rogpeppefwereade, jam: do you think we need to elide passwords from service-set configuration attributes in the log?09:24
fwereadedimitern, reviewed, let me know what you think09:38
dimiternfwereade, cheers, looking09:39
dimiternfwereade, i'm not quite following you on that one https://codereview.appspot.com/77340044/diff/1/agent/agent.go#newcode13509:41
dimiternfwereade, how do you suggest to improve the doc comment?09:42
fwereadedimitern, so, we've got a global mutex for config changes09:42
dimiternfwereade, I agree it's not perfect, but it's a step in the right direction09:42
dimiternfwereade, yeah09:42
fwereadedimitern, right, yeah, as I say prgress not perfection09:42
fwereadedimitern, just add a note to configMutex explaining the situation if there isn't already one09:43
dimiternfwereade, that it's used to guard against modifying a created config?09:43
fwereadedimitern, that it sort of implies a singleton config, but all we really have is an accidental-singleton config09:44
dimiternfwereade, ok, got it09:45
jam1rogpeppe: can I get a follow up review on: https://codereview.appspot.com/76120044/ I simplified it09:45
rogpeppejam1: looking09:45
rogpeppejam1: what was the problem with my suggested (much simpler still) approach?09:48
jam1rogpeppe: the only difference is I use package vars (that I can change in a threadsafe manner), and do some logging.09:49
rogpeppejam1:  utils.OverrideGOMAXPROCSFuncs seems ugly to me09:49
rogpeppejam1: and it doesn't seem necessary09:49
rogpeppejam1: i'd prefer to keep mocking inside package boundaries when reasonable to do so09:50
jam1rogpeppe: so the alternative is to make them public variables, which doesn't seem great, vs a public function to set them.09:50
jam1rogpeppe: how do you suggest telling if GOMAXPROCS was called? by calling it once to force it to a given value, and then calling it again to observe that the runtime has changed?09:50
rogpeppejam1: we could use the approach already used inside cmd/jujud: var useMultipleCPUs = utils.UseMultipleCPUs09:51
jam1(runtime.GOMAXPROCS(1); run the agent; finalN := runtime.GOMAXPROCS(0); c.Assert(finalN, gc.Equals, 2) ) ?09:51
rogpeppejam1: (see newDeployContext for an example)09:52
jam1fairy nuff09:52
jam1we miss a bit of end-to-end of a test, but we do test the two layers09:52
axwfwereade: I reworked the DistributionInstances CL. I'm now looking at reworking (replacing) the UnitAssigner one. Based on our discussion last night, I'm going to add a method, SupportsUnitPlacement, to the new EnvironCapability interface that wallyworld introduced09:52
dimiternfwereade, re https://codereview.appspot.com/77340044/diff/1/agent/agent.go#newcode17609:53
jam1rogpeppe: TBH I don't really give a ****, I just want GOMAXPROCS getting called.09:53
dimiternfwereade, the _DELETE_ key is used to specify values to delete09:53
axwfwereade: then I'll move EnvironCapability into state, and check it during AddMachine/Unit.AssignTo*09:53
fwereadeaxw, I'm going to pre-send a single comment on one of your reviews, please read it and ping me :)09:53
rogpeppejam1: yeah, sorry. i just didn't like the complexity i saw there.09:53
axwfwereade: sure09:53
axwNOT LGTM? ;)09:54
rogpeppejam1: particularly as it cluttered the public interface of utils09:54
fwereadeaxw, ;p09:54
fwereadedimitern, yeah, and it makes me sad09:54
rogpeppejam1: FWIW your test wasn't properly end to end either09:54
fwereadedimitern, it feels likewe're kind of abusing that Paramsstruct because it has some fields that overlap with what we really want09:54
dimiternfwereade, initially I tried having "" to signal delete, but it's not quite enough if you just need to add/set an empty field09:55
fwereadedimitern, it seems like it'd be clearer and less vulnerable to hilarious screwups to use a different struct for the migrate func09:55
dimiternfwereade, ah, you're saying we need a different struct than AgentConfigParams ?09:55
fwereadedimitern, eg changing tag/nonce is likely to be fatal09:55
axwfwereade: why would StateServer not be true for new state servers? are you thinking about repurposed machine agents?09:56
dimiternfwereade, *any* reckless change is likely to be fatal :)09:56
fwereadedimitern, granted, but I don;t see much reason to allow changes that basically can't ever make sense09:56
fwereadeaxw, the trouble is that MachineConfig.StateServer really means MachineConfig.Bootstrap IIRC09:57
fwereadeaxw, maybe everything already ignores StateServer if passed into StartInstance?09:57
axwfwereade: it's only used in environs/cloudinit09:58
dimiternfwereade, ok, what then, to summarize? change the params struct and remove some of the things you can change? or just change the struct09:58
fwereadeaxw, if so that's sort of ok but still very vulnerable to accidental screwups09:58
fwereadedimitern, wait, was that struct new in that CL? I thought it was repurposed from creation-time09:58
fwereadedimitern, I think we want a separate struct09:59
dimiternfwereade, AgentConfigParams was chosen because it fits nicely with the NewAgentConfig() taking params and constructing one09:59
fwereadedimitern, but maybe I missed something?09:59
fwereadedimitern, yeah, my contention is that they're different jobs and want different params09:59
dimiternfwereade, yeah, but if we're going to have mostly the same fields?10:00
fwereadedimitern, stuff like "" meaning "leave alone" in one context, and "set to empty" in another, etc10:00
dimiternfwereade, ok, I'll look into it and repropose10:00
fwereadedimitern, how many fields are you actually changing though?10:00
dimiternfwereade, potentially DataDir, LogDir, Jobs and Values10:01
fwereadedimitern, I'd really prefer a struct with those fields (and a separate DeleteValues field, rather than a magic key)10:01
dimiternfwereade, changing DataDir is as dangerous as changing Tag or Nonce, but it's required for this migration10:01
dimiternfwereade, will do10:02
fwereadedimitern, understood, this is a sharp knife we're building10:02
axwfwereade: I was thinking I could change the DistributionInstances code to return the instances for state server machines. You still need to know whether it's going to be a state server at provisioning time (I had planned to use MachineConfig.StateServer to decide whether to do this)10:02
fwereadeaxw, I think we will know that, but we don't currently express it well10:03
axw... because instances can't be moved between Cloud Services later10:03
fwereaderogpeppe, can I get your input on this discussion with axw? see comments in https://codereview.appspot.com/73910043/ and discussion here10:03
axwfwereade: alternatively, base it on the jobs in state for the machine being provisioned10:03
rogpeppefwereade: looking10:03
fwereadeaxw, yeah, ISTM that the DistributionInstances path is the rightone10:03
axwfwereade: if MachineConfig.StateServer really means "BootstrapMachine" then I think that's the way to go10:04
fwereadeaxw, I think it pretty much does *but* you have done the most stuff to bootstrap lately, and I have only *read* that code rather than *actively worked with it* so your instincts may well be more finely tuned10:05
axwfwereade: that CL is going to have to change a bit anyway, because labels won't be useful anymore10:05
fwereadeaxw, if you can say for sure I'm wrong there then I will gladly defer to your superior perspective :)10:05
axwfwereade: it is now, but that's only because HA isn't merged yet :)10:05
fwereadeaxw, yeah, indeed :)10:06
axwfwereade: that code was all kinda circumspect10:06
axwI figured it'd have to change a bit10:06
fwereadeaxw, there's a whole load of stuff that sync-bootstrap has rendered irrelevant-shading-to-crazy, and it'd be lovely to get time to rationalise all that one day10:06
axwindeed10:07
fwereadeaxw, but while it's not actively hurting us it remains a copious-free-time deal ;)10:07
axwfwereade: does the EnvironCapability thing sound reasonable?10:09
axwI think it's basically what you were saying last night10:09
fwereadeaxw, that name sounds good, but I sorry, which CL?10:10
axwfwereade: none, I was referring to a message before10:12
axw<axw> fwereade: I reworked the DistributionInstances CL. I'm now looking at reworking (replacing) the UnitAssigner one. Based on our discussion last night, I'm going to add a method, SupportsUnitPlacement, to the new EnvironCapability interface that wallyworld introduced10:12
axw<axw> fwereade: then I'll move EnvironCapability into state, and check it during AddMachine/Unit.AssignTo*10:12
* fwereade hunts frantically for the EnvironCapability code10:13
axwfwereade: environs/interface.go10:14
axwfwereade: landed yesterday I think10:14
* fwereade sees it there and wonders how his grep failed10:14
axwfwereade: we could also use this for enabling/disabling the firewaller job, for example10:15
fwereadeaxw, yeah, that sounds sane to me10:15
fwereadeaxw, thanks10:15
axwgoodo10:15
axwthanks10:15
axwfwereade: out of interest, why would/should StateServer not affect cloudinit? won't that be the place for installing juju-mongodb/mongodb-server still?10:19
fwereadeaxw, it seemed rather better to let the new state servers know all their special info over the api connection rather than jamming important info into cloudinit (where other things can read it)10:21
axwI think that might be the only thing to do though, the rest requires a secure connection - so probably a InstallMongo flag would be more appropriate10:21
fwereadeaxw, also, it'd be nice to be able to promote a machine to a state server at some date in the future10:21
axwyeah, makes sense10:21
fwereadeaxw, even if we don't do so today10:22
axwfwereade: sure, except for on azure of course :)10:22
fwereadeaxw, quite so :)10:22
fwereadeaxw, goddamn azure :)10:22
axwheh10:22
fwereadeaxw, anyway I think the DistributionInstances thing is good *anyway*10:22
axwthe new manual provider10:22
fwereadeaxw, because we'll want to distrubute state servers where possible everywhere, right?10:23
axwyeah I think so too, I was just curious10:23
axwfwereade: yes it'll be useful for ec210:23
perrito666good morning everyone10:23
axwfwereade: bbl, gotta take care of my little one. thanks for the chat.10:24
fwereadeaxw, cheers10:24
jam1rogpeppe: https://codereview.appspot.com/76120044 updated10:26
jpdsjam1: Hey.10:32
jam1hi jpds10:32
jpdsWhat happened to "juju image-metadata" ?10:32
jam1jpds: it is 'juju metadata generate-image'10:32
jam1or 'juju metadata validate-image'10:32
jpdsAnd how do I get index and imagemetadata.json into my S3 stuff?10:33
jam1jpds: in 1.16 or in 1.17+ ?10:33
jam1We've been polishing it a bit in 1.1710:33
jpdsjam1: 1.16.10:33
jam1:(10:33
jpdsjam1: OK, so I have the stuff; where am I suppose to put it?10:34
jam1jpds: you haven't bootstrapped yet, correct?10:34
jpdsjam1: Trying to.10:34
jam1(in 1.17 you can juju bootstrap --metadata-source /path/on/local/disk) but that won't help you for 1.1610:34
jpdsExcellent.10:35
jam1I'm digging out 1.16 to see if I have answers for you10:36
jam1jpds: as a rough approximation, you need to put it somewhere preserving the directory structure (streams/v1/index.json) and then point "image-metadata-url=PATH_TO_ROOT"10:38
jpdsI'm just going to upgrade to 1.17.10:40
jam1jpds: works for me :)10:40
voidspacegrabbing a cuppa before standup10:43
jpdsjam1: It's still complaining that index file has no data for cloud.10:47
jam1jpds: do you have the backtrace of commands that you've run and their output?10:47
jpdsjam1: Yes.10:47
jam1You need to make sure that your "generate-image" command has the settings that match what you are bootstrapping.10:47
natefinchstandup10:48
jam1natefinch: thanks for the reminder, switching machines10:48
jam1brt10:48
rogpeppejam1: reviewed10:50
jammgz: poke10:51
dimiternfwereade, updated https://codereview.appspot.com/77340044/11:19
dimiternfwereade, should be ready to land now i think11:29
perrito666so, to what degree of poking am I allowed to go to obtain a review? :p11:33
* perrito666 starts mailing plastic fingers11:34
jamwallyworld: if you're around, any ideas why "juju bootstrap" would be trying to look for "com.ubuntu.cloud:server:12.04:i386" ?11:34
jamIs this a case of "if local Arch == i386, boot a machine with i386" ?11:34
jamThis is with released 1.17.511:34
jamso not trunk.11:34
wallyworldum11:34
jamwallyworld: this is custom image metadata, where the target arch should only contain amd6411:34
jambut the image metadata lookup fails with:11:35
jamindex file has no data for product name(s) ["com.ubuntu.cloud:server:12.04:i386"]11:35
wallyworldjam: is the client machine precise i386?11:35
jamwallyworld: I think we should add a line at startup of "juju" processes which logs version.Current11:36
wallyworldthat would be helpful11:37
wwitzel3natefinch: http://paste.ubuntu.com/7119308/11:37
fwereadedimitern, LGTM11:38
fwereadeperrito666, hassle everybody mercilessly11:39
dimiternfwereade, tyvm11:43
dimiternfwereade, and I did test it live again :)11:44
axwrogpeppe: thanks for the review. you're right about AS not being changeable, but I'm going to change the use of StateServer based on discussion with fwereade anyway11:48
axwrogpeppe: it'll unify some of the logic between state/non-state grouping, and it'll also be useful for ec2 AZs later11:49
axw(where we need to have a set of instances so we can manually distribute)11:49
perrito666fwereade: what a reckles advice :p11:53
rogpeppeaxw: sgtm11:54
wwitzel3rogpeppe: in the cmd/jujud/bootstrap_test.go , there are some tests to initBootstrapCommand, which calls InitializeState. That, after our changes from yesterday calls environs.New(envCfg). It works fine when running, but the tests are now failing with an "environment is not prepared" error from environs.New11:59
wwitzel3rogpeppe: any thoughts on either refactoring the code to make those tests not fail OR refactoring the tests so that the environment is prepared by the time environs.New is called?12:00
rogpeppewwitzel3: i think the tests *should* be passing config from a prepared environment12:01
rogpeppewwitzel3: if they're not, they need to be fixed12:02
wwitzel3rogpeppe: ok, so the testConfig getting passed in to initBootstrapCommand ?12:03
rogpeppewwitzel3: probably12:04
wwitzel3rogpeppe: or I guess, how would I ensure that the config being passed in is from a prepared environment? Is there an example of that in a test somewhere?12:05
wwitzel3rogpeppe: testConfig right now is just a a dummy.SampleConfig that gets run through the b64yaml helper.12:05
rogpeppemgz: ping12:52
rogpeppewwitzel3: you can get the prepared environment config from the dummy environment that is started up in most tests12:53
rogpeppefwereade, jam, mgz: could we talk about API addresses for a moment or two?12:53
fwereaderogpeppe, got a call in 7 mins, but if it's quick, sure12:53
rogpeppefwereade: https://plus.google.com/hangouts/_/canonical.com/juju-core ?12:54
rogpeppefwereade: might be quickest12:54
mgzrogpeppe: I'll be there12:55
rogpeppemgz: thanks, that's very useful13:10
mgzrogpeppe: that sounded good to me,13:10
mgzand hangouts hate me13:10
mgzso, carry on :)13:10
wwitzel3natefinch: I pushed tests for the initiateReplicaSet and some other minor fixes to my branch13:15
wwitzel3natefinch: I am still trying to figure out this environment not prepared stuff13:15
natefinchwwitzel3: ok, I just got back, I'll merge in and see what I can see13:17
ahasenackhi guys, https://bugs.launchpad.net/juju-core/+bug/1271144 is still happening, I added some log files to it13:29
_mup_Bug #1271144: br0 not brought up by cloud-init script with MAAS provider <cloud-installer> <landscape> <local-provider> <lxc> <maas> <regression> <juju-core:Fix Released by rogpeppe> <https://launchpad.net/bugs/1271144>13:29
ahasenackcan someone reopen the bug?13:29
bodie_morning fine fellas13:29
rogpeppeahasenack: i *thought* we'd fixed it13:30
sparkiegeekrogpeppe: so did we ;)13:30
ahasenackrogpeppe: I just tried with 1.17.5, still no br0 and lxc deployments to bootstrap fail13:30
rogpeppeahasenack: but it was very hard for us to test that our fix worked13:30
rogpeppeahasenack: because we don't have access to a maas to test on13:30
ahasenackrogpeppe: I reproduced it both with a real metal maas server, and with maas running on kvm13:31
rogpeppeahasenack: do you know which revno corresponded to 1.17.5 ?13:32
ahasenacklet me see if the branch is tagged13:32
ahasenackis juju-core still in lp? That's where I'm looking13:32
ahasenackrogpeppe: juju-1.17.5          242213:32
wwitzel3yeah, after the fix, I wasn't able to reproduce the error on my vbox maas13:33
ahasenackcurrent is 244313:33
ahasenackrogpeppe: we can help debug whatever you need13:33
ahasenackthat was just running juju tags, I'm assuming that is the official tag for 1.17.513:33
sparkiegeekwwitzel3: did you tear down and re-deploy each time?13:34
ahasenacker, bzr tags13:34
sparkiegeekwwitzel3: emminently reproducible here :)13:34
rogpeppewwitzel3: can you run with this?13:34
jamwwitzel3: a quick question, were you testing LXC on machine-0 or on one of the other machines?13:36
bodie_hmm...  i'm getting breakage on a fresh go get launchpad.net/juju-core13:39
bodie_log/syslog/config.go:228: method slConfig.CACertPath is not an expression, must be called13:39
bodie_and a few others13:39
bodie_I don't imagine broken code would get merged13:39
bodie_yeah tons of stuff is broken.  the only thing I can understand that might explain this is a bad connection....13:42
jambodie_: a fresh go get probably got updates from 3rd party branches that are newer than we are using13:43
jam(go get grabs the tip of all dependencies)13:43
jamwe have a dependencies.tsv to state what version we are using13:43
jamyou should be able to "go get launchpad.net/godeps", and then do "godeps -u dependencies.tsv"13:44
jamwhich should set your tree to be the exact version of dependencies we should use for building.13:44
bodie_tried that, and install still complained about tons of random breakage13:46
bodie_I just double-checked on my workstation to confirm, and nothing went wrong13:46
bodie_but it's totally reproducible on my remote13:46
bodie_starting to think the gopher gods have it in for me13:46
natefinchbodie_: godeps doesn't actually update your branches, it just tells you which ones are broken.  I'm not sure what the bzr command is to tell those branches to move to the right commit.13:47
jambodie_: *potentially* it is a different version of go libraries?13:47
jamnatefinch: godeps -u dependencies.tsv does the right thing *if* you've already downloaded the full histories13:47
jamit won't fetch new data13:47
jambut if you have it locally, it will set the branch to the right revision13:47
natefinchjam: ahh, so you need to bzr pull first, then run godeps13:47
bodie_but go get already bzr pulls doesn't it?13:48
jamnatefinch: well, potentially "go get -u" to do the recursive fetch of all dependencies, but that potentially overwrites any local commit you have in a dependency.13:48
jambodie_: "go get" or "go get -u" ?13:48
jam-u is needed to update in place13:48
natefinchbodie_: go get puts you at head... we need some non-head stuff13:48
bodie_go get -u -...13:48
bodie_well i'm just saying, if you already go got, godeps should have the latest bzr content13:48
jambodie_: right, go get -u launchpad.net/juju-core/... ; godeps -u dependencies.tsv should leave you in a working state13:49
natefinchjam: it seems like having head of all our branches not building is a big mistake for exactly this reason.  ideally godeps should only be needed for release branches that need older stuff13:49
jamnatefinch: you can't develop a 3rd party lib and never land it independently of trunk13:49
natefinchjam: oh, yeah, I see... if you're working on a feature branch, and the feature needs updates to external packages.... yeah ok. \13:50
bodie_I might have just screwed up here by starting off with go get -u -v when I never ran go get without -u13:50
bodie_giving this a try13:50
wwitzel3jam: I was deploying the lxc to machine-0 and I was doing a full destroy each time. I have it running now.13:51
natefinchjam: this is why Gustavo's versioning of packages is good... prevents exactly this problem by just making a new version that the new code references.13:51
jamnatefinch: right, the recent one is that axw has been improving gwacl, but that meant gwacl tip was incompatible with juju-core for a while.13:51
jamnatefinch: "ish"13:51
jamexcept Gustavo has broken us several times13:51
jambecause he *thought* his change was compatible13:51
niemeyerjam: have I?13:51
jamwhen it really wasn't13:52
jamniemeyer: you broke the test suite13:52
niemeyerjam: Really!?13:52
bodie_fight fight!13:52
jamwhen you added timeouts for mongo13:52
niemeyerjam: I'm now aware about that13:52
jambecause we were already doing timeouts in juju-core13:52
jamand your timeouts and our timeouts doubled up13:52
natefinchjam: heh, yeah, it's definitely not always possible to know if a change will break... but there are changes you *know* will break people13:52
niemeyerjam: Well, sorry.. but that's a completely different kind of "breakage"13:52
niemeyerjam: What else have I broken?13:52
jamniemeyer: our test suite started failing because of an update to mgo.13:53
jamI don't know of a case where stuff stopped compiling13:53
niemeyerjam: That's good..13:53
niemeyerjam: What else?13:53
jamniemeyer: the test suite has broken at least one other time, and we pinned to rev 241 for a while.13:53
jamI don't remember the exact reason offhand13:53
niemeyerjam: Okay, phew.. glad the "several times" was an excited overstatement then13:54
niemeyerjam: In terms of timeouts, why did it break again?  Just out of curiosity..13:55
bodie_oh god13:55
bodie_digitalocean's mirror has go113:55
jamniemeyer: we had a test that asserted we retried an appropriate number of times, but we ended up having mgo retrying on top of juju retrying13:55
jamsomething like that13:55
* bodie_ slowly claws skin off face13:55
niemeyerjam: Oh man.. okay..13:55
bodie_I'm going to go yell at someone.  brb.13:55
niemeyerjam: That's *totally unspecified*13:55
niemeyerjam: If you assume mgo will connect a specific number of times, updates *may* break it13:56
jamniemeyer: so, more context as I'm remembering. mgo used to flood connections to Mongo, and we needed it to slow down a bit. We did the slow-down in Juju code, but then mgo started slowing down, and then we were too slow, IIRC.13:57
niemeyerjam: Sure, that's okay..13:57
niemeyerjam: I reckon the update broke the test logic13:57
mgzjam: the socket timeout issue was the most painful, that gave us random failures13:57
niemeyerjam: But the test logic was truting on unspecified behavior.. I simply cannot promise to not touch that kind of logic13:57
mgzrogpeppe will remember the details13:58
niemeyertrusting13:58
niemeyermgz: There was an actual bug there in this case13:58
niemeyerSo yeah, that kind of breakage is on me.. will pay a beer to the debugger, sorry.13:58
niemeyerBut that's unrelated to natefinch's point.13:58
mgzrogpeppe will look forward to that :)13:59
niemeyermgz: Yeah, I owe him more beers than I can pay13:59
niemeyerSo, the point remains: the versioning of stable APIs is a good method to avoid API breaks.13:59
rogpeppevoidspace: lp:~rogpeppe/juju-core/524-state-api-hostports14:01
* rogpeppe agrees with niemeyer14:02
=== marcoceppi is now known as marcoceppi-mobil
bodie_niemeyer++14:04
bodie_okay, now I just think I'm going insane14:11
bodie_ubuntu 12.04 golang is version 1?!14:11
bodie_this can't be right14:11
niemeyerbodie_: Why not?14:12
natefinchbodie_: this is why I just always build go from source, plus you need to do that to enable cross compilation anyway14:12
bodie_I don't know...  I guess it was my mistake to assume something would be a proper version on 12 LTS14:13
jamnatefinch: bodie_: precise is just that old14:13
jamyou need to "add-apt-repository ppa:juju/golang-go"14:13
jamand we'll give you 1.1/1.2 (I don't quite remember now)14:13
niemeyerbodie_: Hmm.. 1 looks like a proper version...? :)14:14
niemeyerbodie_: 12 was 2 years ago14:14
natefinchniemeyer: almost all go code written these days won't compile in go 1.14:15
niemeyernatefinch: These days is two years after two years ago.. :)14:15
natefinchniemeyer: yes... and there's been plenty of time to update the golang package to 1.114:15
niemeyernatefinch: Distributions don't get updated with new code just because it got released14:16
niemeyernatefinch: LTS means long term *support*14:16
bodie_just asked the same question in #go-nuts and they pointed me to niemeyer's godeb.  heh14:16
niemeyernatefinch: Security fixes and the such will get applied14:16
bodie_(a couple of minutes ago)14:16
niemeyernatefinch: If you want new code, just update to a new release14:16
bodie_I feel special14:16
jamniemeyer: natefinch: yeah, generally Ubuntu doesn't change your toolchain underneath you in the official archives.14:16
jamit would have been possible to potentially add a "golang-go-1.1" sort of package.14:17
jambut not to change the "golang-go" package out of 1.0 status.14:17
bodie_yeah, cause that's the version it was at, at that point in time.  I get that.14:17
bodie_it's just annoying to realize... lol14:17
jambodie_: :)14:17
jamwell, I would have pushed to be compileab14:17
bodie_spent an hour trying to figure out why everything was broken until I checked the version -_-14:17
jamcompilable on default tools of Precise for a bit longer.14:18
niemeyerbodie_: That's reasonable :)14:18
jambut 1.1 was just too much better than 1.014:18
bodie_I don't think making a habit of making sure you have a properly updated toolchain is a bad idea14:21
bodie_I just get lazy and assume I'll have the things I need from repos14:21
bodie_didn't even cross my mind to check the version until I noticed the output of go get -v was so different14:22
natefinchbodie_: you probably should run trusty.  It's what most of us are developing on at this point14:22
bodie_maybe I'll make a mention of this in CONTRIBUTING...14:22
bodie_oh I'm running trusty on my workstation14:22
bodie_not fun14:22
bodie_this is why I'm making a 12.04 vm14:22
natefinchno?  I have no problems with it14:23
bodie_it's been literally one thing after another for an entire week including the weekend14:23
bodie_maybe I'm just being dumb, maybe not everything is totally shipshape on 14.0414:23
bodie_ruling out the latter14:23
bodie_you also built your mongo on a different release14:24
bodie_the packaged mongo doesn't work with juju14:24
bodie_the packaged juju-mongo doesn't work with juju14:24
natefinchbodie_: true.  I guess if mongo doesn't even build on trusty, that's a problem.   Though there was a fix to the mongo problem last night.  You just need to install juju's mongodb on trusty now14:24
bodie_GCC 4.8.2 doesn't work with mongo source14:24
bodie_okay, cool :)14:24
bodie_maybe I'll do that after I get this 12.04 vm running.  lol14:24
natefinchbodie_: if you want.  It seems like you're much more likely to run into problems running an old version than a new version14:25
bodie_pretty stoked that Go is moving to a Go-compiled Go.  pretty awesome :D14:26
bodie_yeah, hopefully I can just make it work on this box.14:26
bodie_otherwise to the VM I go14:26
bodie_also had issues with a 13.10 vm last night ....14:26
bodie_ssh breaking14:26
bodie_I don't even...14:26
bodie_I'm about ready to decide I should have gone into a career as a gardener14:27
ppetrakihas anyone tried to download a bundle lately from the charm store? I've tried to export several different ones and all I'm getting is14:28
ppetrakienvExport:14:28
ppetraki  services: {}14:28
ppetraki  relations: []14:28
ppetraki  series: precise14:28
wwitzel3ahasenack, jam: run through it a few times now, still unable to reproduce with my local maas. tear and clean instance each time .. http://paste.ubuntu.com/7120061/14:29
ahasenackwwitzel3: try getting rid of the squid cache14:29
wwitzel3ahasenack: be happy to if I knew how14:31
ahasenack  if [ ! -d /var/cache/squid-deb-proxy/00 ]; then14:32
ahasenack   $SQUID -z -f /etc/squid-deb-proxy/squid-deb-proxy.conf14:32
ahasenack  fi14:32
ahasenackmaybe trashing that directory and restarting14:32
ahasenackthe initscript will create it again14:33
arosalesppetraki: also may want to try #juju-gui14:37
bodie_hmmmm14:37
bodie_getting the same weirdness as I was last night on my 13.1014:38
bodie_http://paste.ubuntu.com/7120110/14:38
bodie_anyone know what might be up?  I tried debugging sshd last night, but I just got more breakage14:38
wwitzel3ahasenack: removed the folder and turned off the squid-deb-proxy service, giving it another try now14:38
ahasenackwwitzel3: I'm not sure you can leave it off, juju might expect it to be running14:39
wwitzel3ahasenack: true14:41
wwitzel3ahasenack: removed the squid-deb-proxy directory, rebooted, and the br0 interface comes up .. my maas is providing DNS and DHCP. Is yours not? Maybe that is the difference?14:47
ahasenackwwitzel3: ours is14:47
ahasenackwwitzel3: I tried another maas, an older one on precise (v1.4), and I also nuked the squid cache there. There it worked this time14:47
ahasenackwwitzel3: so we only have one maas where this is happening right now, before nuking the cache there I think we need to know what is going on14:48
axwbodie_: those tests don't run a real ssh executable14:50
axwbodie_: see storageSuite.sshCommand; it writes a fake ssh command to $PATH14:51
wwitzel3ahasenack: I am able to replicate the behavior before rogpeppe's fix .. maybe if revert to prefix, bootstrap, and populate the cache, then upgrade to 1.17.5 and try to bootstrap without removing the cache .. if I can replicate it that way.14:51
wwitzel3ahasenack: I will try that to see if i can get in to the same error pattern you're experiencing14:51
ahasenackwwitzel3: ok, I'll try again on that maas machine to see if it wasn't just an archive fluke, but without touching the squid cache14:51
wwitzel3ahasenack: sounds good14:52
axwfwereade: https://codereview.appspot.com/77820044  - when you have some time14:52
axw(please)14:52
=== marcoceppi-mobil is now known as marcoceppi
sparkiegeekwwitzel3: can you paste your cloud-init-output.log from a successful run?15:01
sparkiegeek(cc: ahasenack ^^)15:01
sparkiegeekwwitzel3: I see it trying to install bridge-utils immediately *before* an apt-get update15:01
=== marcoceppi is now known as marco-traveling
sparkiegeekwwitzel3: also line 24 from http://paste.ubuntu.com/7120061/ looks like template fail :)15:02
ahasenacksparkiegeek: wwitzel3: http://pastebin.ubuntu.com/7120231/15:04
ahasenackwwitzel3: that's /var/lib/cloud/instance/cloud-config.txt on the bootstrap node15:05
bodie_axw..... ok...  so how am I supposed to tackle this15:05
ahasenackit's the same on the other bootstrap node where it worked15:06
ahasenackcould be "luck". Would love to see if it's just a missing apt-get update15:06
ahasenackoh, btw15:06
ahasenacksparkiegeek: wwitzel3: where it's failing is trusty, and where it worked for me not is precise15:06
sparkiegeekahasenack: "not is precise" ?15:07
ahasenacks/not/now/15:07
ahasenackweirdest typo that happens to everyone15:07
sparkiegeek:)15:07
ahasenackso what I mean, is that it's using different archives15:08
axwbodie_: sorry, I'm not sure what the root cause is. it just looks like a broken test, but I can't tell at the moment15:09
natefinchaxw: isn't it like 2am there?15:09
axwnatefinch: nah, just after 11pm15:09
bodie_it's a broken test, I think that's as far as I've gotten.  heh15:09
axwbodie_: I meant as opposed to broken code under test15:10
natefinchaxw: ahh, what time zone is that?  I don't have it in my world clock list15:10
bodie_ko15:10
bodie_ok*15:10
bodie_probably caused by my custom shell15:10
axwnatefinch: UTC+8, aka AWST15:11
bodie_although that doesn't make sense either15:11
natefinchaxw: cool.  I'll add that to my list.  Gotta keep track of everyone's time zone so I know when it's reasonable to bug them :)15:11
axw:)15:11
perrito666yey, for he who loves reviews now we have a 2 for 1 great offer, review https://codereview.appspot.com/77850043 and get to also review its dependency https://codereview.appspot.com/7749004315:11
perrito666do not miss this opportunity dear juju hackers15:12
axwbodie_: it's explicitly executing as bash, though it's possible that your ~/.bashrc is influencing15:12
natefinchperrito666: I'll look15:13
mgzaxw: that's my best guess too, but I'm a little surprised .bashrc gets triggered15:13
axwmgz: that's *a* bug, we should disable it wiht --norc in the test code15:14
axwsome of the tests do that, but evidently not this one15:14
axwbodie_: try sticking "--norc" after "#!/bin/bash" in sshCommand, see if that does anything15:14
bodie_ok15:15
axwfwereade: yeah, Base doesn't quite sit well with me but I can't think of a better name :\15:22
axwEnvironDefaults?15:22
rogpeppeaxw: in i prefer entities that do one thing. "Base" types can so easily become a bin to chuck all kinds of random stuff in15:24
rogpeppes/in/in general/15:24
bodie_woot, got broken pipe test passing.15:25
bodie_sshstorage15:25
bodie_on on to the next one15:25
axwbodie_: how? --norc?15:25
axwrogpeppe: hmm... point taken. maybe it can be replaced with multiple types with default behaviour for specific things15:26
rogpeppeaxw: that would seem better to me15:26
rogpeppeaxw: that means that if you add some new methods, you'll need to explicitly add the default behaviour to all providers, but i actually think that's an advantage15:27
rogpeppeaxw: as it forces providers to think about whether the default behaviour is actually appropriate for that provider15:28
axwyeah15:28
axwfair enough. I will take another look at that part tomorrow.15:28
rogpeppeaxw: thanks15:30
axwI'm off, g'night folks15:31
bodie_axw, I got it working by changing my shell back to bash15:32
natefinchbodie_: weird.... I was pretty sure rogpeppe was running uh... some non-bash shell, and he can run the tests.15:33
bodie_totally weird15:33
rogpeppenatefinch: yeah, i do15:33
rogpeppenatefinch: my $SHELL15:34
rogpeppe% echo $SHELL15:34
rogpeppe/home/rog/other/plan9port/bin/rc15:34
bodie_:)15:34
bodie_hah!15:34
bodie_I'm using oh-my-zsh15:34
bodie_probably some plugin messing with things15:34
bodie_I'm quickly realizing I need to be as absolutely stock as possible15:34
bodie_THEN get my tests to pass15:34
bodie_then start experimenting, I guess15:35
mgzbodie_: you're doing a fine job finding test suite isolation issues...15:35
mgzjust not really want you want to be doing15:35
natefinchmgz, bodie_: a good point.... that actually is quite useful, just, yeah....15:35
bodie_even then, it surely would be better to get tests passing first so I at least know what's breaking what, and then start customizing my environment15:35
* fwereade is disappearing for a bit to have a snippet of his public holiday15:35
bodie_heh, enjoy!15:36
* fwereade will be around for a call in 4 hours at the very least15:36
bodie_ppa:juju/golang-go isn't found -- is it $1/golang ?15:51
mgzbodie_: yup15:52
bodie_fyi, ppa is 1.1.215:54
bodie_maybe THAT'S the problem with my 14.04?  it's running 1.2.1?15:55
bodie_oy.15:55
bodie_natefinch, go version?15:55
natefinchbodie_: I'm running 1.3, anything >= 1.1 should be fine16:08
natefinchbodie_: er 1.216:08
natefinchit would be a trick to be running 1.316:08
bodie_I would like to do that as well lol16:09
voidspacerogpeppe: do you have me on mute?16:09
voidspacerogpeppe: or can you just not hear me?16:10
voidspacerogpeppe: or are you ignoring me?16:10
voidspacehah16:10
rogpeppemgz: a review for you? https://codereview.appspot.com/7782004316:11
wwitzel3ahasenack: http://paste.ubuntu.com/7120556/ , also I was not able to reproduce the error state by bootstrapping with the pre-fix version, then destroying and bootstrapping with the fix.16:13
mgzrogpeppe: looking16:13
rogpeppemgz: ta16:13
mgzrogpeppe: now actually reviewing it16:29
rogpeppemgz: ta#216:29
mgzrogpeppe: lgtm.16:34
rogpeppemgz: ta#3!16:34
rogpeppemgz: the document has only been around for a few revisions. it's not used by anything else16:35
mgzas in, wasn't in the last 1.17 release either? that's perfectly fine then.16:35
natefinchAm I the only one that thinks this formatting is terrible?16:41
natefinchfunc StartInstance(16:41
natefinch        env environs.Environ, machineId string,16:41
natefinch) (16:41
natefinch        instance.Instance, *instance.HardwareCharacteristics, error,16:41
natefinch) {16:41
natefinch....16:41
natefinch}16:41
mgzyeah, it's dire16:43
ahasenackwwitzel3: how could we inject some debugging into that cloud-init script? I would love to see the contents of sources.list and sources.list.d/* at that point, and/or maybe just try adding an apt-get update before it tries to install bridge-utils16:43
ahasenackwwitzel3: like http://pastebin.ubuntu.com/7120722/ (untested)16:44
mgzahasenack: can be done.16:44
mgzrogpeppe: I wonder if SetAPIHostPorts should actually error out on a zero port16:48
rogpeppemgz: perhaps16:48
rogpeppemgz: there are so many other ways that the addresses can be wrong though, it seems like it's not really worth doing that one thing16:49
mgzyeah, maybe, not sure what the right level to be checking these things is really16:49
jamespageis it possible to change the timeout on the bootstrap command? it appears to be 10 mins right now - I can think of physical server deployments where this is not long enough :-)16:59
natefinchjamespage: yep, there's a config value you can set in the environments.yaml17:01
mgzjamespage: bug 1257649 (see status)17:01
_mup_Bug #1257649: ssh timeout for bootstrap could be configurable <config> <maas-provider> <micro-cluster> <juju-core:Fix Released by dimitern> <https://launchpad.net/bugs/1257649>17:01
jamespagenatefinch, mgz: phew17:01
natefinchjamespage: juju help bootstrap will show you how, I believe17:01
=== vladk is now known as vladk|away
rogpeppemgz, fwereade: currently we store instance ids in the control bucket. can you think of a strong reason to continue to do that for the api addresses, rather than storing the addresses themselves?17:09
rogpeppeif we store addresses, then we won't need an Environ to be able to work out the API server addresses - just read-only access to the control bucket17:09
rogpeppealthough, i guess we will need to know where the control bucket is17:10
mgzyeah, we also don't promise that one is globably readable either I think17:11
mgzbut putting addresses in it ('as well') should be fine as a basic optimisation17:11
rogpeppemgz: i'm wondering if we need to maintain the instance ids at all17:11
rogpeppemgz: ah, of course we do...17:11
rogpeppemgz: for destroy-environment --force17:12
mgzyup.17:12
mgzweeeel...17:12
mgzyou can implement that in other ways17:12
mgzjust nuking all machines with matching names is how we generally do it I think17:13
rogpeppemgz: good point17:13
rogpeppemgz: so... maybe we don't need to do it17:13
rogpeppemgz: it would make some logic simpler, and it opens the door to having long-term useful .jenv files without provider credentials17:14
=== DrabMakyo is now known as ShinyMakyo
=== vladk|away is now known as vladk
=== vladk is now known as vladk|offline
rogpeppehere's the branch that changes the peergrouper to publish the api addresses in the state: https://codereview.appspot.com/7760004817:27
rogpeppereviews appreciated17:28
rogpeppemgz, dimitern, fwereade, natefinch, wwitzel3: ^17:28
wwitzel3rogpeppe: will take a look in a bit17:30
rogpeppewwitzel3: ta17:30
perrito666wow, launchpad just sent me an email stating it errord trying to send an email from a comment I added, how rude17:34
perrito666:p17:34
bodie_oh my god17:34
bodie_I think my tests may finally be passing17:34
mgzyou're special now :)17:34
jamespagemgz, I'm not getting a all-machines.log aka debug-log with the MAAS provider and 1.17.5 on trusty - is that something new?17:39
jamespagecan't find a bug that looks like it17:39
mgzugh, probably, we did change several things around rsyslog17:41
ahasenackwwitzel3: around?17:41
mgzjamespage: the big change was bug 128107117:42
_mup_Bug #1281071: juju internal use of rsyslog should use ssl/tls for aggregation <juju-core:Fix Released by axwalk> <https://launchpad.net/bugs/1281071>17:42
wwitzel3ahasenack: yep17:42
ahasenackwwitzel3: it worked with this patch: http://pastebin.ubuntu.com/7121040/17:42
mgz...but that was in 1.17.4?17:42
ahasenackwwitzel3: apt-get update being the fix for me, the rest was just debugging17:42
ahasenackSetting up bridge-utils (1.5-2ubuntu7) ...17:43
ahasenackstop: Unknown instance:17:43
ahasenacknetworking stop/waiting17:43
ahasenackinstalled bridge-utils, restarted networking, br0 is up17:43
mgzjamespage: only obvious change since then is the adding of the rsyslog-gnutls package17:44
wwitzel3ahasenack: ok, I will figure out a way to get that in there17:44
wwitzel3ahasenack: have to ping some people to see if there is a prefered way to make that happen or if we can just do as you did and add the apt-get update line.17:45
jamespagemgz, yeah - I've seen that work OK on OpenStack with 1.17.417:45
ahasenackwwitzel3: I'm building debs in my junk ppa, others can try too (I see jamespage was affected too)17:45
mgzjamespage: we probably need a new bug filed, if you can find anything on a unit about rsyslog and the forwarding, that would be relevent17:46
jamespagemgz, doing that now17:46
jamespagehttps://bugs.launchpad.net/juju-core/+bug/129477617:46
_mup_Bug #1294776: No debug-log with MAAS, 14.04 and juju-core 1.17.5 <juju-core:New> <https://launchpad.net/bugs/1294776>17:46
mgzthanks!17:46
wwitzel3mgz: you have an option on the br0 fix? just added an apt-get update before the explict apt-get install bridge-utils that was rogpeppe's fix?17:47
wwitzel3mgz: since we have it confirmed fixing the issue for ahasenack17:47
wwitzel3s/option/opinion17:47
rogpeppewwitzel3: ah, so apt-get update is necessary?17:48
ahasenackit was for me, not for wwitzel317:48
rogpeppeahasenack: weird17:48
ahasenackcould be a difference in the images that were used to install the node?17:48
rogpeppeahasenack: do you know what's actually going on there?17:48
ahasenackrogpeppe: apt-get install bridge-utils was not finding bridge-utils, that's all I know17:48
rogpeppeahasenack: ahhh17:48
ahasenackI checked sources.list, they look fine17:49
ahasenackso I tried apt-get update17:49
ahasenacklater during the bootstrap process apt-get update is ran17:49
rogpeppeahasenack: so i guess some images ship with a sources.list that doesn't include bridge-utils17:49
ahasenackand later again, bridge-utils is installed by something else, and then it works17:49
ahasenackrogpeppe: well, no, sources.list is ok, if it weren't a simple apt-get update wouldn't have fixed it17:49
ahasenackrogpeppe: maybe some images were generated after apt-get update was run, and some were generated without apt-get update having ever been run17:50
ahasenackI can check /var/lib/apt if you want, probably17:50
rogpeppeahasenack: sounds worrying :-)17:50
ahasenackit's always good to start with a fresh apt-get update run anyway17:50
ahasenackyou do it in the sync bootstrap17:51
ahasenack"just to be sure"17:51
ahasenackAdding apt repository: deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/cloud-tools main17:51
ahasenackRunning apt-get update17:51
ahasenackRunning apt-get upgrade17:51
ahasenackmore because you add another sources.list, sure17:51
rogpeppeto me it all seems like things to slow down our already slow instance start time, but perhaps that's just me17:52
rogpeppei do see that we need to do it17:52
rogpeppebut i look at docker and thing "a better way is surely possible"17:52
rogpeppes/thing/think/17:52
mgzI'm a little nervous about fixes when we don't understand why...17:53
mgzcloud-init does update/upgrade as one of its earliest steps17:53
mgzwell before we get to our runcmd17:53
mgzwhy do we need it twice?17:53
rogpeppemgz: +117:54
wwitzel3rogpeppe, mgz, ahasenack: when I look at the order that things run on my maas, we issue an apt-get update before attempting to install bridge-utils17:55
ahasenackmgz: where does it do it?17:55
ahasenackwwitzel3: where's the evidence? There are two places where bridge-utils gets installed17:55
ahasenackwwitzel3: in my case, the first one fails17:56
ahasenackmy first one:17:56
ahasenackReading state information...17:56
ahasenackE: Unable to locate package bridge-utils17:56
ahasenackstop: Unknown instance:17:56
ahasenacknetworking stop/waiting17:56
ahasenack+ install -D -m 644 /dev/null /var/lib/juju/nonce.txt17:56
ahasenackthat comes from that piece of code I patched to include apt-get update17:56
ahasenackit failed17:56
ahasenackthen later,17:56
ahasenackThe following NEW packages will be installed:17:57
ahasenack  bridge-utils17:57
ahasenackand it goes on and installs it17:57
ahasenackI don't know what prompted that one17:57
mgzahasenack: the cloud-config specifies apt_update as true17:57
ahasenackI think it was bootstrap17:57
ahasenackright, it's in that part where it installs package by package17:57
ahasenackgit17:57
mgzahasenack: check the cloud-config file in /var/lib/cloud or whereever it is17:58
ahasenackmgz: that apt_update true kicks in after17:58
mgzo_O17:58
ahasenackmgz: that file does not have apt-get update17:58
ahasenackonly after I added it via the patch17:58
mgzoh god, is this an ssh race17:58
mgzwwitzel3: is the bridge-utils install done via runcmd or via the ssh-in-and-do-shit step?17:59
ahasenackfirst attempt, that failed, is via runcmd17:59
ahasenackit's in that patch, I pasted it17:59
ahasenackhttp://pastebin.ubuntu.com/7121040/18:00
ahasenackI just added -y, and apt-get update before18:00
mgzruncmd should absolutely be *after* apt_upgrade18:00
ahasenackbut apt-get install bridge-utils was there already18:00
mgzsmoser!!!!18:00
ahasenackand that's the one failing18:00
bodie_welp, got my tests to pass18:00
smoseryes18:01
mgzwait, I think we already had this conversation18:01
smoserruncmd is after cloud-init implmented apt-get install18:01
mgzdid when runcmd happens get changed?18:01
mgzahasenack is seeing odd things18:01
ahasenackmgz: where do we set apt_update True?18:02
smoserrunning 'apt-get update' is not "just to be sure", its really a requirement. if you want to avoid missing packages in -updates.18:02
mgzenvirons/cloudinit/cloudinit.go AddAptCommands18:03
wwitzel3mgz: I have it being installed twice (bridge-utils) once during the ssh-in .. it is one of the first things to happen after SSH, then later another install is attempted, but at that point it is already at the latest version.18:03
ahasenackwwitzel3: you have it as part of cloud-init too18:03
mgzsmoser: the question is, why do we have to run it *again* in runcmd when the cloud-config has apt_update set18:03
ahasenackwwitzel3: check /var/lib/cloud/instance/cloud-config.txt18:04
ahasenackmgz: how does the cloud-config "file" generated by provider/maas/environ.go get to play with the one from environs/cloudinit/cloudinit.go ?18:04
voidspacerogpeppe: sorry, I thought the call was at 7pm18:04
voidspacerogpeppe: it's a EuroPython committee meeting call18:04
rogpeppevoidspace: np18:05
rogpeppevoidspace: it's 7pm CET, i guess18:05
voidspaceyep18:05
ahasenackmgz: and, remember, this issue of br0 not coming up only happens with the bootstrap node, not with other nodes that are brought up by juju later on18:05
ahasenackhints at different cloud-inits18:05
smosermgz, well there are race conditions that are unavoidable in apt18:06
mgzahasenack: well, does you /var/lib/cloud/instance/clopud-config.txt have the update key or not?18:06
smoserbut i doubt your'e hitting that18:06
smoserdo you see evidence of apt-get update having run in /var/log/cloud-init-output.log ?18:06
ahasenackmgz: without my patch, no apt-get update in it.18:06
mgzsmoser: yeah, seems more like some odd bug in our code if you've not done anything evil recently18:06
mgzahasenack: okay, that's the bug then.18:07
smosermgz, trusty ? precise ?18:07
smoserfor sure neither one *should* hvae had a regression to this affect.18:07
ahasenacksmoser: I don't think it's an issue with cloud-init.18:07
smoserand look in /var/log/cloud-init.log18:07
smoserlook for WARN in /var/log/cloud-init.log18:07
ahasenackthere is no evidence that apt_update: True was passed to it.18:07
smoserwell, look at /var/log/cloud-init-output.log18:07
smoserit will clearly show you if it was urn18:08
ahasenackI did18:08
smoser(and you'll also see mention of it in /var/log/cloud-init.log if it ran it)18:08
ahasenackit's clear that it is following the commands juju gave it via http://pastebin.ubuntu.com/7121040/18:08
ahasenackand there was no apt-get update in that18:08
mgzso, somehow wayne has that, and you don't18:08
ahasenackluck I guess18:09
ahasenackalso, we use the fast-path-installer, which dumps a cloud image on the node18:09
ahasenackwwitzel3: do you use that too?18:09
mgzI'm assuming he does not18:10
wwitzel3ahasenack: nope18:10
ahasenackok, that narrows it down a lot18:11
ahasenackif you use the debian installer, then it's more or less guaranteed that apt-get update was run18:11
ahasenackand /var/lib/apt is still "fresh"18:11
ahasenackwhereas the fast-path-installer uses a cloud image, that I think was downloaded to the maas server only once when it was first installed18:12
ahasenackor it downloads it from the internet, I don't know18:12
wwitzel3ahasenack: yeah the first 3 lines when I bootstrap after the ssh keys are generated are adding the cloud-tools repository, then an update, and then an upgrade18:12
ahasenackwwitzel3: ok, the bug happens before that18:12
ahasenackwwitzel3: you only see it in the cloud-init-output.log file18:12
ahasenackit happens before juju bootstrap ssh'ed in18:13
ahasenackwwitzel3: if you want, switch to the fastpath installer and try again, maybe you'll hit the bug too18:14
wwitzel3ahasenack: yeah, my cloud-config.txt doesn't have a apt-get update in it, but my bridge is setup fine probably because update has already been run18:14
ahasenackthat's my conclusion18:15
ahasenackmgz: ^^^ wwitzel3's cloud-config.txt doesn't have apt-get update18:15
ahasenacklike mine18:15
ahasenackhe got lucky :)18:15
ahasenackI didn't :)18:15
mgzokay, so we need to find out why that's not getting in, and fix it.18:16
ahasenackhazmat: remember the br0 not coming up bug on the bootstrap node? There were two cloud-init configs involved, right? Because br0 does get up in services deployed to new machines, just not in the bootstrap one18:16
ahasenackhinting that the one used for bootstrap is different than the rest18:17
ahasenackthere was a long discussion here in the channel when that was first filed18:17
hazmatahasenack, yes.. there was.. i thought it was addressed with 1.17.518:17
=== vladk|offline is now known as vladk
ahasenackhazmat: nope, still happening18:17
hazmatahasenack, nutshell was on bootstrap node previously bridge-utils wasn't installed because of a divergent code path for bootstrap when constructing cloud-init18:17
ahasenackhazmat: in my case, a simple 'apt-get update' just before 'apt-get install bridge-utils' worked18:18
ahasenackhazmat: so the fix was to just add "apt-get install bridge-utils" in bootstrap's cloud-init?18:18
hazmatahasenack, ah.. the package is old..18:18
ahasenackhazmat: right18:18
natefinchwwitzel3: btw, when you get time to get back on the stuff we were working on, I merged from trunk and fixed some tests. Still have the environment not prepared failure, but that's the only one left right now.18:18
ahasenackhazmat: I think it was assumed that apt_update: was set to True in cloud-init18:18
ahasenackhazmat: which it might as well be, but not for bootstrap's cloud-init18:18
=== Ursinha is now known as Ursinha-afk
hazmatahasenack, i'd file a bug.. i gotta run out for a min.. bbiab18:19
ahasenackhazmat: sure, it's filed, we were "remembering" it18:19
ahasenackthat should be enough info to fix it18:20
=== Ursinha-afk is now known as Ursinha
wwitzel3natefinch: great, I will pull those changes and take a look18:33
voidspaceg'night all18:33
rogpeppei'm done too18:33
rogpeppehappy evenings, all18:33
wwitzel3later rogpeppe18:35
perrito666natefinch: could you give a second look to https://codereview.appspot.com/77850043/ ? I think it is much better now18:45
perrito666tx :)18:45
natefinchperrito666: LGTM18:47
perrito666natefinch: thank you18:52
natefinchwwitzel3: looks like the dummy environ expects some configuration to be set when you get the state out of it.  Looks like it expects a state-id to be set18:53
wwitzel3natefinch: is there an example of that?18:53
natefinchwwitzel3: not surte18:58
wwitzel3k, I'll take a look around, brb18:58
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== vladk is now known as vladk|offline
natefinchthumper: how's your knowledge of the dummy provider?  I'm trying to update the jujud bootstrap tests to include a valid environment and it's bombing out due to an environment not being prepared, but I can't figure out how I'm actually supposed to prepare an environment for the dummy provider.19:47
thumpernatefinch: sorry, no idea20:07
natefinchthumper: heh ok20:08
bodie_http://paste.ubuntu.com/7121842/20:16
bodie_any ideas?20:16
bodie_I'm on 14.0420:17
bodie_go1.2.120:17
bodie_have the mongo from make install-dependencies20:17
bodie_have all the right revisions via godeps -u dependencies.tsv20:17
natefinchbodie_: you're building trunk, right?20:17
bodie_just wiped all my source code and go-got the new thing before doing all of the above20:17
bodie_yeah20:17
natefinchbodie_: do you have mongod in /usr/lib/juju/bin/ ?20:18
bodie_http://paste.ubuntu.com/7121855/20:19
bodie_so I guess I have it, but not in my PATH20:19
bodie_this is just what I got via make install-dependencies20:19
natefinchbodie_: is this running the replicaset tests?20:22
natefinchbodie_: nm, I see at the bottom of the paste20:23
bodie_it's not crucial, but i'd really like to get the tests passing on my local20:25
bodie_do I need juju-mongo in my PATH?20:25
natefinchbodie_: no, I don't have it in my path20:26
natefinchbodie_: ha, I'm lying, I do have *a* mongod in my path, and removing it causes that exact error20:28
natefinchbodie_: so, yeah, add that directory to your path, should fix that error20:28
bodie_nice20:29
bodie_thought it looked familiar to what was going wrong when I had no mongo20:30
perrito666you know, it is very hard for me to code in this and not think permanently on http://www.gamefabrique.com/games/juju-densetsu/ which I played as a kid20:30
natefinchthat is perhaps the worst error handling I've ever seen, though.  No "can't find mongo"  instead a nil pointer error.20:30
bodie_heh20:31
bodie_yeah, the tests need some work20:31
bodie_I just am keen to get rolling on actions20:31
natefinchperrito666: I don't know the game, but man, do those kind of graphics bring back memories20:31
perrito666natefinch: It was a famicom game :) I have it ringing in my head since I heard of juju20:33
bodie_yeesh.20:33
bodie_*** Test killed: ran too long (10m0s).20:33
bodie_FAILlaunchpad.net/juju-core/worker/uniter/debug600.003s20:33
bodie_:(20:33
thumpersinzui: https://bugs.launchpad.net/juju-core/+bug/129463220:33
_mup_Bug #1294632: lxc broken in trunk r2440 <bootstrap> <ci> <local-provider> <lxc> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1294632>20:33
thumpersinzui: have there been any packaging changes with respect to jujud?20:34
sinzuiyeah. that is sad20:34
thumpersinzui: I can run the local provider locally and all good20:34
thumperthe only difference is that I compile jujud20:34
thumperand the bot probably doesn't20:34
thumperwhich means it may not have a jujud locally20:34
thumperand hence goes looking for tools20:34
sinzuithumper, I did more than compile. I packaged it20:34
thumpersinzui: what is it testing? the package?20:35
thumperand which packages?20:35
thumperdoes your package contain jujud?20:35
natefinchbodie_: weird, those tests run in ~1 second for me.20:35
sinzuijuju-core_1.17.620:35
thumpersinzui: the CI machine, does it do any compile from source, or just tests packages?20:35
bodie_what the hell...20:35
bodie_hmm, maybe there's some driver I'm missing (this is on a VM)20:36
sinzuithumper, I think you mean the new behaviour searches the env (PATH actually) for the jujuds and asks if they match20:36
thumpersinzui: no... the local provider always needs to get some tools20:36
thumperwhat it does by default is to look for a jujud that lives next to the command line juju20:36
thumperif it doesn't find one, it tries to compile one20:37
sinzuithumper, CI makes the tarball, makes the package from the tarball, then installs the package in a non-system location. Paths are updated and the tests begin.20:37
thumperif it can't copmile one, it looks for tools20:37
sinzuithumper, tests worked until the revision..tools were found before that rev20:37
bodie_with juju-mongodb in my PATH now: http://paste.ubuntu.com/7121938/20:37
thumpersinzui: ok, what is in the package?20:37
sinzuiWhat WE RELEASE20:38
bodie_(this is my 14.04 machine, not the one taking 10 minutes)20:38
thumperand the contents hasn't changed recently?20:38
sinzuithumper, nothing else failed, so we know the tools were found and also sent to the CPCs20:38
thumperhmm...20:38
sinzuipackaging rules haven't changed for a few weeks20:38
thumpersinzui: I've assigned it to wallyworld to fix20:39
thumperhe should have a better idea what is going on20:39
natefinchthumper, sinzui:  this seems bad (from running the tests with the new juju-mongodb:   value *mgo.QueryError = &mgo.QueryError{Code:16149, Message:"exception: cannot run map reduce without the js engine", Assertion:false}20:39
thumpersinzui: is there any way I can look at the CI machine?20:39
thumpernatefinch: which test?20:40
thumperAFAIK, we shouldn't be using the javascript engine at all20:40
natefinchthumper: TestCharmStreaming   from store/server_test.go20:40
sinzuithumper, ~/jobs/local-deploy/workspace/extracted-bin/usr/lib/juju-1.17.6/bin$ jujud version20:40
sinzui1.16.6-precise-amd6420:40
thumpersinzui: what about ./jujud version20:41
thumperit doesn't search the path, it looks for one beside the juju being executed20:41
sinzuiah correct, I didn't export path like the test does20:42
natefinchthumper: looks like mgo's MapReduce function must require the javascript engine  (used in Store/store.go  Store.Counters)20:42
natefinchsinzui: do we run the tests in CI with juju-mongodb? This seems like it should have failed there.20:45
thumpernatefinch: CI runs precise20:46
thumperno juju-mongodb for precise20:47
sinzuithumper, you are now subscribed to lp:~sinzui/+junk/cloud-city The staging-id_rsa key will let you ssh to jenkins@54.84.137.17020:47
sinzuithumper,20:47
sinzuiPATH=/var/lib/jenkins/jobs/local-deploy/workspace/extracted-bin ./jujud version20:47
sinzui1.17.6-precise-amd6420:47
thumpersinzui: actually20:47
thumperyou are right20:47
thumperbootstrap is broken locally20:47
thumperfor me too right now20:47
* thumper sends evil looks wallyworld's way20:47
natefinchthumper: how can we know trusty works if we don't have CI running on it?20:48
thumpernatefinch: we cross our fingers20:48
natefinchthumper: it didn't work20:48
thumpersinzui: can we have CI set up for trusty?20:48
natefinch:)20:48
natefinchsinzui: sorry to give you more work.  I know you've been terribly bored lately.20:48
sinzuinatefinch, mongodb-server is forced on the unittests because juju-mongodb support was reverted20:48
sinzuinatefinch, ppc64el and arm64 always have juju-mongodb installed20:49
sinzuinatefinch, the lxc tests to *not* use juju-mongodb...it broke deployments to the cloud20:50
bodie_so is this why my 14.04 getup is failing?20:51
bodie_pardon me for being obvious here, but...20:51
bodie_I just want to know if I need to nuke my workstation and replace it with a bulletproof version20:52
natefinchbodie_: it seems juju has an incompatibility with the version of mongodb we built specifically to work with juju...20:52
bodie_oy20:52
natefinchbodie_: when you find a bulletproof version, let us know20:52
thumpersinzui: so I landed a branch yesterday that forces juju-mongodb for all trusty deployments20:52
natefinchbodie_: we stripped out the javascript engine because it had problems on some OSes... but I guess we didn't realize one of the functions we call actually gets sent out to the javascript engine.20:54
bodie_ah, right20:54
sinzuithumper, the aws and canonistack trusty tests are happy20:56
thumperinteresting20:56
thumpersinzui: what do they do?20:56
sinzuiDeploy a wordpress stack, then another tests deploys a stack on stable, then upgrades to the RC20:57
natefinchbodie_: do you want to borrow my mongod?  I can zip up the whole directory and you can just drop it on disk.  So long as you're on 64 bit, it should work20:57
sinzuithumper, I can see juju-mongodb was installed and started in th last test20:58
bodie_well, it's working on my remote.  I'd rather get it to legitimately work on trusty20:58
bodie_ootb type thing20:58
bodie_that way I know it's ... well.  trusty20:58
bodie_i'll just use the vps for now20:58
natefinchbodie_: I'm not sure there is a "legitimate" way right now, if you can't actually build mongodb on trusty20:58
bodie_well there's the packaged version and the juju packaged version20:59
bodie_packaged version seems to not work because it's 2.7.0-pre20:59
thumpersinzui: was mongodb-server installed too?20:59
* sinzui looks20:59
marco-travelingquick, what does juju set-env do20:59
marco-travelingbecause juju help is a bit ambiguous21:00
sinzuithumper, There is no evidence of it21:00
thumperhi marco-traveling21:01
marco-travelinghi thumper21:01
thumpermarco-traveling: it updates the config kept in the state database21:01
thumpermarco-traveling: that is used by everything21:01
thumpermarco-traveling: doesn't touch anything local21:01
marco-travelingthumper: cool, so it doesn't update the environmet variables for a hook env21:01
sinzuithumper, I am confident that juju-mongodb was the only mongo installed.21:01
natefinchgotta run, sorry.  Good luck with mongo everyone21:02
thumpermarco-traveling: no, it updates the juju environment config21:02
thumpersinzui: thanks21:02
evis there a preferred way for injecting environment variables such that the juju hook context can see them? I tried baking the cloud image with /etc/environment populated with http_proxy, socks_proxy, no_proxy, etc, but that didn't make its way into $charm/hooks/hooks.py21:06
thumperev: not at this stage21:07
thumperev: what are you after?21:07
thumperev: juju is now proxy aware (for http, https, ftp and no)21:08
thumperev: no socks_proxy though21:08
evthumper: no_proxy support, basically21:08
evI can't send traffic to swift through the proxy21:08
thumperev: you can either put it in your environments.yaml, or for a running environment: 'juju set-env no_proxy=foo,bar'21:09
evthumper: if you had to do this, how would you? Right now I've hacked os.environ['http_proxy'] into every single charm, which is...less than ideal.21:09
evwait what?! How do I get this in my environments.yaml, and how did I miss this option21:09
thumperev: 'juju set-env http_proxy=http://myproxy.com'21:10
thumperev: because I'm terrible at documentation...21:10
thumperev: it is very recent...21:10
thumperish21:10
* thumper goes to look at docs21:10
thumperev: sorry about that...21:11
thumperev: environment now has:21:12
thumperhttp-proxy, https-proxy, ftp-proxy, no-proxy, apt-http-proxy, apt-https-proxy, apt-ftp-proxy21:12
thumperthe apt values default to the plain values (ie. apt-http-proxy defaults to http-proxy)21:12
thumperbut can be overridden by themselves21:12
thumpereg. my local provider has "apt-http-proxy: http://10.0.3.1:8000" for squid deb proxy21:13
evthumper: that's excellent21:13
evthank you21:13
thumpernp21:13
waiganithumper: https://codereview.appspot.com/7793004321:13
bodie_hmmm21:23
bodie_getting "no reachable servers" in my store_test21:23
bodie_anyone know what might cause that?21:24
bodie_(i.e. is the store down?)21:24
thumperintermittent test failure21:24
thumperwe all get that21:24
thumperreally annoying21:24
thumperfeel free to fix21:24
thumperwill trade fix for beer21:24
* bodie_ puts up an ultraviolet bug-zapper lamp.21:25
bodie_apparently that worked21:36
bodie_passed this time21:36
thumperI did say it was intermittent21:37
sinzuithumper, is you scratch out some notes about proxy changes, I will write it up for the release notes and put it into the unstable docs21:38
sinzuis/is/if/21:38
thumpersinzui: ok, ta21:38
evthumper: is there any way to tell juju to not clean up the bootstrap node on failure? I constantly find myself wanting this.21:47
evso I can peek at its brain21:48
thumperev: no... not that I'm aware of21:48
evrubbish21:50
evso if I'm seeing:21:55
evInstalling package: git21:55
ev2014-03-19 21:54:31 ERROR juju.provider.common bootstrap.go:127 bootstrap failed: rc: 121:55
evStopping instance...21:55
evdo I have any recourse?21:55
thumperev: which provider21:55
evopenstack21:56
thumperdoes it need an apt proxy?21:56
evit has one set21:56
evhmm, maybe this is on my end21:56
thumperev: can you pastebin a 'juju get-env'21:57
evlet me just make sure spawning an instance normally works21:57
evthumper: that wont work without a bootstrap :)21:57
thumperhaha, yeah21:58
thumperev: environtments.yaml config values?21:58
wallyworldthumper: https://codereview.appspot.com/7796004322:04
* thumper looks22:04
* wallyworld goes to make breakfast now he has fixed his regression22:05
waiganithumper: https://codereview.appspot.com/7797004322:07
evthumper: it was on my end - dns was missing22:11
thumperev: ok, cool22:12
evsuspected something was up when apt /immediately/ returned 1, instead of hung like when it's not going via the proxy :)22:12
evwoooo! "starting juju machine agent"22:12
thumperwallyworld: https://bugs.launchpad.net/juju-core/+bug/1285923 is that part of your branch?22:15
_mup_Bug #1285923: provider/ec2: tests fail expecting a ppc64 image for precise  <ec2-provider> <ppc64el> <juju-core:Triaged by thumper> <https://launchpad.net/bugs/1285923>22:15
thumperev: \o/22:15
wallyworldthumper: not that i know of, i'd need to look22:16
wallyworldcould be22:16
thumperok22:17
bodie_d'you guys have an opinion on goimports?22:17
bodie_I like being lazy, but I don't like being wrong and lazy22:18
wallyworldthumper: the arch bit is fixed. i wasn't aware of the series issue. i'll have to read that more closely to grok what the claimed issue is22:18
thumperwallyworld: ok22:18
thumperbodie_: I don't use it22:18
thumpernot yet anyway22:19
bodie_is it necessary to use this PPA to get the lbox tool?23:22
bodie_ppa:gophers/go23:22
bodie_when I try to apt-get update, it looks like it's down23:22
bodie_can't I just go get launchpad.net/lbox ?23:23
bodie_giving that a shot to see if it works23:25
davecheneybodie_: it's just a command23:31
davecheneyuse go get23:31
bodie_yeah, that worked23:32
bodie_I'm trying to use lbox now -- it's asking me to navigate to my browser, but I'm on a headless remote.  is this a problem?23:32
davecheneyyes that will be a problem23:33
davecheneyyou could try23:33
bodie_like, is there any other way I can do it, or should I just rsync it to my local and do it from here?23:33
bodie_bah....23:33
davecheneybzr login23:33
davecheneyyou need an OAUTH key from LP23:33
bodie_yeah23:33
bodie_hm23:33
bodie_bzr unknown command login23:33
bodie_does that require cobzr?23:33
bodie_er, no23:34
bodie_well, can I just push my branch and then use launchpad.net to propose it?23:34
bodie_bzr lp-propose-merge?23:36
davecheneybodie_: try copying the file ~/.lpad_oauth23:40
bodie_from where to where?  It's not on either machine23:41
bodie_can't I at least use bzr to push to my account on launchpad.net and then merge it with my web browser on my workstation?23:42
bodie_er, "propose" the merge23:42
bodie_oh LOL it lets me view the site in my terminal23:46
bodie_excellent23:46
bodie_w3m23:48
davecheneysensible-browser for the win23:48
bodie_hmmm23:49
bodie_works til I get to here23:49
bodie_bodie@juju-dev:~/go/src/launchpad.net/juju-core$ bzr launchpad-login23:50
bodie_binary13223:50
bodie_bodie@juju-dev:~/go/src/launchpad.net/juju-core$ bzr register-branch fix-bson-references23:50
bodie_launchpad.net password for binary132@gmail.com: :23:50
bodie_bzr: ERROR: Invalid url supplied to transport: "https://binary132%40gmail.com:<my password in plaintext!  yikes>@xmlrpc.launchpad.net/bazaar/": nonnumeric port23:50
bodie_pardon my paste23:50
davecheneybodie_: that isn't your LP login23:51
davecheneythats your gmail login, yes ?23:51
bodie_well, I used bzr launchpad-login to set it as binary132, which is my lpad login23:56
bodie_so I'm not quite sure why it's asking for "launchpad.net password for binary132@gmail.com"23:56

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