/srv/irclogs.ubuntu.com/2014/04/17/#juju-dev.txt

davechen1ywaigani: /o01:07
davechen1yo/01:07
waiganidavechen1y: hiya01:07
davechen1ywaigani: whatya working on ?01:08
davechen1yat the 11th hour, i'm not quite sure what I should work on01:08
davechen1ysinzui: there won't be another release into trusty at this stage, right ?01:08
waiganidavechen1y: adding tests for the mock functions BundleTools etc01:08
davechen1ywaigani: SGTM01:08
davechen1ymaybe i'll look at some of those race detector failures01:08
waiganidavechen1y: writing tests forces me to actually understand what the functions are meant to do and their consequences01:09
waiganidavechen1y: so I've been going a bit slow as I rethink / re-understand things01:10
sinzuidavechen1y, I doubt it. We might rebuild 1.18.1 if there are linking issues. I think there ill be a 1.18.2 before we do 1.20. I expect 1.18.2 to get excepted into trusty01:10
waiganimy IRC has been playing up, just noticed that I was not connected all morning01:11
davechen1ysinzui: it was not clear what the state of the linking issue was01:12
davechen1yis arm64 the only build affected ?01:12
sinzuiI don't know. jamespage asked about my packaging branches. We can rebuild to fix bugs easily01:13
davechen1ysinzui: can you point me to the package branch01:14
davechen1yplease01:14
sinzuidavechen1y, , The trusty package was made with lp:~juju-qa/juju-core/devel-packaging , The other series were made with lp:~juju-qa/juju-core/devel-mongodb-packaging01:14
davechen1ysinzui: ta01:14
davechen1y/win1301:21
thumperhmm...01:31
* thumper seems to have a test failure on trunk01:31
davechen1ythumper: what do you see01:32
thumperdavechen1y: bootstrap test failure01:32
* davechen1y has many test fialures01:33
* thumper is running them all01:33
davechen1ygod damn store errors01:34
davechen1yis that branch ever going to bemerged ?01:34
davechen1y$ rm -rf store/01:34
davechen1yfixed01:35
thumperheh01:35
thumperI haven't double checked dependencies for a while01:36
thumpershould do that01:36
thumpermenn0: oh hai01:42
thumperdavechen1y: does the -exec flag for 'go test' in 1.3 allow for different test runners?01:47
davechen1ythumper: possibly01:47
davechen1yactually no01:47
davechen1yit was added so we could insert the nacl loader01:47
davechen1yso go run x.go01:48
davechen1ycompiles x.go01:48
davechen1ythen rathre than calling ./x01:48
davechen1yit calls -$(thing you execed) ./01:48
davechen1ythumper: what do you mean by test runner01:48
thumperI mean an alternative way to run and format outputs01:49
thumperfor example, being able to output subunit format01:49
thumperso you can then hook into things like testrepository01:49
thumperdavechen1y, waigani, axw, wallyworld: BootstrapSuite.TestTest in cmd/juju fails for me on trunk  paste.ubuntu.com/7265017/ can anyone else reproduce?01:52
axwthumper: heh, proposing a fix now :)01:52
thumpercould be a precise vs trusty test failure01:52
thumperaxw: ah cool01:52
thumperthanks01:52
davechen1ythumper: what the hell01:53
davechen1ynever seen that before01:53
axwnps, I guess it was a package update that triggered it01:53
thumperdavechen1y: we upload different tools for different versions01:53
axwdavechen1y: what's your "distro-info --lts" say?01:53
thumperdavechen1y: could be an error from that01:53
axwif it says trusty, then it will (should?) break the test01:53
axwthumper: https://codereview.appspot.com/8873004301:53
davechen1y$ distro-info --lts01:54
davechen1ytrusty01:54
davechen1yaxw: my tests are running01:54
davechen1y... they take a while01:54
axwdavechen1y: go test -gochech.v -gocheck.f BootstrapSuite.TestTest launchpad.net/juju-core/cmd/juju01:55
axwgocheck.v*01:55
davechen1y$ go test -gocheck.v -gocheck.f BootstrapSuite.TestTest launchpad.net/juju-core/cmd/juju01:56
davechen1yOK: 0 passed01:56
davechen1yPASS01:56
davechen1yok      launchpad.net/juju-core 0.079s01:56
davechen1yoh01:56
davechen1y0 tests ran :)01:57
axwehh01:57
davechen1yoh cmd/juju and cmd/jujud don't pass on ppc01:57
davechen1ythey take > 600 seconds01:57
axwah, heh :)01:57
menn0thumper: g'day. just lurking :)01:57
thumpermenn0: I'm just writing you an email :)01:57
davechen1ymachine_test.go:849: c.Assert(err, gc.IsNil)01:58
davechen1y... value *errors.errorString = &errors.errorString{s:"cannot assign unit \"s0/0\" to machine 1: machine \"1\" cannot host units"} ("cannot assign unit \"s0/0\" to machin01:58
davechen1ye 1: machine \"1\" cannot host units")01:58
davechen1yI get this faliure all thetime01:58
menn0thumper: ok cool01:58
davechen1yaxw: $ go test -gocheck.v -gocheck.f BootstrapSuite launchpad.net/juju-core/cmd/juju02:00
davechen1yOK: 0 passed02:00
davechen1yi don' tthink that is the test you mean02:00
davechen1yPASS02:00
davechen1yok      launchpad.net/juju-core 0.077s02:00
axwdavechen1y: lemme check what I actually did02:00
axwdavechen1y: sorry, package needs to come directly after "go test"02:02
* davechen1y would like to remove all the use of version.Current in our test02:02
davechen1ywhat we _actually_ mean is version.Current.Binary02:02
davechen1yie, make tools of the current development version02:02
davechen1ybut the use of the larger version.Current means the series of the host that is running the tests leaks into the test02:02
axwdavechen1y: but actually I just ran from cmd/juju02:02
axwdavechen1y: and now I'm not sure specifying it on the command line works02:02
* axw stops trying to be helpful02:03
=== Ursinha is now known as Ursinha-afk
axwthumper: I know why it broke now, if you care: distro-info returns different values depending on the date02:17
=== Ursinha-afk is now known as Ursinha
axwwallyworld_: do you have an SSD?02:20
thumperaxw: wallyworld_ is having irc connection fun02:21
axwso it seems02:21
thumperon a hangout with him now02:22
thumperthe hangout is fine02:22
axwok02:22
wallyworld_axw: my irc is shit today :-(02:22
axwokey dokey02:22
axwwallyworld_: I will ask you about it in the hangout02:22
wallyworld_ok02:22
wallyworlddavechen1y: hi, what was the final outcome of the discussion about bug 1308263? is there something for james to fix or do we need to engage someone else?02:47
_mup_Bug #1308263: /var/lib/juju/tools/1.19.0.1-trusty-arm64/jujud: error while loading shared libraries: libgo.so.5: cannot open shared object file: No such file or directory <hs-arm64> <packaging> <juju-core:Triaged by wallyworld> <https://launchpad.net/bugs/1308263>02:47
davechen1ywallyworld: finger pointing mainly02:52
wallyworld:-(02:52
davechen1ynobody knowns who owns the package branch02:52
davechen1ywhen we find tat02:52
davechen1ythat02:52
davechen1yapply the diff I included in the issue and bobs your uncle02:52
wallyworldwhat's the branch url?02:52
davechen1ywallyworld: i'm afraid i don't know02:53
wallyworldok, i'll find someone to annoy about it02:53
thumper*big sad face*03:53
thumpermore intermittent failures in cmd/juju and cmd/jujud03:53
davechen1ythumper: http://paste.ubuntu.com/7265483/03:55
davechen1ymy hammer03:55
* thumper does the lbox wait04:02
thumper a not very interesting branch: https://codereview.appspot.com/8880004304:05
davechen1ythumper: LGTM04:08
davechen1ynice cleanup04:08
thumperdavechen1y: ta04:16
davechen1y                instance, ok := instance.(*azureInstance)04:18
davechen1y                if !ok {04:18
davechen1y                        continue04:18
davechen1yshould we really be ignoring that someone has passed instances from one provider to another ?04:19
* axw tries to remember why that's there04:19
axwdavechen1y: no I don't think we need that actually, that was my mistake04:21
axwdavechen1y: I *think* that I was thinking manual instances would come through, but they won't04:21
davechen1yaxw: we can return an error from that method04:22
axwdavechen1y: I don't think there's any need to check at all04:23
axwnothing should be passing in foreign instances04:23
davechen1yaxw: ok, i'll just remove the 2 arg check04:24
=== vladk|offline is now known as vladk
jam1thumper: LGTM, though there was a 'debugf' helper, that should probably be Tracef rather than Debugf, because it had extra suppression04:54
jam1thumper: and pinger/watcher stuff is likely to be quite noisy otherwise04:55
thumperjam1: ah.. good point05:07
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
jam1axw: are you actually working on bug #1247232 ?06:43
_mup_Bug #1247232: Juju client deploys agent newer than itself <canonical-is> <ci> <deploy> <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1247232>06:43
jam1axw: also, your Kanban cards seem out of sync with reality. "provider-driven machine/unit assignment policy" seems to actually be landed.06:43
axwjam1: not really, there's more work to be done to support ec2 AZs06:44
axwjam1: yes just started working on #124723206:44
_mup_Bug #1247232: Juju client deploys agent newer than itself <canonical-is> <ci> <deploy> <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1247232>06:44
jam1axw: it isn't a huge deal, but it would be nice if you could add cards when you pick things up, since it gives visibility on my team to all the great stuff that you're getting done.06:45
jam1axw: and great about #1247232, really looking forward to that one06:45
_mup_Bug #1247232: Juju client deploys agent newer than itself <canonical-is> <ci> <deploy> <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1247232>06:45
axwjam1: sure, I try to - bad memory :(06:46
axwjam1: would've been good to do it before 1.18 I guess, but it shouldn't be too difficult to maintain bootstrap compat within the 1.18 series06:46
jam1axw: yeah, honestly breaking bootstrap compatibility in a stable release would really make me question our guidelines of what "stable" is06:47
=== vladk is now known as vladk|offline
dimitern21860907:59
dimiternahem, morning :)07:59
jam1morning dimitern, welcome back, did you have a good break?08:10
dimiternjam1, hey, yeah, only the weather is shitty :)08:12
jam1dimitern: were you diving?08:12
dimiternjam1, ah, no - it's too cold for that yet08:14
dimiternjam1, i'm showing william & co around08:14
rogpeppemornin' all08:22
* rogpeppe wishes trusty hadn't halved his battery life08:23
dimiternhey rogpeppe08:23
rogpeppedimitern: hiya08:23
dimiternrogpeppe, wow i haven't experienced such change in battery life08:23
dimiternwith trusty08:23
=== vladk|offline is now known as vladk
rogpeppedimitern: i just opened the laptop and it predicts me 3.40h lifetime. previously it would predict 8-10 hours08:24
vladkjam1, dimitern, rogpeppe: morning08:25
rogpeppevladk: hiya08:25
jam1morning vladk08:25
jam1rogpeppe: the question is whether the prediction is wrong or the usage is wrong :)08:26
rogpeppejam1: usually the prediction overestimates somewhat08:26
jam1rogpeppe: I can change your indicator to *predict* 5 days if you like :)08:26
vladkdimitern: I'm going to start work on NetworkerWorker08:26
rogpeppejam1: i certainly used to be able to use it for almost the entirety of a transatlantic flight. i suspect that won't be possible any more.08:27
jam1rogpeppe: you could always just boot into the terminal prompt... runlevel 2, IIRC08:27
rogpeppejam1: not great if i want to watch videos, though :-)08:28
jam1rogpeppe: http://www.youtube.com/watch?v=0nRPoS2WDJA08:28
jam1Text mode Quake08:28
rogpeppeha ha08:28
jam1IIRC, it was a OpenGL driver to text08:29
jam1but in Unity everything is just a GL texture anyway, right?08:29
dimiternhey vladk08:31
dimiternvladk, that sgtm08:32
dimiternrogpeppe, re ErrorContextf - it's actually a good thing that now errors.Contextf will preserve known error types08:32
rogpeppedimitern: i'm afraid i don't agree08:33
vladkdimitern: could you explain shortly the purpose of NetworkerWorker08:33
dimiternrogpeppe, why is that?08:33
rogpeppedimitern: it can actually open up possible bugs08:33
dimiternrogpeppe, I havent' seen any failures08:34
dimiternrogpeppe, and william agrees on the changes btw :)08:34
rogpeppedimitern: because error types (particularly not-found errors) are used to mean many different things08:34
rogpeppedimitern: our error paths are not that well tested08:34
dimiternvladk, it's a simple worker that on startup gets the networks the machine is supposed to be on and does what we're currently doing in cloudinit08:35
dimiternrogpeppe, this is a gradual improvement on that as well08:36
rogpeppedimitern: if i have a function that uses errors.Contextf that has 10 possible error return paths, currently I know that it doesn't matter if one of them might return a non-found error for some unrelated reason - it won't cause the function itself to return a not-found error08:36
rogpeppedimitern: the direction i'm trying to move towards with errgo is to explicitly mention what error types might pass through08:36
dimiternrogpeppe, some users of ECf are actually checking for a specific error before returning the prefixed error, so that it's not lost08:37
rogpeppedimitern: except that it is adding more possible typed errors to the return08:37
dimiternrogpeppe, the errgo direction is the way to go I agree, but until we have that, this CL makes things slightly better08:37
rogpeppedimitern: i actually don't think so08:38
dimiternrogpeppe, can we agree to disagree? :)08:38
rogpeppedimitern: it changes every single place where errors were masked by ErrorContextf into a place where the error type can pass through08:38
rogpeppedimitern: that invalidates one of the key transformations that my errgo gofix module puts in place08:38
dimiternrogpeppe, masking errors with ECf is wrong imo08:38
rogpeppedimitern: i think it's usually right08:39
dimiternrogpeppe, well then that means the assumption can be improved, no?08:39
dimiternvladk, and in order to do that, we'll need a Networker API facade, similarly to Provisioner API for example08:40
rogpeppedimitern: by making errorcontextf preserve type in all circumstances, it's moving further away from where we want to be (explicitly mentioning what errors pass through)08:40
rogpeppedimitern: which is why i'd like to see two versions of it08:40
rogpeppedimitern: (or perhaps one with a filter function)08:40
dimiternrogpeppe, i'm afraid i don't get it still08:41
dimiternrogpeppe, what's stopping us from giving a list of errors to pass through ECf later?08:41
vladkdimitern, please, take a look https://codereview.appspot.com/88380044/08:41
rogpeppedimitern: because then we have to audit each place to see what errors need to be preserved08:41
dimiternvladk, looking08:41
rogpeppedimitern: currently we *know* that those places that use ErrorContextf do not preserve the error type08:42
dimiternrogpeppe, won't we need to do that anyway?08:42
rogpeppedimitern: not in places that use ErrorContextf08:42
rogpeppedimitern: which is why i'm not keen on the change - it adds more work to do08:42
axwrogpeppe: if battery life has gone down, check if your video drivers are getting loaded correctly - in the past I've had that, and it turned out my driver failed and my CPU was busy software rendering everything08:43
dimiternrogpeppe, expand a bit on what more work it creates?08:43
rogpeppeaxw: hmm, where would i check that?08:43
axwrogpeppe: glxinfo, I forget what to grep for though08:43
rogpeppedimitern: it means that we need to audit all those places that previously we would not08:43
axwrogpeppe: (I think) glxinfo | grep "OpenGL renderer string"08:44
rogpeppeaxw: i guess i need to apt-get that08:44
rogpeppehmm, no glxinfo08:44
* rogpeppe googles it08:44
axwanyone know how I can find the revno for 1.18.0? seems there's no tag08:45
axwoh.. because we branched08:45
axwnever mind08:45
rogpeppeaxw: i can't see any obvious errors in this08:47
rogpeppename of display: :008:47
rogpeppedisplay: :0  screen: 008:47
rogpeppedirect rendering: Yes08:47
rogpeppeserver glx vendor string: SGI08:47
dimiternrogpeppe, and none of the packages changed in any way since the last audit?08:47
rogpeppehttp://paste.ubuntu.com/7266522/08:47
rogpeppedimitern: ?08:47
dimiternrogpeppe, my point is we need to do the audit anyway08:47
dimiternagain08:47
axwrogpeppe: yeah, looks like it's not that.08:47
rogpeppedimitern: when we use ErrorContextf, there's no need currently to do an audit08:48
rogpeppedimitern: because we *know* that the error type is not preserved08:48
rogpeppedimitern: by making ErrorContextf preserve the type, it adds the need to audit all those places08:48
dimiternvladk, reviewed08:50
dimiternrogpeppe, that's not true08:50
dimiternrogpeppe, in all cases08:50
rogpeppedimitern: no?08:50
dimiternrogpeppe, i'll give you an example, just a sec08:50
dimiternrogpeppe, there are a few cases where ECf is not called when a specific error needs to be returned08:54
dimiternrogpeppe, because it masks the error08:54
dimiternrogpeppe, like in service.SetConstraints08:55
rogpeppedimitern: indeed. places that don't use ECf need to be audited08:55
rogpeppedimitern: but my point is that places that *do* use ECf do not need to be audited08:55
rogpeppedimitern: (currently)08:56
dimiternrogpeppe, so you're saying "let's keep the old inflexible behavior, so that when we start using errgo it will all get better, rather than incrementally improving bits of the error handling"08:57
rogpeppedimitern: i'm saying keep the masking in the places where we're already masking08:58
rogpeppedimitern: because masking is actually good (although less flexible, as you say - we do need a way of avoiding the masking when we need to)08:58
rogpeppedimitern: so i'd much prefer that we explicitly change a few places where we really know that we want to pass through the type08:59
rogpeppedimitern: rather than changing everything wholesale09:00
dimiternrogpeppe, "masking is good" is the root cause of my disagreement here - it's not good, it's actually bad, because even when you have specific error types you need to pass through and have them annotated for the user's sake, you can't do that and have to resort to trickery like "is it ErrX? ok, pass it through unannotated; otherwise just mask it"09:11
dimiternrogpeppe, but just so that I'm not the unyielding bad guy here, i'll take your suggestion and have a errors.Maskf working as before and Contextf as it is now and use the latter for networks/interfaces09:13
dimitern;)09:13
rogpeppedimitern: thanks a lot09:14
rogpeppedimitern: BTW re the trickery - that's why errgo.Mask takes a function that allows it to choose which errors to mask09:14
rogpeppedimitern: i'm not that keen on ErrorContextf in general - it adds the same info to all returned errors, where we actually usually want to add specific info about what error path has failed09:16
dimiternrogpeppe, i'm just saying that not having proper/smarter error handling is bad and blocking any improvements to the existing error handling so that once if have errgo everything will be perfect is not ok09:17
rogpeppedimitern: i certainly don't want to block improvements to the existing error handling09:18
rogpeppedimitern: but i don't want to move a lot of it in the wrong direction either09:18
axwrogpeppe: when you're free, I reproposed the HA upgrade changes: https://codereview.appspot.com/88790043/09:25
rogpeppeaxw: cool09:25
axwrogpeppe: I missed a bunch of things before. this version generates the shared secret and sets it in agent config and state on upgrade09:26
axwrogpeppe: there was missing code in agent config serialisation for shared secret, so I added that09:26
rogpeppeaxw: lovely stuff, thanks09:26
rogpeppeaxw: looking09:26
axwcheers09:27
axwbtw if anyone gets weird errors when testing cmd/juju (specifically in BootstrapSuite), then pull trunk09:27
axwthe LTS release date triggered a test failure09:27
dimiternrogpeppe, changing all error types to embed wrapper instead of *wrapper forces me to implement func (e *errorType) Error() on each one, and all of them are the same09:34
rogpeppedimitern: i don't think so09:34
rogpeppedimitern: define func (*wrapper) Error() string09:34
rogpeppedimitern: but embed wrapper by value09:34
rogpeppedimitern: and it'll just work09:35
dimiternrogpeppe, ah, sorry - i needed to change the Is<type> type assertions to use *type09:35
rogpeppedimitern: yes, definitely09:35
rogpeppedimitern: that's a good thing09:35
rogpeppedimitern: error types by convention are almost always pointers09:35
dimiternrogpeppe, right09:36
axwjam1: if you have any time for a review, here's a CL for the bootstrap tools match: https://codereview.appspot.com/88840043/09:36
natefinchmorning all09:37
axwmorning natefinch09:37
jam1axw: so one thing I hit recently, is using trunk to bootstrap09:38
jam1because 1.19.0 is publicly available, it uses that, even though local is 1.19.109:38
jam1have you tried that?09:38
jam1axw: I'm concerned it will bootstrap 1.19.1 and then immediately downgrade to 1.19.0 which seems a bit odd09:38
axwjam1: if you don't --upload, it'll try but warn09:38
axw(try to use 1.19.0 that is)09:39
axwjam1: it's based on whatever tools it finds in the tools source09:39
axwagent-version is set to the most recent tools matching major/minor that exist in the tools source09:39
axwjam1: I'll add another test with patch > what's available, so it's more obvious09:41
jam1axw: so where is it setting AgentVersion, as I don't see that in your patch09:41
jam1perhaps it was already being done elsewhere09:41
axwjam1: already done, in SetBootstrapTools09:42
jam1axw: so LGTM though I'd like to see the new chunk of code in its own function09:46
jam1it seems tightly focused, so lets put it somewhere focused09:46
jam1something like "findExactToolMatch" or somesuch09:46
axwjam1: sure, will do09:46
axwthanks09:46
=== vladk is now known as vladk|offline
jam1axw: so "APIEndpointFor" I could say APIEndpointFromName, but I really don't like to call it APIEndpoint when it isn't the same signature as the existing APIEndpoint functions.09:47
axwjam1: I think FromName would be preferable, to keep in line with NewConn*09:48
jam1axw: can you look at https://code.launchpad.net/~jameinel/juju-core/api-caches-connected-to-1308487/+merge/216091 while your there?09:49
axwjam1: sure09:50
=== vladk|offline is now known as vladk
jam1axw: alternatively APIEndpointForEnv() ?09:51
axwjam1: that reads better than For. your choice, but IMHO I think it would be better to be consistent with NewConn/NewAPI*FromName09:52
jam1axw: well, we got rid of FromName for NewKeyManagerClient and NewUserManagerClient09:52
jam1because FromName was considered ugly09:52
axwheh :)09:52
jam1but this doesn't actually return a client-like thing so I can't use that pattern09:53
axwjam1: LGTM on the API caching one09:57
axwerm09:57
axwsliding09:57
axwwhatever :)09:57
natefinchmeeting everybody10:02
jam1switching machines10:04
jamperrito666 mgz standup10:07
wallyworldjam: my connection dropped out earlier when you were talking about upload tools issues. Do you have bug numbers you can point me at?10:35
jamwallyworld: https://bugs.launchpad.net/juju-core/+bug/130764310:36
_mup_Bug #1307643: juju upgrade-juju --upload-tools does not honor the arch <upgrade-juju> <juju-core:Triaged> <https://launchpad.net/bugs/1307643>10:36
jamwallyworld: that one?10:36
wallyworldta10:36
wallyworldyeah10:36
wallyworldwas there one more?10:36
jamthat one links to: https://bugs.launchpad.net/bugs/130440710:36
_mup_Bug #1304407: juju bootstrap defaults to i386 <amd64> <apport-bug> <ec2-images> <metadata> <trusty> <juju-core:Triaged> <juju-core 1.18:Triaged> <juju-core (Ubuntu):Triaged> <https://launchpad.net/bugs/1304407>10:36
jamand https://bugs.launchpad.net/bugs/128286910:36
_mup_Bug #1282869: juju bootstrap --upload-tools does not honor the arch of the machine being created <bootstrap> <constraints> <ppc64el> <upload-tools> <juju-core:Fix Released by wallyworld> <https://launchpad.net/bugs/1282869>10:36
wallyworldthat's the one10:37
jamwallyworld: right, you roughly fixed bootstrap, but upgrade-juju doesn't have the same check10:37
wallyworldhmmm, well that sucks :-(10:37
wallyworldi guess we'd wat that in 1.18.210:38
jamyeah, I think so10:38
rogpeppei'm a bit sad that the default-series inference when deploying charms is done client-side11:01
=== vladk is now known as vladk|offline
rogpeppeit means that juju deploy needs to do an additional EnvironmentGet, which seems wrong, especially as that's an API call we may very well want to restrict access to in the future11:02
rogpeppewallyworld: https://bugs.launchpad.net/juju-core/+bug/130896611:03
_mup_Bug #1308966: default-series choice is inconsistent <juju-core:New> <https://launchpad.net/bugs/1308966>11:03
wallyworldgreat, thank you11:04
rogpeppeafk for 40 mins or so11:06
jamrogpeppe: so the way it is supposed to work is that it bootstraps based on the version of the charm11:08
jamso if you "juju deploy mysql" and there is a "trusty" version of it, it will create trusty targets.11:09
jamBut maybe there is a second check based on what tools are available?11:09
jam(also, if there is only a precise version of mysql, then it deploys that, and you can force it with "juju deploy precise/mysql")11:09
jamand *that* resolution of "what does 'mysql' mean" is supposed to be done by the charm store, proxied by the API Server11:09
* jam1 switches back to other machine11:15
=== vladk|offline is now known as vladk
evilnickveitchjamespage, sorry, didn't see that earlier. Hopefully i will have another draft today!12:10
jamespageevilnickveitch, cool - great12:10
natefinchrogpeppe: how goes?12:52
rogpeppenatefinch: just doing a live test now12:53
rogpeppenatefinch: seems to be working12:54
rogpeppenatefinch: it's really hard to see what's going on without some visibility into the state server status though12:55
rogpeppenatefinch: would you be able to run up a CL that adds the state server status as we discussed?12:55
natefinchrogpeppe: yeah, that's a good idea.  I haven't actually looked at the status code before, so pointers to the right spot would help speed things up.12:56
rogpeppenatefinch: here's a branch containing what i did before: lp:~rogpeppe/juju-core/556-status-show-stateserver13:04
rogpeppenatefinch: i *think* that we can keep the API interface the same (Jobs, WantsVote, HasVote) because we're already exposing Jobs in the API.13:05
natefinchrogpeppe: ok13:06
rogpeppenatefinch: but you'll need to change machineStatus in cmd/juju to hold the new string field13:06
rogpeppenatefinch: and change formatMachine to set it, based on the jobs/wantsvote/hasvote tuple13:06
natefinchrogpeppe: cool. doing13:11
dimiternrogpeppe, I've updated https://codereview.appspot.com/87560043/ and it should be good to land now, can you take a look please?13:13
rogpeppedimitern: looking13:13
wallyworldjamespage: hi, i need to ask you about bug 1308263 again. i'm not sure of where you and dave got to talking about it. is it just a case of updating the packaging branch with dave's patch? the patch seems to remove a note with your name on it and makes static linking unconditional. i don't know anything about packaging. is there a branch for which a merge proposal can be put up?13:29
_mup_Bug #1308263: /var/lib/juju/tools/1.19.0.1-trusty-arm64/jujud: error while loading shared libraries: libgo.so.5: cannot open shared object file: No such file or directory <hs-arm64> <packaging> <juju-core:Triaged by wallyworld> <https://launchpad.net/bugs/1308263>13:29
jamespagewallyworld, I really don't have anything todo with the PPA packaging13:30
wallyworldoh, i didn't realise it was for a ppa13:30
sinzuiwallyworld, he speaks the truth13:30
jamespagebut I would suspect that the debian/rules file needs sycning from lp:ubuntu/trusty/juju-core13:30
jamespagesinzui, fwiw I don't intend to track the devel releases next cycle13:31
jamespage:-)13:31
sinzui\o/13:31
jamespagethought that might make you happy :-)13:31
sinzuijamespage, Since I cannot build the an arm package and test it, I hesitated to take the changes and do a rebuild. And the PPA doesn't make arm64/ppc13:33
jamespagesinzui, indeed13:34
sinzuijamespage, a package rule sync is sane at least. I will find some victims13:35
wallyworldjamespage: am i looking in the right url? https://code.launchpad.net/~ubuntu-branches/ubuntu/trusty/juju-core  i get a 40413:36
jamespagewallyworld, gah - not quite released yet13:36
jamespagelp:ubuntu/juju-core13:36
natefinchFFS,  I wish bzr would just f'ing warn me when I'm about to switch branches and have local changes.13:38
wallyworldjamespage: right, so i can see the debian/rules file in lp:ubuntu/juju-core needs to have dave's patch applied. is that something you do?13:42
jamespagewallyworld, the debian/rules file in that branch works just fine13:42
jamespageif you take that it will dtrt on ppc64el and arm6413:42
natefinchcan anyone else bootstrap trunk?13:43
natefinch(in local)13:43
wallyworldjamespage: so dave's patch which removes the conditional and simple enables static linking everywhere is wrong?13:44
jamespagewallyworld, its not required13:44
natefinchrogpeppe, jam, dimitern, mgz, perrito666: can you guys bootstrap local on trunk?  Mine doesn't seem to be starting mongo for some reason13:44
wallyworldhmmm. why was the issue seen then?13:44
jamespagewallyworld, the rules file right now only applies the static linking for builds using gccgo13:44
rogpeppenatefinch: i haven't tried recently13:45
jamespagewallyworld, I have no idea13:45
jamespageif this was a problem all of the 1.18.x builds in the archive would be broken as well - and they are not13:45
wallyworldok. i'll ask dave to clarify. but he is away till las vegas i think13:45
wallyworldwe do need to get tis sorted before then though13:46
wallyworldso we can release 1.19.113:46
wallyworldjamespage: actually, this line: golang_archs:= amd64 i386 armhf      why is arm64 not listed?13:47
wallyworldcould that have something to do with it?13:47
jamespagewallyworld, because its not a golang arch13:47
jamespageits a gccgo arch13:47
jamespagegolang == gc13:47
wallyworldrightio13:48
jamespagewallyworld, i suspect the confusion is around the filter13:48
jamespagethat kicks in the logic if the arch is not in that list13:48
jamespagei.e. gccgo13:48
wallyworldis there any harm is just using the flags all the time?13:48
=== Ursinha is now known as Ursinha-afk
jamespagewallyworld, probably not but I can't change it for trusty now13:49
wallyworldok. that means folks on arm64 will need to get their juju from a ppa then i guess13:49
rogpeppenatefinch: here are the last few HA changes, BTW: https://codereview.appspot.com/8886004313:50
natefinchrogpeppe: looking13:51
rogpeppenatefinch: i'm currently factoring out the peergrouper changes into their own CL with tests13:51
rogpeppenatefinch: so it's not quite ready for review13:51
rogpeppenatefinch: but it's good to see :-)13:51
natefinchrogpeppe: very cool13:52
natefinchrogpeppe: if I could bootstrap, I could test out the status change I made.  But I can't even get trunk to bootstrap for some reason13:52
rogpeppenatefinch: on ec2, or local?13:52
natefinchrogpeppe: local.  haven't tried ec2 yet13:53
rogpeppenatefinch: ah.13:53
rogpeppenatefinch: let me know if you find the reason13:53
rogpeppenatefinch: i'm not going to get distracted right now :-)13:54
natefinchrogpeppe: good, keep focused.  The end is in sight :)13:54
alexisbrogpeppe, do you need to skip our 1x1 to stay focused13:55
rogpeppealexisb: let's do it anyway. we can keep it short.13:57
alexisbsounds good13:57
=== Ursinha-afk is now known as Ursinha
wallyworldsinzui: i found the rules file for the ppa and it seems quite different to the one used for packaging into the distro, and it seems to not use any go build flags at all. it seems to be that rules file needs to be updated?14:01
sinzuiwallyworld, that is exactly what I will do. I need a victim to test it14:02
wallyworldsinzui: dannf is your man14:03
sinzuiwallyworld, I cannot build arm64...14:03
wallyworldsinzui: dannf can, and is the one who raised the bug so i'm sure he would be fine to help test a fix14:03
sinzuiyep14:03
wallyworldsinzui: do you mind if i assign the bug to you?14:04
wallyworldor would you prefer it stays with me?14:05
sinzuigo ahead wallyworld14:05
sinzuiI can make the changes in a few hours14:05
wallyworldok. it took me way too long to figure out who to nag to get it fixed. i owe jamespage an apology for pestering him about it14:05
wallyworldpackiging is not my strong point :-(14:06
* hazmat stares at ouija board to estimate the time/cost of a new provider in core14:24
alexisbHi all, can someone tell me if juju-core has done any work for MaaS name constraints?14:24
sinzuirogpeppe, Juju CI has a HA test. We will turn it on when you tell me you want the feature tested14:24
dimiternrogpeppe, LGTM? :)14:24
rogpeppedimitern: oh, sorry, totally got distracted staring at that test code again.14:25
rogpeppedimitern: going back to it :-)14:25
alexisbwallyworld, see my q above14:26
wallyworldalexisb: yes, it has a constraints attribute called "tags"14:26
wallyworldwhich i believe are used to match with maas names14:27
wallyworldbut i've not used them mysel14:27
alexisblandscape is asking if it it is "available"14:27
alexisbI am trying to figure out how to answer them :)14:27
wallyworldit should be14:27
dimiternrogpeppe, cheers14:27
alexisbwhen did it land?14:27
wallyworlda while back i think14:27
sinzuiFAILURE lp:juju-core r2644 broke local upgrades http://ec2-54-84-137-170.compute-1.amazonaws.com:8080/job/local-upgrade/1099/console14:27
wallyworlddimitern: ^^^^^^^^^^^^^^^^^^^^ can you clarify when maas name supported landed?14:28
wallyworldi think it was for 1.16?14:28
sinzui^ abentley is looking to how to change the test. We will report a bug if we think Juju really has a regression14:28
* rogpeppe breathes a sigh of relief that r2644 isn't his.14:29
wallyworldrogpeppe: do you know when maas name support (via the tags constraint) landed? 1.16?14:29
rogpeppewallyworld: sorry, i have no idea14:29
dimiternwallyworld, i'm not sure - have to look at the blame log14:29
wallyworldok, np14:30
wallyworlddimitern: np. but we *do* support ir right?14:30
natefinchalexisb: I think what the deal is, IIRC, is that tags doesn't actually match names, unless you give each maas machine a tag equal to it's name14:30
natefinchalexisb: and I think that's why the people using maas don't really like it, because it's a kind of a PITA14:30
natefinchalexisb: I wrote the tags code a long time ago (October, maybe?  Definitely before 2014)14:31
alexisbwallyworld, I am taking over the corss team meeting but I wasnt given a leader code14:31
dimiternwallyworld, I'm not sure how that failure has to do with maas agent name?14:31
wallyworlddimitern: no, separate question :-)14:31
dimiternwallyworld, support for maas name was added long ago14:32
wallyworlddimitern: alexisb was asking to tell the landscape folks14:32
dimiternwallyworld, but not sure who or when14:32
wallyworldok, thanks, i thought it was added a while back, yeah14:32
natefinchdimitern: I thought we didn't support constraint by name, thought they had to create a tag with the maas name... or maybe I missed the time where we fixed that14:33
dimiternnatefinch, ok, sorry I don't really follow14:33
dimiternnatefinch, the name thing was something maas api needed from some point on14:33
dimiternnatefinch, i don't think it's a constraint, or if it is, it's maas specific14:34
wallyworlddimitern: natefinch: there's a tags constraint which was done for maas IIRC14:34
wallyworldwhich matches with nate's recollection you need to add tags t your maas instances i think14:34
* wallyworld -> bed, then 4 days off for easter :-D14:35
natefinchwallyworld: night!14:35
rogpeppedimitern: reviewed14:44
dimiternrogpeppe, thanks!14:45
natefinchsonofa14:52
natefinch$which juju14:52
natefinch/usr/bin/juju14:52
natefinchwell there was like 4 hours wasted14:53
natefinchgah... I hate it when tests are so DRY'd out that I can't figure where the actual data is that I need to change to make them pass :/15:25
natefinchrogpeppe: how do I fix the status tests so they expect the new status item I added?  it's 2000 lines and the assertion that fails is in the middle somewhere15:28
rogpeppenatefinch: i'm afraid you'll have to work that out...15:28
natefinchand OMG, whose idea was it to use single letter type names?15:29
natefinchM and L my ass15:29
* natefinch is grumpy15:29
natefinchrogpeppe: btw, the status change shows a single bootstrap node stays in "adding vote" perpetually (has vote:n, wants vote: y).  Is that correct?15:31
rogpeppenatefinch: that seems wrong, and i didn't observe that15:32
rogpeppenatefinch: except... perhaps it needs to peergrouper worker enabled for that to work15:32
natefinchrogpeppe: possible15:33
rogpeppenatefinch: so, yeah, that's probably right in your branch15:33
rogpeppenatefinch: i suppose we could change the state initialisation to set machine 0's HasVote to true15:33
natefinchgah, fixing these tests is going to take like 10 times as long as actually writing the code15:39
hazmatso how would you guys feel about a provisioner that took 3-4 hrs for a machine..15:40
natefinchhazmat: so, azure?15:40
hazmati ask cause that's roughly the time for a baremetal machine on softlayer15:40
natefinchhazmat: do they have to go build the machine from parts first?15:41
hazmatnatefinch, interestingly enough.. after we did all that work for availability set on azure.. there's a new azure tier thats cheaper and sans az and auto load balance.15:41
hazmatnatefinch, i dunno.. rack and stack via robots i'd assume ;-)15:41
natefinchhazmat: it would be an interesting test of our timeouts.... I don't really know how we'd do in such a situation.15:42
natefinchI gotta run to pick up my daughter from preschool15:42
natefinchI'll be back in probably 45 minutes15:43
hazmatnatefinch, well for bootstrap we'd use a cloudinstance which would take 3m15:51
rogpeppenatefinch, mgz, dimitern: a necessary peergrouper worker fix prior to final HA proposal, review appreciated: https://codereview.appspot.com/8800005016:10
mgzrogpeppe: looking16:10
rogpeppemgz: ta!16:11
dimiternrogpeppe, looking as well16:11
rogpeppedimitern: ta!16:11
dimiternrogpeppe, reviewed16:17
rogpeppedimitern: brill, thanks16:17
mgzrogpeppe: just reading through the last test, everything so far makes sense to me16:19
rogpeppemgz: great, thanks16:19
mgzheh, mini language for statuses16:20
mgzrogpeppe: lgtm. that watch machines bit at the end is slightly hairy, but I guess timeout for failure cases is fine16:24
rogpeppemgz: ta. better than polling i think.16:24
mgzonly one machine will actually change, right? (or at least change significatly)16:25
mgzwatching all of them is just for sanity16:25
rogpeppemgz: yeah16:29
rogpeppemgz, dimitern, natefinch: cherry on the cake: https://codereview.appspot.com/87860047/16:29
rogpeppewhen that lands, i think we can finally say that HA is "in"16:29
mgzcan say HA! to HA16:30
dimiternrogpeppe, will look in a bity16:30
* rogpeppe tries another live test16:30
dimiternbit16:30
rogpeppedimitern: thanks16:30
natefinchrogpeppe: looking16:32
rogpeppenatefinch: ta!16:32
natefinchrogpeppe: lgtm'd16:56
rogpeppenatefinch: thanks!16:56
rogpeppemgz: any chance you could have a once-over? this is an important step...16:57
mgzrogpeppe: I'll try16:57
mgzrogpeppe: seems fine17:08
rogpeppemgz: thanks for looking17:08
rogpeppemgz: i'll land it then. i just encountered a live failure mode, but i think it's better in where people can play with it.17:09
rogpeppemgz: i agree about the random set of changes - it's just the dross after everything else has been parcelled up nicely...17:11
mgz:)17:12
rogpeppenatefinch: how's the status stuff coming along?17:18
rogpeppenatefinch: i was just debugging an issue that could really have benefitted from it...17:18
natefinchrogpeppe: trying to fix all the tests.. The code was easy, the tests are a PITA, because I don't get a line number of where the failure actually is17:18
natefinchrogpeppe: so I have to infer what data it was using to test17:19
rogpeppenatefinch: hmm17:19
rogpeppenatefinch: is that the problem where gocheck doesn't print the whole stack?17:19
rogpeppenatefinch: if so, that's bugged me for years17:19
natefinchrogpeppe: it's more that we're using table-ish driven tests... without any unique identifier on the row we're testing (at least as far as I can tell)17:20
rogpeppenatefinch: in which case, please add an identifier17:20
natefinchrogpeppe: that's a good idea17:21
rogpeppenatefinch: in the meantime, could you push your branch so that i can use it to debug my stuff? :-)17:22
natefinchrogpeppe: sure17:22
natefinchrogpeppe: lp:~natefinch/juju-core/rogpeppe-556-status-show-stateserver17:23
natefinchrogpeppe: I was wrong, there is an identifier, it's just logged nondescriptly like 50 lines before the test failure output (due to all the log output),17:28
rogpeppenatefinch: ah. maybe make it more obvious by adding a newline then?17:28
natefinchrogpeppe: yeah17:29
rogpeppeHA has landed17:32
rogpeppewoo17:32
natefinchwooo!17:33
rogpeppenatefinch: i thought we were going to go with a single string representation of the server status17:41
rogpeppenatefinch: as we discussed yesterday17:41
natefinchrogpeppe: sorry, I thought those were the strings we had agreed on... I tried to get them from chat history, but might have grabbed a non-final proposal17:42
rogpeppenatefinch: hmm, maybe i've used the wrong branch17:42
natefinchrogpeppe: the ones I put in were, indeed multi-word, honestly, I thought it was odd that we had decided on that after you mentioned wanting single word statuses17:43
rogpeppenatefinch: i'm still not sure :-)17:44
natefinchrogpeppe: we can just hyphenate them, if you want17:44
rogpeppenatefinch: hmm, looks like i was using the wrong branch17:44
natefinchrogpeppe: this is what I have:17:44
natefinchswitch {17:44
natefinchcase hasVote && wantsVote:17:44
natefinchs = "has vote"17:44
natefinchcase hasVote && !wantsVote:17:44
natefinchs = "removing vote"17:44
natefinchcase !hasVote && wantsVote:17:44
natefinchs = "adding vote"17:44
rogpeppenatefinch: if that saves them from being quoted by yaml, i reckon that's maybe goo17:44
natefinchcase !hasVote && !wantsVote:17:44
rogpepped17:44
natefinchs = "no vote"17:44
natefinch}17:44
natefinchrogpeppe: good point17:45
rogpeppenatefinch: i still see the jobs field in there though17:47
rogpeppenatefinch: on balance i think perhaps the hyphen will be better17:47
natefinchrogpeppe: I thought you had wanted the jobs field?17:47
rogpeppenatefinch: no, i don't think it's necessary in the human-readable status17:48
natefinchrogpeppe: ok, my misunderstanding, I'll remove it17:48
rogpeppenatefinch: the existence of member-status implies that it's an environ manager17:48
natefinchrogpeppe: right, I was thinking that, and pretty much everything can host units17:49
rogpeppenatefinch: i'm wondering whether "state-server-member-status" might be a slightly more obvious name17:49
rogpeppenatefinch: (long, but more self-explanatory that it's referring to a state server)17:50
natefinchrogpeppe: if we had more than one state-specific status I'd suggest indenting them all under a "state-server" heading17:51
natefinchrogpeppe: but for now, I guess an extra-long name is ok17:51
=== vladk is now known as vladk|offline
rogpeppenatefinch: one other tiny thing: perhaps put the member status at the start of the struct, so it's more obvious when reading the status output17:56
rogpeppeyay! i just successfully deleted the bootstrap machine entirely and i've still got a working environment18:03
natefinchnice18:03
rogpeppeit does take ages for mongo to recover18:04
rogpeppesinzui: you can try enabling the HA test now...18:04
rogpeppesinzui: although i think you'll probably want to wait for natefinch's status change so you can gate the test's actions on state server status changes18:05
rogpeppes/status change/status change CL/18:05
natefinchrogpeppe: https://codereview.appspot.com/87760057/18:09
rogpeppenatefinch: BTW having seen the voting status in action, it reads very nicely18:11
natefinchrogpeppe: yeah, it's definitely nice to have18:11
rogpeppealexisb: HA has landed and seems to work (to a first approximation anyway :-])18:11
rogpeppenatefinch: LGTM18:13
rogpeppenatefinch: ideally there would be some tests for different statuses, but i'm not overly picky18:14
natefinchrogpeppe: I presume the hasvote wantsvote stuff is tested on the server, and testing the tiny functionality of the thing that translates those into strings would just require duplicating the function itself.   I guess testing that the API returns the right data could be useful.18:17
rogpeppenatefinch: well, you wouldn't strictly need to duplicate the function itself18:17
rogpeppenatefinch: as i said, i don't mind too much otherwise i wouldn't've LGTM'd18:18
alexisbsweetness rogpeppe !!!!!18:22
alexisbwell done team!18:22
rogpeppealexisb: thanks18:23
bacsinzui: how would you like to do a charmworld review for old time's sake?18:29
sinzuiokay bac18:29
bacsinzui: sweet.  https://codereview.appspot.com/8898004318:29
bacits a mishmash of drive bys on my way to doing a real branch.  but solves some very annoying problems.18:30
sinzuibac: LGTM18:33
sinzuithank you for modernising the interpolation too18:33
rogpeppenatefinch: failed test...18:39
natefinchrogpeppe: yeah, I forgot the api server changed, too, so I hadn't run those tests.  Fixing now18:39
rogpeppenatefinch: np18:39
rogpeppenatefinch: i'm just about to send an email to juju-dev@lists.ubuntu.com mentioning the HA changes. it mentions the status. i'll postpone the email until your branch lands18:40
rogpepperight, that's me done18:42
natefinchrogpeppe: fixed, re-approving18:43
natefinchrogpeppe: good work on the HA stuff.18:43
rogpeppenatefinch: you too18:43
rogpeppesee y'all in denver or las vegas!18:44
natefinchrogpeppe: I swept up the few scraps you left in your wake.  But glad it's done18:44
natefinchrogpeppe: have a good trip!18:44
rogpeppenatefinch: i will do my best18:44
rogpeppenatefinch: hopefully i won't discover my passport's gone missing :-)18:44
rogpeppeg'night all18:44
natefinchrogpeppe: haha18:46
bacthanks sinzui.  a modern interpolation is a happy interpolation.19:13
lazyPoweris there an upper limit to the number of machines you can utilize on the local provider?20:42
natefinchlazyPower: generally RAM is the limiting factor.20:42
natefinchlazyPower: there's no hard coded limit20:43
lazyPowerok thats what i was looking for. thanks natefinch20:44
natefinchlazyPower: welcome20:47
stokachuso juju will copy my apt proxy information on my host system in a local provider install20:58
stokachubut if i set my host system to localhost:8000 then the deployed instances in the local provider wont work20:58
stokachuas the lxc device is 10.0.3.120:58
stokachuis that expected?20:58
natefinchstokachu: that sounds like something we haven't tested, but I'm not 100% sure.21:00
stokachui guess _should_ juju be copying an existing apt-proxy conf file from the host system to the deployed21:00
natefinchstokachu: well, so for local, your host system *is* the bootstrap node21:00
stokachuright, so, if my host system has an apt proxy conf directive pointing to http://localhost:8000 then thats whats in the deployed node21:01
stokachuhowever localhost:8000 on the deployed node doesn't work21:01
stokachushould be 10.0.3.1 for the lxc device or whatever network bridge is defined21:01
stokachui could be totally off on this21:02
natefinchThat's probably not something we really support. You're welcome to file a bug and people who know that area of the code better than I do will look at it :)21:02
natefinchIt's EOD for me, and the boss is getting antsy, so I gotta run21:02
psivaa hello, could i know how to workaround 'src/launchpad.net/juju-core/utils/ssh/ssh_gocrypto.go:84: undefined: ssh.ClientConn' when running 'go install -v launchpad.net/juju-core/...' pls?21:30
psivaago get -u -v launchpad.net/juju-core/... gives the following logs: http://pastebin.ubuntu.com/7270917/21:30
lazyPowerpsivaa: they may be EOD'd/about to EOD. normal hours are 9am - 5pm EST21:44
psivaalazyPower: ack, my bad in fact. was supposed to query this earlier, but got held up fixing some issues in my system. thx . i'll pick it up when someone answers21:51
lazyPowerack. I just wanted you to know they will see it, but it may be a bit before you get a response.21:51
psivaaack, thank you :)21:52

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