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

wallyworldthumper: dave around today?00:06
thumperwallyworld: yeah00:22
wallyworldthumper: i'm hoping he can look at bug 133532800:22
* thumper looks at _mup_00:23
wallyworldit's a follow up from work done last week to fix a windows issue00:23
wallyworldhe did the fix, but curtis says might still be an issue there of somne sort00:23
thumperhmm... I don't think that davecheney has a test setup to be able to run the tests00:24
thumperdo we have a machine he can use?00:24
thumperfor windows that is00:24
wallyworldnot sure, he ssemed to be able to do the original fix, thought he may be able to follow up00:25
wallyworldbut i can also poke the cloud base guys via nate's squad00:26
davecheneywallyworld: all I did was looked at where "unknown" was being set as the series00:29
davecheneyand tried to fix that00:29
wallyworlddavecheney: ok, np. the cloud vase guys should fix it since they introduced it00:30
davecheneywallyworld: ok,00:31
davecheneyosversion.go is all fucked up00:31
davecheneybunch of logic in thre that is only called from on operating system00:31
wallyworldyeah :-( i'm pissed it didn't even compile at first00:32
davecheney        com.Commands = `(gwmi Win32_OperatingSystem).Name.Split('|')[0]`00:32
davecheney        out, _ := exec.RunCommands(com)00:32
davecheney        if out.Code != 0 {00:32
davecheney                return "unknown"00:32
davecheney        }00:32
wallyworld:-(00:32
davecheney^ so if gwmi is not installed, and they don't check the error00:32
davecheneythen give up and say it's unknown00:32
wallyworldnate was going to follow up last week00:32
wallyworldnot sure of the status and he is away this week00:32
wallyworldnot sure how t fark it got past review00:33
davecheneywallyworld: thumper so, what do you want me to do ?00:33
davecheneydebug it via trial and error ?00:33
davecheney^ i'm fine with this00:33
wallyworlddavecheney: i'll follow up with nate's team00:34
davecheneywallyworld: that blocks me for today00:34
wallyworldif you are blocked and can fix that would be great :-)00:34
davecheneyunderstood00:34
thumperwhat is gwmi?00:34
wallyworldi won't get to talk to anyone east coast us till much later this evening00:34
wallyworldnfi00:34
thumperis that powershell?00:35
davecheneyy00:35
thumperwhy are they ignoring the error? which I'm assuming is in the _00:35
davecheneyhulk smash00:35
* thumper shakes his head00:36
rick_h_davecheney: do you just need a windows key?00:50
rick_h_davecheney: I know alexisb was asking about getting some people on the MSDN side of things last week00:50
rick_h_davecheney: but I can get you a key if you need one00:50
davecheneyrick_h_: thanks, lets see what happens today00:55
rick_h_davecheney: k00:55
axwwaigani: https://github.com/juju/juju/pull/182#issuecomment-47480573 -- merge failed, please don't set bug Fix Committed until it has01:14
axwotherwise we may lose track of it01:14
wallyworldCaxw: hiya, i don't think your fix for replicaset startup (using Direct: true) has landed in 1.20 yet?01:15
axwwallyworld: I backported something... can't remember which something. I'll check01:15
waiganiaxw: right, sorry about that01:15
axwwallyworld: nope, not in 1.20. I'll backport now01:15
wallyworldaxw: ta, i was looking at CI and local provider upgrade still intermittent01:16
wallyworldand then i checked the commits01:16
axwwallyworld: did you see the azure bug I was working on Friday evening? I had put it against 1.20, cos it's a pretty bad first impression of the azure provider01:17
axwit's not new though01:17
axwAFAICT anyway01:17
wallyworldaxw: yup, and i agree it should be worked on regardless of any misgivings in the email to the dev list :-)01:18
axwwallyworld: what email?01:19
wallyworldaxw: ah, just went to team leads, it said that "This issue is more than 6 months old. I am not inclined to divert efforts to fix regressions." from curtis01:20
wallyworldbut i think if we can get a fix in place and it is low risk we should, since we will be highlighting all these other azure improvements01:21
wallyworldand so people can be expected to try out azure provider01:21
wallyworldand we don't want them to hit this bug01:21
axwok01:21
wallyworldwell, that's imo anyway01:21
axwwallyworld: so, one possible (kinda big, but I think low risk) way to fix it is to disable apt-get upgrade01:22
axwit also makes bootstrap significantly faster, at the expense of not having up-to-date packages01:22
wallyworldhmm, that would then be inconsistent with other providers and i do think we'd want latest packages01:23
axwwallyworld: I meant across the board01:23
axwit's a bit arbitrary what we upgrade to, so I just wonder about the value01:24
axwas opposed to just taking what the server team have released01:24
wallyworldhmmm. i can see the point01:24
wallyworldbut we can't decide such things01:25
wallyworldthere would be pros and cons01:25
davecheneywallyworld: thumper01:25
wallyworldif we can make the current solution work that would be the preference for 1.2001:25
davecheneyi'm going to change version/osVersion() to return a string, error01:26
davecheneythen all the places it returns an error01:26
davecheneyi will wrap it in a mustOsVersion function01:26
axwwallyworld: sure, I will keep looking to see what's the deal. also, I'm OCR today so gotta take time out from fixing things01:26
davecheneyit is clear that juju cannot operate if it doesn't know the series01:26
davecheneyso we cannot continue at that point01:26
wallyworldaxw: SURE, NP01:26
wallyworldbah01:26
wallyworldsorry capslock fail01:26
axw:)01:26
thumperdavecheney: how is that really changing anything?01:26
thumperI guess it is more idiomatic01:27
davecheneythumper: we'll know where the unknown is coming from01:27
davecheneyrather than just being a string "unknown"01:27
* thumper nods01:27
thumperfair enough01:27
davecheneythat propogates through the app until it finally hits something that tries to use it and fucks out01:27
wallyworldis it possible to catch the errors instead of panicing?01:27
davecheneywallyworld: not in the places osVersion is called01:27
davecheneysorry, not in all the places01:27
wallyworldok01:28
davecheneyso you'd have two forms01:28
davecheneyosVersion => string, error01:28
davecheneymustOsVersion => string or panic01:28
wallyworldnot being familiar with the code, hard to say, but 1 way is always preferable, but if not better to panic than let an impossible value propagate01:29
davecheneywallyworld: -EDOUBLENEGATIVE01:29
wallyworlddid i leave out a comma01:30
davecheneywallyworld: it wasn't clear01:30
davecheneyare you for panic'ing or not01:30
wallyworldprefer 1 way of doing things, but if that's not possible, then i guess a panic is ok since it prevents impossible value being propagated01:31
davecheneyfunc macOSXSeriesFromKernelVersion(getKernelVersion kernelVersionFunc) string {01:31
davecheney        majorVersion, err := kernelToMajor(getKernelVersion)01:31
davecheneylook at this !>?>!01:31
davecheney        if err != nil {01:31
davecheney                logger.Infof("unable to determine OS version: %v", err)01:31
davecheney                return "unknown"01:31
wallyworldsigh01:31
wallyworldhow the fark did this get past review01:31
davecheneyso, unknown is being used as a sentinal for error01:31
davecheneybut it happens to be the same type as the valid value01:31
davecheneyso fits throught the hole and leaks01:31
davecheneyfunc (*CurrentSuite) TestCurrentSeries(c *gc.C) {01:37
davecheney        s := version.Current.Series01:37
davecheney        if s == "unknown" {01:37
davecheney                s = "n/a"01:37
davecheney        }01:37
davecheneymore evidence that "unknown" is used as a sentinal for error01:37
axwmenn0: before I land, can you please see my reply on https://github.com/juju/juju/pull/18801:41
axwmenn0: if you've got a suggestion on how to improve that, I'm happy to incorporate01:41
menn0axw: I was just looking at it now01:41
menn0axw: give me 2 mins01:42
axwsure01:42
axwta01:42
menn0axw: I don't quite understand why it's more difficult to do the mongo setup/upgrade work from Run() instead of inside the state worker01:43
axwmenn0: the state worker is started indirectly01:44
menn0sure the mongo setup work can be done can be done just before the first StartWorker call in Run()01:44
menn0surely even01:44
axwthere's a "state starter" worker, which starts the state worker when it knows it's a state server01:44
menn0axw: ok, right. it's getting clearer to me now01:45
axwmenn0: it could, but it'll involve checking for state server info, if we don't have it connecting to the API01:45
menn0axw: so a jujud can theoretically become at state server any time?01:46
axwtheoretically01:46
menn0ok I get it then.01:46
axwthere was talk about upgrading non-state servers to state servers01:46
axwwe haven't done that yet01:46
menn0what you've done makes more sense now.01:46
axwokey dokey01:46
* menn0 checks the PR one more time01:46
wallyworldaxw: you land the work on both 1.20 and trunk, right01:47
axwwallyworld: yes I will do01:47
wallyworldgreat, once all the 1.20 fixes in the area of upgrades are landed, i'll see if i can run the upgrade job on CI by hand01:47
wallyworldto get a feel for if it will be happy01:48
menn0axw, wallyworld: the PR looks ok to me now that I understand the way the state worker is started01:49
wallyworld\o/01:49
axwmenn0: cheers01:49
menn0axw, wallyworld: I have been manually doing what the test that was failing in CI was doing  (well with a little script)01:50
menn0axw, wallyworld: I'm happy to test it again once it lands.01:50
axwwaigani: are you still working on https://github.com/juju/juju/pull/66 ? would you please put "WIP" in the title if it's not ready for review?01:50
menn0failing test even ...01:50
axwmenn0: thanks01:50
wallyworldand it's been failing for you too?01:50
menn0wallyworld: sporadically yes (it's a race after all)01:51
wallyworldyeah. cool. just checking it *was* failing at least sometimes01:52
axwdavecheney: https://github.com/juju/juju/pull/156   <- is this ready to land?01:52
menn0wallyworld: I was never able to test the exact scenario because my machine-0 is trusty but thumper has given me a great tip about how to test with the local provider on canonistack (which gives you all precise machines)01:53
wallyworldok01:53
davecheneyyes, i believe so01:53
davecheneytim and william have resolved their differences01:54
davecheneyit's waiting for the 1.20 trunk to sabalise before I merge more difficult to backport changes01:54
axwok01:54
wallyworldmenn0: did you log into a canonistack instance and run a local provider env from there? or was there some other magic involved?01:54
waiganiaxw: done. also added comment explaining that I'm waiting for the identity stuff to be sorted.01:55
axwwaigani: thanks01:55
menn0wallyworld: no I have been testing locally so far but will test with a local provider on a canonistack instance once this PR lands01:55
wallyworldok01:55
menn0(that was thumper's trick)01:55
axwwaigani: you have failing tests in your branch if you didn't realise02:12
waiganiaxw: on PR 182? I've already fixed it02:14
axwwaigani: not according to the bot02:16
axwhttp://juju-ci.vapour.ws:8080/job/github-merge-juju/289/consoleFull02:16
axwthere's a bunch of the usual mongo failures after your ones in cmd/juju02:16
waiganiaxw: okay, on it02:18
thumperAnyone else seen this test failure in state?  export_test.go:58:02:32
thumperc.Assert(err, gc.IsNil)02:32
thumper... value *errors.errorString = &errors.errorString{s:"cannot create log collection: local error: bad record MAC"} ("cannot create log collection: local error: bad record MAC")02:32
thumper s.ConnSuite.SetUpTest(c) fails02:33
davecheneymac relates to the tls handshake between mongodb and juju02:33
thumperseems intermittent02:33
thumperrace condition?02:33
axwI've heard in the past that there's a problem with the mongo 2.4 TLS support, and that's fixed in 2.602:34
axwwe have seen that error occasionally, I think it used to be worse02:34
thumperwallyworld: https://github.com/juju/juju/pull/19402:36
thumperaxw: ok02:36
davecheneythe hell02:37
davecheneyodessa(~/src/github.com/juju/juju/version) % go test02:37
davecheney# github.com/juju/juju/version02:37
davecheneyimport cycle not allowed in test02:37
davecheneypackage github.com/juju/juju/version (test) imports github.com/juju/juju/testing imports github.com/juju/juju/environs/config imports github.com/juju/juju/version02:37
davecheneyFAILgithub.com/juju/juju/version [setup failed]02:37
davecheneytest's for this package don't even pass on darwin at the moment02:37
wallyworldthumper: looking02:40
wallyworld+102:41
thumperwallyworld: does the merge command work there, or manual03:00
wallyworldworks03:00
davecheneyuh, what the f03:37
davecheneyjuju/version tests don't pass at all on osx03:37
davecheneythumper: OMG03:37
davecheneyi know how this happened03:37
davecheneysomeone started to use version.Current in cmd/juju03:37
davecheneyso that meant version.Current.Series had to make sense on any _client_ platofmr03:38
davecheneyhttps://github.com/juju/juju/pull/19503:49
davecheney                reg := regexp.MustCompile("^" + key))03:54
davecheney                match := reg.MatchString(series)03:54
davecheneythe award for the most egregious use of regex03:54
thumperdavecheney: wha???04:00
thumperthat makes no sense04:00
thumperwhy?04:00
davecheneystrins.HasPrefix(series, key) anyone ?04:00
axwdavecheney: key doesn't contain pattern characters?04:10
davecheneyaxw: no idea04:11
davecheneycan't run the tests04:11
davecheneywell, i subtituted osversion_windows for osversion_linux and the tests pass04:11
axwI mean, HasPrefix is only equivalent if key doesn't have any meta-chars04:12
davecheneyvar windowsVersions = map[string]string{ "Microsoft Hyper-V Server 2012 R2": "win2012hvr2", "Microsoft Hyper-V Server 2012":    "win2012hv", "Microsoft Windows Server 2012 R2": "win2012r2", "Microsoft Windows Server 2012":    "win2012", "Windows Storage Server 2012 R2":   "win2012r2", "Windows Storage Server 2012":      "win2012",04:15
davecheneythey aren't regexes04:15
davecheneythe original author just used the wrong hammer04:15
axwokey dokey04:15
* thumper afk taking kids to ice skating04:36
thumperbbl04:36
=== vladk|offline is now known as vladk
wallyworldaxw: jeez, not having much luck with session closed errors :-(05:21
axwindeed05:21
axwdriving me crazy05:21
wallyworldwe gotta fix those, maybe we can spike on it next week05:22
axwyup, sounds like a plan05:22
wallyworldor this week if we get time after 1.20 goes out05:29
davecheneywallyworld: axw how can I go from a commit, to the review that supports that commit ?05:45
davecheneyie, given a hash, how can I find the PR for that hash05:46
wallyworldhmmm, not sure off hand05:46
davecheneywallyworld: you're probably not going to like the answer05:46
wallyworldwhich is?05:46
davecheneyyou can't05:46
wallyworldwtf05:46
davecheneywallyworld: https://github.com/juju/juju/commit/f1e95e6507a30fab8a31508f46bfd70753ef452a#diff-0d404a754ae93c99bdaa41896be9ce3e05:47
wallyworldwhy is github so popular if it is missing so many key festures05:47
davecheneyi cannot find the PR for this commit05:47
davecheneywallyworld: unit testing isn't popular in PHP05:47
davecheneythey don't miss what they don't know05:47
wallyworldsigh05:47
davecheneywallyworld: can we make the bot insert the link to the PR in the commit message05:48
wallyworldwe can05:48
davecheneyhmm, maybe I just need to find hte "merge commit"05:48
axwdavecheney: yeah, follow the parents up05:48
davecheneyhttps://github.com/juju/juju/commits/master/version/osversion_windows.go05:48
axwthen the PR for the merge05:48
axwor.. hmm05:49
axwthat didn't work05:49
davecheneynup05:49
davecheneyi cannot find who reviewed this file05:50
davecheneyhttps://github.com/juju/juju/commits/master/version/osversion_windows.go05:50
axwdavecheney: https://github.com/juju/juju/pull/9505:50
axwI think05:50
davecheneyso, when github does the merge you get05:51
davecheneyhttps://github.com/juju/errors/commit/6b882ebdb3eb178615c864192a2c1b4502ed86c405:51
davecheneywhen our bot does it05:51
davecheneywe get no record05:51
davecheneyoh the irony05:52
davecheneyhttps://github.com/juju/juju/pull/95#discussion_r1419295305:52
axwthere's plenty of those merge commits in the log05:52
axwfrom the bot05:52
davecheneynate spotted the problem 5 days ago05:52
davecheneybut the OP never came back to followup05:52
=== vladk is now known as vladk|offline
jam1morning dimitern06:46
dimiternmorning jam06:47
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
voidspacemorning all07:52
dimiternhey voidspace07:52
dimiternvoidspace, we should have a quick chat to bring you up-to-speed with the current networking / ipv6 work07:53
voidspacedimitern: yes, let me get coffee etc first and I'll ping you07:53
dimiternvoidspace, sure, no rush07:54
voidspacedimitern: thanks :-)07:54
TheMuemorning07:56
TheMuejam: ping07:56
voidspacedimitern: ok, hangout?08:14
dimiternvoidspace, just a sec08:14
voidspacedimitern: no problem08:14
TheMuejam: no need to pong back anymore, already got it08:19
axwwallyworld: finally found out the secret sauce to get azure to bootstrap with upgrades08:46
axwwallyworld: I measured the time for a bootstrap with/without upgrade, apt-get upgrade added 6 minutes08:47
wallyworld6 minutes08:47
axwI'll propose my fix and mail the list about making upgrade optional and off by default08:47
wallyworldwow08:47
axwalso want to test apt-get using eatmydata08:47
axwthat may make it more reasonable08:47
wallyworldok08:47
wallyworldi wonder if we can deploy an apt cache to azure08:48
wallyworldor mirror08:48
axwwallyworld: I believe there is a mirror already08:50
axwcloud-init configures apt mirrors08:50
mgz6 minutes... doing what mostly?08:50
axwmgz: that's timed from before "apt-get upgrade" to after08:51
axwso... whatever apt-get upgrade is doing08:51
mgzI really don't think not upgrading is an option..08:51
axwwhy?08:51
mgzwe have security fixes for a reason08:51
axwmgz: but we don't continue upgrading after it's provisioned, so it just seems so arbitrary to do it at that point08:53
axwmgz: if people want to keep it secure, then there should be something doing upgrades on a regular basis08:53
mgzyeah, and we don't reboot for kernel either08:53
axwnot just once and then that's it08:53
axwanyway, I'll test with eatmydata, maybe it won't be so bad08:54
wallyworldaxw: mgz: can we start the standup now?08:54
wallyworldaxw: standup?09:05
axwwallyworld: sorry brt09:09
jamespagejam: around? just getting to looking at mongodb/juju-mongodb -> 2.6.x09:39
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
axwwallyworld: the azure virtual network thing may have been coincidental09:56
axwit's not happening now09:57
wallyworldah09:57
wallyworldmaybe see how it goes over the next day or so09:59
axwyep10:02
axwcould someone please review https://github.com/juju/juju/pull/19610:03
axwresolves a 1.20 issue10:04
dimiternaxw, reviewed10:05
axwthanks dimitern10:05
* axw comes back later to handhold the bot10:05
axwwallyworld: I might just change it back anyway, so we at least don't regress10:08
wallyworldrightio10:08
=== vladk|offline is now known as vladk
voidspacedimitern: ping10:37
voidspacedimitern: the "COntainer Addressability in EC2" section of the "Juju Networking Support Changelog and Roadmap" doc10:37
voidspacedimitern: says: Found a working procedure to spin up LXC containers, allocate a private IP from the host using EC2 API,10:38
voidspacedimitern: why are we using LXC on EC2?10:38
dimiternvoidspace, we need addressable containers everywhere basically, EC2 is the first step10:38
voidspacedimitern: why do we need containers?10:39
voidspacedimitern: I mean, isn't EC2 essentially already a container10:39
dimiternvoidspace, for higher density deployments10:39
voidspacedimitern: I understand the need for addressability10:39
voidspacedimitern: heh, containers within containers10:39
dimiternvoidspace, no, EC2 instances are more like KVM machines than LXC containers10:39
voidspacedimitern: so they are containers...10:40
voidspacedimitern: ok, and containers on EC2 is primarily a networking issue?10:40
voidspacedimitern: I'm wondering why it's bundled with the networking story10:40
voidspaceseems like a separate issue - unless the *primary* problem of "nested containers" is addressability10:40
dimiternvoidspace, it is a networking issue - we can't get cloud-local ips for containers without additional work10:41
voidspacedimitern: ok, cool10:41
voidspacethanks10:41
voidspaceso we use the host api to get a cloud local address for the contained container10:41
voidspaceand providers need to support this10:41
dimiternvoidspace, yes, if the provider supports addressable containers, it needs to implement AllocateAddress, so we can get an extra private ip for an instance, which we later assign to the container on that instance10:42
voidspacecool10:43
=== gsamfira1 is now known as gsamfira
fwereadedimitern, quick check: when we're adding the implicitly pre-existing networks to the model, will we be assuming that services require juju-public (if it exists) along with juju-private (which they have to have to communicate with the state servers)?10:51
perrito666voidspace: hey, welcome back10:51
dimiternfwereade, right, juju-public and juju-private will be created automatically post-bootstrap, and all instances will be implicitly on them, regardless what other networks might be specified10:53
voidspaceperrito666: hey, hi10:53
voidspaceperrito666: it was a nice relaxing time away - so I'm actually happy to be back10:53
voidspaceperrito666: mostly just because I'm happy...10:53
voidspaceperrito666: how were things?10:54
fwereadedimitern, juju-private is definitely required for all machines/services10:54
fwereadedimitern, juju-public, if it exists, should probably be required for state servers and services -- at least by default10:54
dimiternfwereade, yes, but it won't be part of the requested networks lists, it will just be assumed it is10:54
fwereadedimitern, hmm, that feels special-casey10:55
dimiternfwereade, it is pretty special :)10:55
fwereadedimitern, not sure it's special enough10:55
fwereadedimitern, juju-private, yes10:55
dimiternfwereade, yeah10:55
fwereadedimitern, juju-public (1) might not even exist and (2) might not be wanted for a number of services10:56
fwereadedimitern, even for the state server, potentially10:56
voidspacejam: chrome just crashed - sorry!10:56
dimiternfwereade, but since that's only important at the time expose was called, it should be fine10:56
fwereadedimitern, I think if it does exist juju-public should be the default for new machines/services, but I suspect that if we're being explicit about required networks we should not automatically tack on juju-public10:57
dimiternfwereade, why not?10:57
fwereadedimitern, ^juju-public seems like a very reasonable thing to ask for (eg) a super-secret db server10:57
fwereadedimitern, and if juju-public is always assumed that's an immediate contradiction10:58
wwitzel3morning, brb, updates want me to restart10:58
dimiternfwereade, if juju-public is available at all, we can use it when needed (during expose), for any service, right?10:59
dimiternfwereade, it won't get configured specifically10:59
voidspacejam: lost connection!11:00
dimiternfwereade, until we need it11:00
voidspacejam: but no, that ticket was dropped11:00
voidspacejam: it should be deleted11:00
voidspacesorry11:00
fwereadedimitern, I'm worried that being *unable* to say "don't allow this service on the public network" is a problem11:00
jam1voidspace: deleted11:00
voidspacethanks11:00
voidspacejam1: I have no in progress tasks11:00
wwitzel3welcome back voidspace11:00
fwereadedimitern, and given that that network may or may not exist I think we should avoid special-casing it too much11:01
voidspacewwitzel3: hey, hi11:01
dimiternfwereade, let's think about this a bit11:01
fwereadedimitern, making it a default *if not otherwise specified*, but requiring juju-public explicitly if you also ask for other networks, feels more like what we need11:01
fwereadedimitern, go for it11:01
dimiternfwereade, in ec2 any machine is on the public network, and you can't restrict this with the default vpc setup11:01
fwereadedimitern, I'm more thinking about maasy environments11:02
fwereadedimitern, if the provider has no machines not on the public network, then provisioning will fail, and hopefully we can clearly explain why11:02
dimiternfwereade, we can still say deploy --constraints networks=^juju-public11:03
fwereadedimitern, how can that work if juju-public is always implicitly a required network? everything with ^juju-public will fail11:04
rick_h_fwereade: rogpeppe call time?11:06
perrito666does anyone know where --version is being registered?11:06
fwereadedimitern, if it's a required network *by default*, that can either be explicitly unspecified with `--network=` or (maybe better?) handled by the cli client such that ^juju-public doesn't send that, we might do better11:06
rogpepperick_h_: ah yes11:06
fwereaderick_h_, balls sorry11:06
fwereaderick_h_, omw11:06
dimiternfwereade, implicitly in the sense they're not part of instance selection criteria explicitly, unless explicitly specified11:07
dimiternfwereade, i.e. trying --constraints networks=^juju-private will fail on the juju side, but networks=juju-private,^juju-public will be ok, and passed to the provider11:08
fwereadedimitern, I thought --networks didn't take ^11:09
dimiternfwereade, i'm talking about constraints, since that's the way now to exclude networks11:09
tasdomas`is there some pattern when operations on state are retried (with state.run(...)) and when they are not?11:28
wallyworldfwereade: andrew reviewed this and i fixed issues, you may want to take a final look https://github.com/juju/juju/pull/185 cool if you don't have time11:48
fwereadewallyworld, I will try, for what that's worth :/11:49
fwereadetasdomas`, in general we'd expect them to be retried, is there something paticular yu're looking at?11:49
fwereadedimitern, sorry, meeting took over my brain11:49
fwereadedimitern, my point is simply that if juju-public is implicitly always a required network for anything, you can't exclude it with constraints because that creates a contradiction11:50
dimiternfwereade, let's say it's not required, but assumed to be there, and you can still specify it with a negative constraint to try to get a machine without it11:51
fwereadedimitern, I'm fine imposing that on juju-private, but not on juju-public, because everything *has* to have juju-private access (derail: manual provider? is juju-private really juju-public? arrgh) but there are use cases in which even the possibility of juju-public access is contraindicated11:51
fwereadedimitern, to assume makes an ass of u and me -- *defaults* are fine, but I'm really worried about having it treated specially internally11:52
dimiternfwereade, re manual - juju-private should be using the same subnet the machine was added with11:53
dimiternfwereade, and there might be a different public one11:53
fwereadedimitern, I would be much happier with the CLI being responsible for inserting juju-public into the API call when appropriate, and making it explicit at every possible level beyond that -- the user doesn't have to care, but I would really like it if the API required you to say what you mean and mean what you say11:54
dimiternfwereade, by special treatment I mean 3 things: 1) cannot be removed, 2) refcount is ignored, 3) assumed to be there when missing in the requested networks lists (but can be specified there explicitly as well)11:54
fwereadedimitern, (1) is about as much special treatment as I'm willing to deal with11:55
dimiternfwereade, (1) implies (2)11:55
fwereadedimitern, it might just mean it's created with a refcount of 1, instead of 0, thus preventing if from being killed; and all the rest of the code works exactly the same11:56
fwereadedimitern, doing (2)-style stuff will spread through state11:56
fwereadedimitern, *someone* will fuck it up sooner or later11:56
dimiternfwereade, well, we have IsDefault=true as well, which might short-circuit some checks for juju-private11:56
* dimitern needs to go out for 1h11:58
fwereadedimitern, (another derail: IsDefault still bugs me, because it's kinda hard to prevent two things thnking they're default)11:58
dimiternfwereade, ttyl, sorry11:58
fwereadedimitern, ping me when you're back please :)11:58
fwereadedimitern, take care11:58
dimiternfwereade, sure ;)11:58
tasdomas`fwereade, ok, thanks - was simply looking for precedent and it seemed like AddUnit in state/service.go was not being re-run11:58
wwitzel3voidspace: ping12:00
bachi mgz12:01
mgzbac: hey12:03
voidspacewwitzel3: pong12:12
wwitzel3voidspace: up for a hangout, could use a rubber duck and potentially active assistance :)12:13
voidspacewwitzel3: happy to hangout briefly  and be a rubber duck - about to go on lunch after that though :-)12:13
wwitzel3voidspace: thanks, heading to moonstone12:14
voidspacewwitzel3: cool12:14
mgzwwitzel3: I thought the term was teddy bear, not rubber duck :)12:21
wwitzel3mgz: I've always known it as rubber duck debugging12:23
wwitzel3mgz: but teddy bear sounds reasonable too12:23
voidspacemgz: yeah, rubber-ducking is the term I know12:23
mgzaa, cultral differences :)12:23
voidspacewikipedia agrees with wwitzel3 and me12:23
voidspacehttp://en.wikipedia.org/wiki/Rubber_duck_debugging12:23
voidspacealthough it does suggest "talk to the bear" as an alternative12:24
fwereadetasdomas`, having taken a quick look, I think the AddUnit thing represents an assumption that addUnitOps doesn't return ops that can fail for any reason other than the service no longer being alive12:30
* voidspace lunches12:30
fwereadetasdomas`, I am at least 80% sure that assumption still holds12:30
fwereadetasdomas`, but it's a lot harder to be sure now that addUnitOps has been factored out12:31
TheMuejam: jam1: ping12:31
TheMuejam1: jam: would you take a look at https://github.com/TheMue/juju/tree/api-endpoints-public-private-address/cmd/juju and here endpoint.go and its test?12:32
jam1TheMue: const endpointDoc = `Returns a list of the API servers formatted as host:portDefault output format returns an api server per line.12:53
jam1needs updating12:53
jam1TheMue: I don't think we want to repeat the Start/End private lists here12:53
jam1if we want to do that filtering, we can reuse it from network12:54
jam1though I think we don't actually want to do that here.12:54
jam1TheMue: so my thought was that we just return the first API address in the list12:54
jam1as that is the one that Juju successfully connected to.12:54
jam1TheMue: if you feel more strongly that we should be determining what addresses to connect to, then we should find a way to share the code with our existing implementation12:55
jam1TheMue: see "network.isIPv4PrivateNetworkAddress"12:56
TheMuejam1: the addresses returned by the API are ordered so the the first one is enough? would be more simple, yes12:56
TheMuejam1: ah, and haven’t seen the network test function12:57
jam1TheMue: so we probably need to document that we're relying on the behavior, but I implemented code so that explicitly the IP address that we connected to last is always sorted to the beginning of the list12:57
TheMuejam1: ok, so the change would be taking the first address, doc that we rely on that and change the doc string that we only return one address?12:58
TheMuejam1: that’s even simpler then :)12:58
TheMuejam1: at least it helped a bit to get into networking12:59
jam1TheMue: I believe so. "state/api/state.go Login()" calls addAddress which calls slideAddressToFront for the address that we successfully connected to.12:59
TheMuejam1: nice behavior. only became insecure because of the slice of strings which made me thought it has no special order. dunno why.13:00
TheMuejam1: eh, the command is called api-endpoints. so always returning only one looks a bit strange. the filename states, that it once has been singular, has it?13:06
jam1TheMue: I believe in older versions it was singular, you'll have to do some spelunking into the 1.18 and 1.16 code bases to figure it all out. But it used to connect to the Environ directly, and report the single DNSName (I think?) of the state server that it found doing a lookup of the instance id found in bootstrap-state in provider storage.13:07
TheMuejam1: just started to dig in the history. but I won’t rename it back as it now used this way.13:09
jam1TheMue: well, I think the only consumer of it was probably assuming it returned a single value13:09
jam1as I *think* we changed the behavior in 1.18 and kapil filed bugs about it not working the way he wanted.13:09
TheMuejam1: ah, august last year13:09
bacmorning sinzui13:10
sinzuihi bac13:10
* fwereade failing to think properly, going for a short walk13:14
axwTheMue: there's already code in network/address.go for categorising IP addresses, too.13:22
axwTheMue: if you pass an IP address into network.NewAddress with ScopeUnknown, it'll check the private network ranges13:23
wwitzel3woo got my test stubs compiling and passing .. I feel like getting the suite setup with the right data and intefaces is always the biggest part of the battle13:23
axwTheMue: sorry, just saw jam1 made the same comment13:23
TheMueaxw: yes, but still thanks for the hint13:24
TheMueaxw: it’s now unneeded in this case as I learned, but talked today about a possible additional command for listing (and filtering) the addresses together with more information13:25
axwok13:26
mattywaxw, I'm just reviewing https://github.com/juju/juju/pull/197 <- It's my first time reviewing core code - and I'm not very familiar with the azure stuff, it looks fine to me but you might like to get someone more familiar with azure to double check13:37
axwmattyw: thanks13:37
axwand I'll add a reference to the doc13:37
TheMuejam1: simplified it (aka stripping all curious ideas of first approach away) ;)13:38
mattywaxw, shouldn't you be asleep?13:41
axwmattyw: it's not yet 10pm, I don't go to sleep that early :)13:41
mattywaxw, oh right  - you must be western Australia?13:42
axwyup13:42
axwUTC+813:42
jam1TheMue: "we rely on the fact that the returned API endoint always has the last address we connected to as the first address" perhaps?13:45
jam1TheMue: and second to that, I think we want a test where "info" has more than one value (if we can manage that) so that we can see that it is actually doing the right thing.13:46
jam1I have the feeling we'd really like a simple helper that runs the command and grabs the output rather than putting that into each test caes.13:46
jam1we might also need a test where we haven't connected to the state already?13:47
TheMuejam1: ok, text change is simple. but info with more than one value? hmm, have to check how we can to this13:48
perrito666wwitzel3: voidspace I will not make it to the stdup, I am on the sprint, sorry13:50
perrito666btw, where is eric?13:50
axwsinzui: the summary you just changed 1316185 to isn't right. it happens in azure with the release stream, but does not happen with the daily stream. but it's not just the stream that's the problem it's a combination of things13:53
axwat the end of the day it's how long apt-get upgrade takes13:54
wwitzel3perrito666: voidspace is on sapphire's standup anyway, he is working on the networking stuff13:58
alexisbwwitzel3, so sad you are all alone14:00
wwitzel3I wallow in it, the sadness14:05
sinzuiaxw, sorry I will fix the summary14:08
mbruzekHi guys, I need to search for and/or open a bug against juju-core.  I know you moved the code to github, are the bugs still kept in launchpad?14:08
axwsinzui: nps. I changed it already, feel free to change again14:09
rogpeppefwereade, wallyworld: i'm just wondering why we keep both md5 and sha256 hashes for the storage blobs?14:11
mbruzekdisregard my question, read it in the topic.14:12
katcohi everyone, i'm katherine/katie :) today's my first day on the juju-core team. going through some administrative setup at the moment, but wanted to pop in and say hello!14:12
mbruzekwelcome Katie!14:12
ericsnowkatco: welcome!14:12
perrito666katco: welcome14:14
mgzhi!14:15
katcothanks all :)14:15
TheMuekatco: heya, nice to have you now in our team. welcome and enjoy your new job.14:17
rogpeppekatco: hiya and welcome to Canonical! i saw your blog post about joining and enjoyed it... i recognised your name from somewhere (possibly comments on gustavo's posts?)14:27
jcw4welcome katco :)14:29
dimiternhey katco and welcome!14:31
katcorogpeppe: quite possibly! i enjoy gustavo's posts14:38
rogpeppekatco: me too14:39
perrito666the "only refresh video when this tab is active" hangout policy is going to give me a hearth attack one of these days14:44
dpb11.19.4: anyone seen this error? https://pastebin.canonical.com/112696/  (intermittent).14:49
rogpeppefwereade, rick_h_, wallyworld: this is the kind of thing i had in mind for blob storage: http://paste.ubuntu.com/7726779/14:50
rogpeppefwereade: i think it could work pretty well. no need to ref count - we can just garbage collect occasionally.14:51
jam1katco: welcome to the team!14:51
katcojam1: ty!14:52
wwitzel3katco: welcome14:52
katcowwitzel3: ty as well :)14:52
* katco learning the joys of sl14:52
TheMuejam1: short info, w/o an API connection we currently only return nothing. I’ll change it to an error message, ok?14:57
* TheMue is afk for a moment, switching car back from the garage15:00
alexisbkatco, welcome!15:00
katcoalexisb: thank you, and hello again!15:00
jam1TheMue: I thought that the "refresh" logic would have connected to the state server to ensure we have addresses if there was none already cached.15:01
jam1certainly if we don't have an address and can't connect, that sounds like an error state15:01
=== tasdomas` is now known as tasdomas
TheMuejam1: maybe my test is to naive here. I’ve closed APIConn of the test to see how the command execution behaves15:45
wwitzel3So the caller.Call code (http://paste.ubuntu.com/7726982/) is panicing from a nil pointer reference. It happens in Call, it never makes it to the apiserver method. I'm sure I'm doing something completely wrong, I just have no idea what.15:45
jam1wwitzel3: most likely the caller you are passing into NewFacade is nil15:49
wwitzel3jam1: when I check caller for nil it isn't nil and the printed value is http://paste.ubuntu.com/7727026/15:53
jam1wwitzel3: can you paste the traceback?15:54
jam1(panic)15:54
wwitzel3yep15:55
wwitzel3jam1: think I found it, looks like a call to api.st.EnvironConfig is causing it15:58
=== vladk is now known as vladk|offline
wwitzel3It helps if I actually set the state in the EnvironmentAPI struct.16:41
perrito666is the bot only set up for juju/juju ?16:45
perrito666I just $$merge$$d on juju/utils and nothing happens, and looking into the history of the repo merges are by rogpeppe16:47
rogpeppeperrito666: yeah, the 'bot is only set up for juju/juju16:47
rogpeppeperrito666: you just have to do the merge16:48
perrito666rogpeppe: using the gh large green button or via command line?16:48
* perrito666 does not want to break the repo16:48
rogpeppeperrito666: green button16:48
perrito666rogpeppe: thank you16:49
perrito666I tested the branch by hand just in case16:50
perrito666and I read the other day that github was nice enough to implement unmerge16:50
=== urulama is now known as urulama-food
voidspaceRight, Krav Maga time17:11
voidspacesee you all tomorrow17:11
voidspaceEOD17:12
ericsnowvoidspace: bye17:12
=== urulama-food is now known as urulama
ChrisW1so this is where all the cool kids hang out :-)17:57
* ChrisW1 waves to thumper, men0 and voidspace17:57
katcogah make install-dependencies hosed my go v1.318:14
katcowhat version is the project utilizing, and should it work in 1.3?18:15
ericsnowkatco: FWIW I'm running 1.2.1 (system install)18:30
ericsnowkatco: no idea on 1.318:30
katcoi know there were some performance improvements in 1.3. newbie question: how does the team evaluate migration to new releases?18:31
perrito666katco: iirc 1.218:35
katcoericsnow: perrito666: ty18:35
* katco is now wondering how difficult it might be to juggle multiple versions of go18:36
ericsnowkatco: I just started a few weeks ago so don't count on me to be a deep resource :)18:37
ericsnowkatco: yet18:37
wwitzel3katco: we are kind of restricted by what is distributed with LTS releases.18:37
wwitzel3at least that is my understanding, I am sure someone has a better more indepth explanation of the actual process or migration to the latest release18:38
katcoericsnow: well you have a few weeks on me ;)18:38
katcowwitzel3: i use gustavo niemeyer's excellent godeb to grab new versions. i understand if that's not tenable for the project; just curious!18:39
katcohm. i'm trying to go get code.google.com/p/go.tools/cmd/vet, but i don't have write access to goroot. is there a better solution than to grant my user account access to goroot?19:35
perrito666goroot is not something on ~ I assume19:36
katcoperrito666: i'm following the CONTRIBUTING.md, and when i ran make install-dependencies, it grabbed the go dist from ubuntu proper19:37
katcocurrently sitting under /usr19:37
katco/usr/lib/go19:37
katcoi can probably just overwrite it with gustavo's godeb, but i wasn't sure if that was a good solution. i'm assuming i'll be doing make install-dependencies in the future19:38
mattywIt's probably not the best answer but I gave up on that a while ago. I just download the binary from golang.org19:38
perrito666katco: mm, I set GOPATH to ~/gocode and in my case GOROOT is not set19:38
ericsnowkatco: your GOPATH is set to something you own?19:38
katcoericsnow: it is... it's using gotooldir since this is in go.tools19:39
katcowhich is the thing under /usr/lib/go19:39
katcoit sounds like maybe what i should do is just install my own version of go... do we run make install-dependencies repeatedly? or is that like a one-timer?19:39
mattywA one time thing I think19:40
mattywI've got my path setup so my go binary is the first thing it finds. So anything that changes underneath is ignored19:40
perrito666katco: in my experience onetimer (that is ~3months)19:40
katcoperfect :)19:40
katcomattyw: well, i use godeb which uninstalls ubuntu's version, and make install-dependencies does the same19:41
katcoso they would be warring =/19:41
mattywThere was something weird with old packages of go that would try to put packages in /usr/lib irrespective of gopath19:41
katcoi asked over in #go-nuts, and they said it's because it comes from go.tools that it will use go env |grep -i gotooldir19:42
katcowhich points to /usr/lib/...19:42
katcoi'll see if godeb behaves better19:42
katcoty team :)19:42
katcoit just occurred to me that if i switch back to 1.3 i'll get debugging working again too19:44
katcofyi, gustavo's godeb installation works quite nicely19:51
katcosaves time on setup too!19:51
perrito666ok eod19:51
katcotc perrito666 ty for the help!19:51
perrito666cuall tomorrow, cheers19:52
=== vladk|offline is now known as vladk
katcoin scripts/, should these refer to local directory, or hard-coded to github.com/juju/juju?20:04
katcoalso, off of a fresh go get -u, these scripts return 3 errors for me20:07
mattywHave you run godeps?20:19
katcomattyw: i have not20:20
katcoi'm following: https://github.com/juju/juju/blob/master/CONTRIBUTING.md20:21
mattywgodeps -u dependencies.tsv I think is the command20:21
mattywIt sets everything to the correct version20:21
katcoty i'll try that... should the CONTRIBUTING.md be updated? or is this just implied20:21
katco?20:21
ericsnowkatco: it should already be there20:22
ericsnowkatco: see the "Dependency management" section20:22
katcoericsnow: oy. sorry... i swear i just did a find on the page =/20:22
ericsnowkatco: no worries :)20:23
mattywAlthough it's just occurred to me that I haven't setup the pre commit hook20:23
=== vladk is now known as vladk|offline
katcoi'm still receiving a build error in trunk: # github.com/juju/juju/state20:32
katco../../juju/juju/state/action.go:86: too many arguments in call to names.NewActionTag20:32
thumperkatco: have you run godeps?20:33
thumperkatco: we have a system so trunk is always buildable20:33
katcothumper: i have20:33
thumperkatco: let me look20:33
katcoi'm sure i'm doing something wrong20:33
katcodid a go get -u github.com/juju/juju; go build ./...20:34
bodie_you want to do juju/juju/...20:34
bodie_then run godeps20:34
bodie_then try building20:34
bodie_(... in the go get step)20:35
katcoah i bet that's it20:35
thumperyeah20:35
katco(get taking longer :))20:36
thumperkatco: pretty sure the godeps instructions are in the contributing file20:36
katcothumper: they are, thank you20:36
thumpernp20:36
katcoyay, building!20:37
katcook, now my other question is why are the scripts in my fork building the trunk for error checking?20:38
thumperum... wat?20:39
katco(assuming i am wrong again) if i look at github.com/katco-/juju/scripts/pre-push.bash20:40
thumperwallyworld, sinzui: interesting data point, last night bootstrapping ec2 m3.medium, I got timeout failure during jujud bootstrap with mongo replica set not coming up20:40
thumperone time out of three20:40
katcothe last line is: go build github.com/juju/juju/...20:40
katcoi am wondering if that should be "go build ../..."?20:41
thumpernah...20:42
thumperthat's fine20:42
thumperit was probably that the godeps step hasn't been added there20:42
thumperand it probably should be20:42
sinzuithumper, I have seen that too. The 5 failures listed here pertain to replicaset http://juju-ci.vapour.ws:8080/job/aws-deploy-trusty-amd64/20:42
thumpersinzui: any idea why it is flakey?20:43
bodie_katco, if you go build ./... in juju, and the deps aren't built, it should also build them20:43
bodie_:)20:43
thumpersinzui: or is it likely to be "you are using an old mongo, please upgrade"20:43
sinzuithumper, does trusty have an old mongo?20:43
thumpersinzui: we are using juju-mongodb which is 2.420:43
katcomaybe i'm resting on a bad assumption; isn't that line designed to check to see if the branch you're currently hacking on builds?20:43
thumperkatco: yes20:44
katcohm. is my setup wrong? should i be working out of the github.com/juju dir?20:44
bodie_why?20:45
katcoi think i'm missing something. if go build github.com/juju/juju is designed to test my current working set, and i'm modifying github.com/katco-/juju, i am missing how it fulfills its purpose20:46
mattywIt needs to be juju/juju20:46
bodie_ah, what you want to do is actually clone your personal repo to $GOPATH/github.com/juju/juju20:47
katcoahhh ok!20:47
bodie_I think this is all in CONTRIBUTING though20:47
katcogosh i'm sorry. i suppose i need to go back through and read this more carefully20:47
bodie_I had many of the same questions, heh20:47
katcothanks for the help20:47
bodie_np :)20:47
thumpersinzui: what is up with the lander?  I see lots of rejections. Is there a common failure?20:48
sinzuiall are PANIC session closed thumper .  A bad test is blocking everyone's work20:50
thumperfark20:50
sinzuiAnd it is happening with got test and got test -p 220:51
* thumper sighs20:52
thumperhow did it get in20:52
thumper?20:52
* thumper runs tests locally to see if he can reproduce20:53
sinzuithumper, it only has to pass intermittently to get in.20:53
thumpersinzui: is it always the apiserver code?20:54
sinzuithumper, Is it possible for the joyent provider to disable the default bootstrap timeout of 10 minutes? That is to say, I have killed procs that are 23 hours old. Bootstrap didn't give up20:55
sinzuithumper, I think it is...I have never seen it to be any other case and it did appear with API a few weeks ago20:55
* thumper takes a wild stab in the dark and points at the presense code20:56
wallyworldrogpeppe1: we use both hashes because william insisted on it :-) originally it was just md5 or sha25620:56
wallyworldthumper: sinzui: we have been living with the intermittent failures till now since they were, well, vey intermittent. now it seems there's a much more serious issue we'll need to try anf fix asap20:57
* thumper nods20:57
thumperwallyworld: I'm guessing it happens more under load20:58
wallyworldpart of the issue is the folks fixing it didn;t write the original code nor are mongo experts20:58
thumperwallyworld: I don't see it much at all with my i7, and ssd20:58
wallyworldme either20:58
thumperI remember having to run tests while having other code in a compile loop to put my machine under load20:59
thumper(in another project)20:59
wallyworldthumper: the cloud on which the tests are run also seems to affect it somewhat, so it does seem to be a timing issue of some sort21:01
thumperyeah21:01
thumperI'm looking at the presense code now21:02
* thumper recoils21:02
thumpertype Presencer21:02
thumperaarrggghhh....21:02
wallyworldyep, i hate those names21:03
wallyworldkatco: meeting?21:03
katcowallyworld: apologies... setting up canonical g+21:07
bodie_anyone familiar with the uniter_test Steps in worker/uniter?21:07
wallyworldnp :-)21:07
katcowallyworld: and again apologies for noise. we brilliantly scheduled air duct cleaning before i knew my start-date21:08
wallyworldlol21:08
wallyworldmy laptop fan is very noisy21:09
thumperwallyworld: I think I have found it21:10
* thumper double checks21:10
wallyworldthumper: otp with katco21:10
thumperhmm... maybe not21:12
katcowallyworld: katherine.cox-buday@canonical.com21:12
katcowallyworld: i'm so sorry i can't hear anything21:23
wallyworldno worries21:23
katcowallyworld: i muted you out of compassion ;)21:23
katcoi think they may be done with this section of the house momentarily21:23
wallyworldthat's what people say to me too21:23
katcoLOL21:23
bodie_they sensed the frustration.. lol21:24
thumperugh....21:26
thumperkatco: welcome, just worked out who you were21:26
thumperI think I have found a leak in some of my tests...21:27
=== menn0_ is now known as menn0
bodie_https://github.com/juju/juju/pull/19921:47
bodie_any and all review would be appreciated, WIP21:47
bodie_(Action running on unit)21:48
=== Ursinha is now known as Ursinha-afk
katcothumper: thank you!22:01
=== Ursinha-afk is now known as Ursinha
ericsnowdo we use /etc/init/juju-db.conf anywhere?  (we are currently backing it up)22:34
sinzuiericsnow, that is the upstart script to keep the service alive when the machine reboots22:35
ericsnowsinzui: what creates it?22:36
sinzuiericsnow, I onlt know from what I observe in QA. I think the act of bootstrapping creates both /etc/init/juju-db.conf and /etc/init/jujud-machine-0.conf22:37
ericsnowsinzui: okay, thanks22:38
sinzuiericsnow, issuing  kill -SIGABRT <pid> will terminate jujud and remove both upstart scripts22:38
wallyworldwwitzel3: looking at branch now. just saw first line. be forewarned - me and thumper detest the apparent Go idiom of adding "er" to nouns to make stupid interface names :-P23:29
wallyworldthe worst case in our code base was/is Addresserer23:29
wallyworldor something like that23:29
wallyworldInstanceTyper isn't too bad though :-)23:30
wwitzel3wallyworld: yeah thumper just talked about that in the Oynx standup .. I only did it because I thought I was supposed to :) .. I also think it is stupid23:32
wallyworld:-)23:33
* wallyworld vomits23:33
wallyworldwwitzel3: "capabilityer"23:34
wallyworldlol23:34
wallyworldthat's gotta go23:34
thumperhaha23:36
mbruzekHiya thumper do you have a minute?23:43
thumpermbruzek: ah... yeah23:44
mbruzekI got an error that tvansteenburgh (lets call him Tim2) has also found.23:44
mbruzekhttp://pastebin.ubuntu.com/7728552/23:44
thumperwallyworld: it looks like I don't leak in the test like I thought, no idea why they are in the panic log of the tests...23:45
wallyworldthumper: np, thanks for looking. we'll look today and try and sort it out23:46
thumpermbruzek: what architecture23:46
mbruzekWe are both getting our deployments to fail on apt-get install  commands.  I spoke with Ben Howard about this and I understand it might be due to stale meta-data23:46
mbruzekTim2 is getting his on x86, but I am getting this same problem on Power systems.23:46
thumpermbruzek: is samba ported to power? could be stale metadata23:47
thumperlooks like it should be there but isn't23:47
mbruzekOnce I ssh to the nagios/0 unit and run sudo apt-get update everything works fine.23:47
thumpermbruzek: perhaps the install hook should do an update before trying to install23:48
mbruzekthumper, I considered that, but I got this problem on a few charms.23:48
wallyworldwwitzel3: looks solid. i don't think the client api needs to marshal the result to json though - that is done by the rpc layer if we just define a struct in params.go to hold the result23:49
thumperI bet it is the local provider right?23:49
mbruzekthumper,  yes on both architectures.23:49
bigjoolsthumper: can you comment on this please? I think it's really a juju bug https://bugs.launchpad.net/maas/+bug/133517923:49
_mup_Bug #1335179: deploying containers to maas environment breaks with nic renaming <oil> <MAAS:Incomplete> <https://launchpad.net/bugs/1335179>23:49
thumpermbruzek: right, in order to make machines boot faster, juju doesn't do apt-get update/upgrade when the machines are started any more23:49
wallyworldwwitzel3: also, it would be ideal if this were a few branches - 1 for provider refactor, 1 for client calling code etc23:49
thumpermbruzek: so deploying on to normal other machines, you wouldn't need the update23:50
thumperas juju has done it already23:50
thumperbut the local hasn't23:50
thumperand is likely stale23:50
mbruzekthumper, how recently was this changed?23:50
thumpermonths ago23:50
thumperbut only becomes apparent as new packages are put on the archives23:50
thumperto make it stale23:50
wallyworldwwitzel3: but git sucks for pipelines cf bzr so if you need to leave it all in one branch we can managed that23:50
thumperit should probably be best practice for charms to do an update before installing packages23:51
thumperas they can't be sure they are on a new up to date machine23:51
* thumper clicks on bigjools's bug23:51
mbruzekmarcoceppi, claims that breaks idepotentcy.  If you install today and apt-get update is called on config-changed several days later you could get a different (incompat) version.23:52
mbruzekthumper, Is there a way to enable the apt-get update in cloud-init through juju ?23:52
mbruzekI haven't tested all the charms, but I am guessing this is not isolated to 1 or 2 charms.23:53
thumpermbruzek: the local provider explicitly doesn't23:53
thumpermbruzek: ha, that is laughable, you don't get idempotency with juju charms23:53
thumpermbruzek: you never will unless you use version pinning for everything you depend on23:54
thumpersorry, but I'll argue with marcoceppi if I have to23:54
mbruzekthumper, aside from that issue, what happens if we find that *many* charms have to be "re-written" to work around this issue?23:55
thumperbigjools: you were right, juju bug not maas23:55
bigjoolsthumper: ok thank you, can you retarget? :)23:56
thumpermbruzek: then it should be documented as charm best practice23:56
thumperbigjools: added bug target already23:56
bigjoolsthumper: cool ta23:56

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