/srv/irclogs.ubuntu.com/2015/04/28/#juju-dev.txt

menn0wallyworld: thanks00:00
wallyworldmenn0: actually, i don't have credentials for jujubot, i'll ask the qa guys00:02
menn0wallyworld: I would have thought you could do it with your own account?00:05
=== kadams54 is now known as kadams54-away
wallyworldmenn0: that's don00:09
wallyworlde00:09
wallyworldmenn0: yeah, i could, i didn't realise i could :-)00:10
menn0wallyworld: cheers :)00:14
wallyworldnp00:14
wallyworldmenn0: fyi, i'm working on the status 2.0 spec based on notes from the sprint; still very much wip https://docs.google.com/a/canonical.com/document/d/19ljAmIe3wVC-jpDRFl8KfvJKQzx0HIC0yuPu3cCMh7Q00:19
menn0wallyworld: having a quick look00:23
=== kadams54-away is now known as kadams54
menn0wallyworld: looking good so far00:28
menn0wallyworld: I made a few tiny typo corrections00:28
wallyworldmenn0: oh ty, didn't mean to burden you just yet with corrections :-)00:29
menn0wallyworld: I couldn't help myself :)00:29
wallyworld:-)00:29
sinzuiwallyworld, Do you have minute to review http://reviews.vapour.ws/r/1497/01:11
wallyworldsure01:12
wallyworldsinzui: you always give me the difficult ones01:12
sinzuiwallyworld, its an opportunity for you to say STOP, I have another issue that needs fixing01:13
wallyworldsinzui: i left off the :-)01:14
sinzui:)01:14
sinzuiwallyworld, http://reports.vapour.ws/releases/2570 shows that 1.23.2  Passed every test, even against adverse dirty substrates and flakey vivid01:25
wallyworldyay01:26
sinzuiThis is could be the highest score ever gotten01:26
wallyworldnow all we need is for 1.24 to do the same01:26
wallyworldlet's hope it's reproducable then01:28
axwwallyworld: reviewed your branch01:41
wallyworldty01:41
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
wallyworldaxw: with the client facade, william didn't want to bump that beyond 0. the only other alternative is to introduce a whole new facade and stick the method on that. I started going down that path but couldn't decide on a suitable facade so took the path of least resistence (the branch was already big enough and i was trying to get it done in time before branching). given we already have AddMachinesV2, any proper refactoring work would01:47
wallyworld have to sort out that stuff also, which is getting beyond the scope of removing a storage feature flag01:47
axwwallyworld: why does he not want to bump the version?01:48
wallyworldgets messy - we would need to fire up api servers for both 0 and the new version, and we want to ultimately move stuff off client anyway01:50
wallyworldwe support uniter v 0, 1, 2, but that's a much smaller facade01:50
wallyworldi was trying to avoid depending on a charm repo change with the patching but i guess that's unavoidable :-(01:50
wallyworldand even with the uniter stuff, the tests are incomplete as it's hard to write common tests to cover all facade versions01:51
wallyworlds/hard/tedious due to code cut and paste01:52
axwwallyworld: can we at least hide this ugliness in api/client? so if the caller of AddMachines specifies storage, it calls AddMachinesV3 instead of V201:55
axwwallyworld: not sure ify ou saw this before02:25
axw<axw> wallyworld: can we at least hide this ugliness in api/client? so if the caller of AddMachines specifies storage, it calls AddMachinesV3 instead of V202:25
=== kadams54 is now known as kadams54-away
wallyworldaxw: here's a patch to the charm repo to allow juju to patch the NewCharmStore from any package https://github.com/juju/charm/pull/12303:10
axwwallyworld: ?! why?03:11
axwwhere is this needed?03:11
wallyworldaxw: to allow core tests to run - stuff in the apiserver/service package calls into methods in apiserver/client and the apiserver/client code calls NewCharmRepo and this needs to be patched. the apiserver/client package patches NewCharmRepo but you objected to tha being exposed to apiserver/service package03:12
axwwallyworld: I object to patching across packages in general, not that one case03:13
* axw looks at code in question03:14
wallyworldso it's easier to just patch at the source of the charm repo creation instead of indirectly03:14
wallyworldaxw: sadly we already patch charmrepo.CacheDir03:16
wallyworldso i'm at least lining up with what's done already03:16
axwyeah, I want to stop the sadness :)  I'm looking if there's a better alternative..03:17
wallyworldand the client code patches across packages anyway to patch charmrepo.NewCharmRepo03:17
wallyworldlonger term, agreed. but this is simply to remove a feature flag to get 1.24 out03:17
wallyworldit's not introducing new badness03:18
axwwallyworld: service doesn't call into client, client calls into service03:18
wallyworldservice calls s.APIState.Client().AddCharmWithAuthorization(curl, nil)03:18
axwclient previously *internally* patched that function, which isn't great but at least doesn't spread the hack around03:18
wallyworldto set up a test03:18
* axw looks again03:18
axwI see03:19
wallyworldyes it did, but any code can also patch cahrmrepo.CahedDir03:19
wallyworldthis is a consequence of starting to move service apis off the client facade03:20
wallyworldand onto their own Service facade03:20
wallyworldthere's a whole bunch of other service apis with todos to move03:20
wallyworldsadly, it we designed our code using inversion of control, this wouldn't be an issue, but we didn't :-(03:21
axwwallyworld: this can be fixed by changing apiserver/service to operate on interfaces rather than *state.State. getting out of scope, so please ditch the juju/charm change and use the original patch change and add a TODO(wallyworld)03:24
axwif we're adding hacks, let's at least confine them to juju/juju03:25
anastasiamacaxw: wallyworld: on a different note, here is the start of dynamic add - http://reviews.vapour.ws/r/1498/03:27
axwanastasiamac: reviewing now03:49
anastasiamacaxw: tyvm :D03:49
axwanastasiamac: done03:55
wallyworldaxw: so, just to confirm you happy to retain the x-package patching as per what i submitted so that we don't have to modify charm.v5? that was my original thought and rationale also04:15
wallyworldaxw: FFS, disconnected again, may have missed your reply04:22
axwwallyworld: sorry, was afk. yes.04:48
axwwallyworld: provided it gets replaced later with an interface and the cross-package patching removed04:49
wallyworldaxw: yeah, there's a bit of work to do there. won't happen for 1.24 is suspect, best we can do is 1.25. i've updated the PR on RB04:51
axwlooking04:51
wallyworldaxw: i guess i should add a MachineManager facade and stuck the new AddMachine API on that. i was previously trying to avoid missing the 1.24 branching but given that's already happened, might be best not to introduce another lagacy API to have to support05:28
axwwallyworld: that would be ideal05:29
wallyworldyeah, agreed. sigh. branch already soo bg05:30
axwwallyworld: I already gave a shipit, you don't have to do it immediately05:31
wallyworldaxw: ok, i'll land but then do an immediate followup05:31
axwcool05:31
axwwallyworld: is that a straight backport? do I need to review again?05:39
mupBug #1449367 was opened: remove storage feature flag <juju-core:Triaged by wallyworld> <juju-core 1.24:In Progress by wallyworld> <https://launchpad.net/bugs/1449367>05:43
mupBug #1449367 changed: remove storage feature flag <juju-core:Triaged by wallyworld> <juju-core 1.24:In Progress by wallyworld> <https://launchpad.net/bugs/1449367>05:49
mupBug #1449367 was opened: remove storage feature flag <juju-core:Triaged by wallyworld> <juju-core 1.24:In Progress by wallyworld> <https://launchpad.net/bugs/1449367>05:55
=== rawang is now known as Guest64369
mupBug #1449390 was opened: storage: charms must wait for storage to be attached before running "install" hook <storage> <juju-core:Triaged> <https://launchpad.net/bugs/1449390>07:07
=== rogpeppe2 is now known as rogpeppe
TheMuevoidspace: sorry for not being in hangout, have to help daughter09:02
voidspaceTheMue: no problem09:03
voidspaceTheMue: it's just you and me anyway :-)09:03
voidspaceTheMue: I'm working on forward porting the addressable container feature flag to master09:03
voidspaceTheMue: nearly done09:03
voidspaceTheMue: hard work - just about none of the patch applied cleanly09:03
voidspaceTheMue: only two more files to do though09:03
voidspaceTheMue: that's my report :-)09:03
mupBug #1449436 was opened: Environment variables are not propagated to jujud on vivid <juju-core:New> <juju-core 1.23:New> <juju-core 1.24:Triaged by axwalk> <https://launchpad.net/bugs/1449436>09:13
TheMuevoidspace: so, "first aid" done, daughter has troubles with her car on the highway and asked what to do. and the other daughter is ill at home. :(09:14
TheMuevoidspace: I'm currently writing a little conference report about last week, the continue with the process changes with Katherine, and will then take a look in the list Dimiter sent09:15
voidspaceTheMue: ok09:22
mupBug #1449436 changed: Environment variables are not propagated to jujud on vivid <juju-core:New> <juju-core 1.23:New> <juju-core 1.24:Triaged by axwalk> <https://launchpad.net/bugs/1449436>09:25
mupBug #1449436 was opened: Environment variables are not propagated to jujud on vivid <juju-core:New> <juju-core 1.23:New> <juju-core 1.24:Triaged by axwalk> <https://launchpad.net/bugs/1449436>09:31
axwjam: gotta go, fix up for review here FYI -- http://reviews.vapour.ws/r/1500/10:19
jamaxw: have a good night10:19
jamaxw: I believe this should also go into 1.23, right?10:19
jamSince that is what we're actually releasing on V10:19
Mmikelads, when I bootstrap my env and then do 'juju ensure-availability', juju will fire up additional three units, set up replicaset for mongodb and all of that. Now when unit 0 dies (the initial bootstrap unit) I can't connect to my env any more. I need to manually change my environment.jenv file and remove references to machine 0 from there. Then juju works ok again. Now I want to remove machine 0 from juju, as it no longer exists, but juju won't let me10:21
Mmike do so, saying: "ERROR no machines were destroyed: machine 0 is required by the environment".10:21
MmikeIs this by design, or am I doing something wrong?10:21
MmikeUsing juju 1.22 currently, but observed same behaviour on 1.2310:21
natefinchhooooly shit.  just went to write a fake object to fulfill the CloudConfig interface, and umm.. it has over 60 functions :/10:22
davecheneythat's no interface .... mother of god!10:29
davecheneyMmike: machine 0 is special, it cannot be removed10:29
natefinchluckily the function I need to mock it for only uses like 6 of those functions, so I can replace the interface with a more narrow one, but still, jeezus.10:30
natefinchdavecheney, Mmike: you definitely should be able to kill machine 0 and have your environment still work fine.10:31
natefinch(when in HA)10:31
natefinchI don't know about actually tell juju to remove the phantom machine from its DB, but your environment should definitely still work.10:32
jamnatefinch: seems a bit oversized. Though you can do ttype10:33
jamtype MyFake struct { CloudConfig }10:33
jamand then only override the ones you actually want to10:33
jam(you'll get nil pointer dereference failures for anything that gets used that you didn't define)10:33
jamMmike: so I'd like to walk through it a bit with you.10:33
jamAfter "juju ensure-availability" do you end up with 3 or 4 total machines?10:33
jam(I would expect 3)10:33
jamsecond, after those machines are up and running, you should be able to run "juju status", and connect to that env10:33
jamand then it will notice that there are more machines10:33
jamand record them as alternatives in your environments.jen10:33
jamIt won't actually record new machines until they are up and running and connected (AIUI)10:33
jambut you shouldn't have to edit your JENV normally10:33
jamjust you have to connect to the environment once the extra machines are running.10:33
jamMmike: third, after machine-0 has died, you probably need to run "juju ensure-availability" again, where it should now notice that you have a dead machine, and try to take it out of official API server status10:33
jam(this is a bit of a wart, and we're looking at splitting up ensure-ha into more precise commands)10:33
jamand then you can "juju destroy-machine machine-0" (sp?)10:33
jamonce it has lost its voting status10:33
Mmikejam: i see10:34
Mmikejam: let me try that10:34
natefinchjam: good idea embedding the interface in the struct10:35
=== natefinch is now known as natefinch-afk
perrito666morning all10:50
Mmikejam: where can I find the password jujud is using to connect to mongod?10:55
jamMmike: you have to look on machine-0 for it, it should be in /var/lib/juju/agents/machine-0/agent.conf I think11:03
jamMmike: sorry, looks like "/var/lib/juju/agents/machine-0.conf"11:03
Mmikejam: ack, thnx11:05
perrito666nope /var/lib/juju/agents/machine-0/agent.conf11:05
perrito666jam: unlest it changed11:05
jamperrito666: that's what I originally thought, but our backups test disagree11:05
jamperrito666: ./state/backups/files_test.go:114:              filepath.Join(s.root, "/var/lib/juju/agents/machine-0.conf"),11:06
Mmikejam: actually on 1.22 it's in  /var/lib/juju/agents/machine-0/agent.conf11:06
Mmikejust verified11:06
perrito666jam: ill remember to ping eric on that one11:06
jamperrito666: k. That sounds suspiciously like its a bad test.11:07
jamperrito666: but "cmds/juju-restore" does use /var/lib/juju/agents/machine-0/agent.conf11:08
perrito666jam: it is11:08
perrito666jam: looking at the code that it is testing it does not really matter since that seems the result of faking a glob result11:08
perrito666but is missleading11:08
jamperrito666: yeah, I'm not saying the test doesn't pass, but we shouldn't have incorrect paths in a backup test :)11:09
perrito666I have opened and restored that files enought times to know it is named agent.conf :p11:09
* perrito666 makes a note for a less urgent time11:09
jamperrito666: :)11:10
jamyeah, I would guess you did11:10
dimiternvoidspace, ping11:17
jamMmike: did you get things to work?11:34
Mmikejam: nope, not yet, my openstack deploy is a bit slow as I'm testing some other stuff too, so it takes time...11:34
jamMmike: np11:34
jamjust curious11:35
Mmikejam: yup, have a case about that, so I need to know how it works11:35
Mmikeand for convenience too :)11:35
dimiternfwereade, http://reviews.vapour.ws/r/1501/11:37
jamdimitern: is it actually allowed to start with - or _11:38
jam?11:38
dimiternjam, it is in fact11:38
dimiternjam, rvba just confirmed that11:39
jamdimitern: is there any reason not to be slightly more restrictive than them?11:40
jamI think avoiding opening "-" is probably a good thing11:40
dimiternjam, apart from another critical blocker from OIL11:40
dimiterncan't think of one :)11:40
dimiternin case they now decide to have names like "-my_NET"11:41
fwereadedimitern, jam: so the core of the problem is that we use provider ids as network names11:41
fwereadedimitern, jam, which means we need to come up with a regexp that matches every possible valid provider network id11:42
dimiternfwereade, jam, yeah, that's the crux of it; but it's much harder to fix it properly11:42
fwereadedimitern, jam, but is still somehow useful11:42
dimiternfwereade, jam, also, fwiw this only applies to maas anyway now11:42
fwereadedimitern, jam: with that patch, can we still transform name<->tag safely?11:44
fwereadedimitern, jam: and can we depend on correctly munging globallKeys?11:44
dimiternfwereade, jam, yes - there are tests for that in fact, which didn't stop passing, and we don't allow /11:44
jamor # right?11:44
dimiternyeah11:44
Mmikejam: so, here is what I did: juju bootstrap; juju ensure-availability. Then I did 'juju status' until I had all three machines with "state-server-member-status: has-vote". Then I deployed some service (percona-cluster, with 3 units).12:04
MmikeWaited for that service to settle down, verified all is ok.12:05
MmikeAfter that I killed the machine 0 (as this is openstack, I did nova delete $instance_id). Did juju status after that, waited for like 2-3 minutes, and then juju status returned status with machine0 being down.12:05
MmikeAlso, some percona-cluster units where shown as 'agent-state: down'.12:05
jamMmike: 2-3 minutes sounds odd to me12:05
jamMmike: one option is to use "juju status --verbose" (-v) which should have it report what its trying to do12:06
jamis it still 2-3 min per status?12:06
jamor is status fast now?12:06
MmikeThen I did juju ensure-availability, juju instantiated another machine. Waited for that one to have 'state-server-member-status: has-vote'. Then did: "juju destroy-machine 0", but juju complained about 'machine 0 being needed for the env'12:07
Mmikeno, it is fast now12:07
Mmikejust the first run after I killed machine 0 was slow.12:07
Mmikeok, now all of my percona-cluster units are up, and marked ok (no more 'agent-state: down').12:08
MmikeBut I still can't remove machine 0.12:08
jamMmike: can you pastebin the "juju status" output ?12:09
Mmikesure12:09
Mmikejam: http://pastebin.ubuntu.com/10924694/12:10
Mmikejam: I can paste whole termlog from the first bootstrap, if needed12:10
jamMmike: so i *believe* that now that machine-0 has been removed from voting, you can do another "juju ensure-availability" and it will be removed as a state server entirely, and then you can "juju destroy-machine machine-0"12:11
* Mmike tries12:12
jamI think each transition needs another ensure-availability call. starts with has-vote, then goes to no-vote, then goes to no-longer-a-state-server12:12
Mmikejam: ack, confirmed.12:13
Mmikejam: excellent! :)12:13
Mmikejam: thank you very much12:13
Mmikejust one more, though12:13
Mmikeso let's say I had 3 state machines. One of them died. Then another died. Now mongodb on remaining unit is in readonly state.12:13
MmikeI don't have juju backup.12:14
MmikeI'm thinking, then, connecting to the remaining machine, and 'reseting' mongodb - forcing it to become primary again.12:14
MmikeWill that work? That is, will I be able to use juju afterwards?12:14
Mmike(Havent tried, just curious)12:14
jamMmike: so if you manually poke the replicaset document in mongo12:15
jamyou should be able to do anything you want :)12:15
jamjust don't do it wrong.12:15
jamobviously with db surgery you can make anything work. I'm not 100% sure how much Juju would let you get away with, because it will likely try to write the replicaset document to match its own state12:15
Mmikewell, obviously the 'right thing to do' is to have backups.12:16
MmikeBut, there being only two kinds of people in the world... sooner or later I'll have to deal with 'we WILL be doing backups' kind of people :)12:17
Mmikejam: thnx for the inputs, will try breaking my env later again to verify if poking with mongo will bring it back to life12:17
jamMmike: have you verified that Juju becomes completely unhappy with 2 machines down?12:18
jamIt is *possible* that "juju ensure-availability" would rewrite things to try and get back into 3-man mode.12:18
jambut I can entirely believe that we didn't get there.12:18
jamAnd IIRC, we don't support "juju ensure-availability -n1" to get back out of HA mode12:18
Mmikejam: nop, tbh. But I know from previous mongodb experience that if two nodes go down the last remaining node is in read-only, as it has no quorum.12:19
jamMmike: but being able to get a DB backup at that point seems *really useful*12:19
=== rawang is now known as Guest89813
* perrito666 uses deployer for the first time ever13:05
=== rawang is now known as Guest7759
=== natefinch-afk is now known as natefinch
=== kadams54 is now known as kadams54-away
katconatefinch: standup14:02
aznashwannatefinch: ping14:03
natefinchaznashwan: sup?14:04
=== kadams54-away is now known as kadams54
aznashwannatefinch: sorros14:13
aznashwannatefinch: got distracted14:13
aznashwannatefinch: could give me an idiot's guide to using that perl script for syscalls on windows?14:14
=== urulama is now known as urulama__
aznashwannatefinch: (if you could exemplify on your npipe package what the result should be; that would be awesome)14:15
* perrito666 drops a bucket of debug messages onto deployer14:50
natefinchaznashwan: all I really did was look at the files in the syscall stdlib and copy what they did there.  The zsyscall_* files give the command line to use, and show the input file, which contains the patterns that generate the syscalls in comments at the top of the file.14:55
natefinchaznashwan: I meant to write a blog post about how to do it back when I wrote npipe, but never got around to it. I should brush up on it and do so, it would be pretty useful, I think.14:55
voidspacedimitern: just FYI, I merged the tests as well14:59
voidspacedimitern: that was easier14:59
voidspacedimitern: I have a bunch of failing tests to fix now14:59
voidspacedimitern: not all obvious, but I'll work through them15:00
dimiternvoidspace, sweet!15:01
voidspacedimitern: hey, we have a test "TestNewCloudInitConfigNoFeatureFlag"15:05
voidspacedimitern: testing maas config generation15:05
voidspacehttps://github.com/juju/juju/compare/master...voidspace:addressable-featureflag15:05
mattywjam, are you around this week?15:05
voidspace(the first s.SetFeatureFlags() in that branch is spurious I assume - and I've removed it locally)15:05
voidspacedimitern: the intent of the test seems to be to test we get the same config with feature flag on and off15:06
voidspacedimitern: but we don't15:06
voidspacedimitern: we get the juju-br0 stuff when the flag is off15:06
jammattyw: I'm around15:06
voidspacedimitern: so the test seems flawed (and is failing for this reason)15:06
jamthough its EOD for me now15:06
mgz_dimitern: I failed to find you in person, but can I have a review please? :)15:07
mgz_dimitern: https://github.com/go-goose/goose/pull/8/files15:07
mupBug #1449613 was opened: service/windows is missing unit tests. <juju-core:New> <juju-core 1.23:New> <juju-core 1.24:New> <https://launchpad.net/bugs/1449613>15:08
mgz_katco: can I wave bug 1447841 at you?15:20
mupBug #1447841: eu-central-1 AWS region V4 signing required and not supported <ec2-provider> <juju-core:Triaged> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1447841>15:20
katcomgz_: sure tal15:24
katcomgz_: should be an easy fix15:25
natefinchperrito666: review please? http://reviews.vapour.ws/r/1504/15:27
mupBug #1449617 was opened: service.Service implementations are missing functional tests. <juju-core:New> <juju-core 1.23:New> <juju-core 1.24:New> <https://launchpad.net/bugs/1449617>15:32
perrito666natefinch: reviewed, just one issue15:33
dimiternvo15:35
katcomgz_: very small review for that bug: http://reviews.vapour.ws/r/1505/15:35
dimiternvoidspace, hey15:35
mgz_pants, we have in fact not yet switched to gopkg.in goose yet15:36
dimiternvoidspace, why is that happening can be gnarlly - check basically jujuconnsuite's setupsuite and setuptest - there might be something overriding the set FF15:37
mgz_katco: change lgtm - no tests need updating? also, s3 auth works with the same auth object as ec2 okay?15:38
mgz_I'm confident our testing will fail fast if anything is wrong15:38
katcomgz_: yeah s3 defaults to v4, we deprecated v2 signing for s315:39
katcomgz_: i haven't run tests, let me do that rq for just the ec2 provider package15:39
katcomgz_: those tests pass. i'll try and land and see what happens15:40
alexisbericsnow, as always thank you!15:43
mupBug #1449633 was opened: Cannot terminate/remove broken state server after ensure-availability <cts> <juju-core:New> <https://launchpad.net/bugs/1449633>15:44
mgz_should we be sorting external import alphanum-wise? what can I use to do that?15:46
mgz_hm, seems not, I have github.com and gopkg.in both ways round15:47
natefinchmgz_: go fmt will alphabetize15:49
natefinchmgz_: it sorts each section independently (where a section is delimited by blank lines)15:50
natefinchperrito666: thanks15:55
perrito666np15:55
mupBug #1449633 changed: Cannot terminate/remove broken state server after ensure-availability <cts> <juju-core:New> <https://launchpad.net/bugs/1449633>15:56
mgz_natefinch: yeah, I was wondering about sorting the blocks after that - which we seem not to do15:58
natefinchmgz_: go fmt definitely sorts all the blocks... try it out here:  http://play.golang.org/p/lb4Nc0Nz2B  the blocks are intentionally out of order to start16:01
mupBug #1449633 was opened: Cannot terminate/remove broken state server after ensure-availability <cts> <juju-core:New> <https://launchpad.net/bugs/1449633>16:02
katcoperrito666: hey do you need any help with 1441826?16:02
perrito666katco: I think I just nailed it :)16:03
katcoperrito666: course you did... bc you're AWESOME ;p16:04
natefinchperrito666: nice16:04
perrito666I am writing the patch now to see if it works, but apparently its a shim missing in the multiwatcher status16:04
=== kadams54 is now known as kadams54-away
mgz_ocr: can I request another review on http://reviews.vapour.ws/r/1473/16:16
mgz_I needed to bump goose version (and location) to add a test)16:17
perrito666mm, that is a nasty thing to read on reviewboard16:21
mgz_perrito666: blame Ian16:22
perrito666ok16:22
perrito666git blame ian16:22
mgz_it was a nice clean change till I had to update all the imports16:22
* perrito666 impatiently awaits for his stream to update16:23
* perrito666 reads in github and gets a pill for the headache16:23
mgz_perrito666: looking at each commit in turn may be more informative16:24
perrito666mgz_: do you arrange your tests in lexicographic order?16:25
=== kadams54-away is now known as kadams54
mgz_perrito666: I arrange them in random walk order16:29
perrito666mgz_: brb, will review upon return,  I promise16:31
mgz_perrito666: no problem16:32
mgz_I'm off for now at least16:32
aznashwannatefinch: sorry; got carried away again...16:34
natefinchaznashwan: did you see my prior responses?16:34
aznashwannatefinch: figured it out; it's quite handy16:35
aznashwannatefinch: yes I did16:35
natefinchaznashwan: ahh cool. Yeah. it's nice.16:35
aznashwannatefinch: I used the go one in the syscall package16:35
aznashwannatefinch: they should really raise awareness for it16:35
natefinchaznashwan: yeah, I remembered they added a go version finally... after I had to struggle with installing perl on windows ;)16:36
aznashwannatefinch: oh; it's yours?16:36
aznashwannatefinch: Windows salutes you :D16:36
natefinchaznashwan: no no... I was sorely tempted to port it, but never found the time.  Not sure who did, but not me :)16:37
aznashwannatefinch: works great; but there was a lot a lot of guesswork involved in figuring out how to use it for procs' that weren't in kernel3216:39
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
katcoperrito666: how is the bug coming?19:10
perrito666katco: fixed It looks, fixing the tests now19:11
katcoperrito666: awesome :)19:11
perrito666mmpf I am pretty sure network manager indicator has less functions than before :( I dont seem to be able to priorize my connections19:14
=== kadams54 is now known as kadams54-away
perrito666talk about useful test failure errors19:59
perrito666Error: entity mismatch; got len 1; want 119:59
natefinchperrito666: heh wow20:05
katconatefinch: hey is https://bugs.launchpad.net/juju-core/+bug/1446871 landed yet?20:09
mupBug #1446871: Unit hooks fail on windows if PATH is uppercase <ci> <hooks> <windows> <juju-core:In Progress by natefinch> <juju-core 1.24:In Progress by natefinch> <https://launchpad.net/bugs/1446871>20:09
natefinchkatco: I hadn't thought it was targetted at 1.24-alpha1, so I just have a PR up against master, which is blocked... but I could easily put it on 1.24 instead20:11
natefinchkatco: so, no :)20:11
katcoNate looks like it's just targeted against 1.2420:12
katconatefinch: mgz was working on https://bugs.launchpad.net/juju-core/1.24/+bug/1441826 but it's past his EoD... we're blocked until that is complete20:12
mupBug #1441826: deployer and quickstart are broken in 1.24-alpha1 <api> <blocker> <ci> <deployer> <quickstart> <regression> <juju-ci-tools:Triaged> <juju-core:Triaged by hduran-8> <juju-core 1.24:In Progress by hduran-8> <https://launchpad.net/bugs/1441826>20:12
katconatefinch: looks like you might have had some insight there, so if you are blocked, it would be a good thing to look into20:13
natefinchkatco: I can certainly look at that one, though I thought perrito666 had that one handled20:13
katconatefinch: i thought he was looking at https://bugs.launchpad.net/juju-core/+bug/1441826?20:14
mupBug #1441826: deployer and quickstart are broken in 1.24-alpha1 <api> <blocker> <ci> <deployer> <quickstart> <regression> <juju-ci-tools:Triaged> <juju-core:Triaged by hduran-8> <juju-core 1.24:In Progress by hduran-8> <https://launchpad.net/bugs/1441826>20:14
katcogah... stupid copy/paste mistake20:14
perrito666katco: you have a problem with your pastebin?20:14
katcohaha20:14
perrito666you sound just like the error I pasted a moment ago20:14
katconatefinch: i meant https://bugs.launchpad.net/juju-core/+bug/144094020:14
mupBug #1440940: xml/marshal.go:10:2: cannot find package "encoding" <blocker> <ci> <regression> <test-failure> <juju-core:In Progress by gz> <juju-core 1.24:Triaged> <juju-release-tools:In Progress by gz> <https://launchpad.net/bugs/1440940>20:14
natefinchoh yeah that one20:14
katconatefinch: perrito666 is definitely working the other one20:14
katconatefinch: but mgz thought he had a fix, but apparently not20:15
natefinchkatco: I'll look through what has been posted there since I last looked at the bug.20:15
katconatefinch: cool ty20:15
katcowwitzel3: are you blocked on 1326091?20:15
natefinchsinzui: you around?20:20
sinzuiI am20:20
natefinchin the above bug about encoding, one of your recent messages contains a typo that makes it hard for me to understand: "The release tarfile but contain the encoding src or pkg, or we avoid using github.com/juju/govmomi/vim25/xml."20:20
sinzuinatefinch, *must*20:21
natefinchsinzui: ahh, ok, I couldn't figure out what it was supposed to be20:21
sinzuinatefinch, mgz advised that including the encoding package in the source tree would ensure gccgo found the package. He reported it was fixed but is not. The packages don't build and I don't see the package, so I don't know what mgz changed to lead him to believe the issue was fixed20:22
sinzuidamn, too many uses of the word packages20:22
sinzuiWe cannot make debs, and I don't see "encoding" in src/20:23
natefinchsinzui: it seems odd to me that we package up the standard library in our tarfile. shouldn't the standard library just be installed on the target machine, and we just tar-up what's outside the stdlib?  I presume ubuntu doesn't build other languages by including the stdlib in the tar we give the builders.20:25
natefinch(and I'm using a very broad version of "installed" .... I don't actually care how it arrives on disk)20:26
sinzuinatefinch, it seem odd to me we would fork xml and use it without checking it worked on all arcs20:27
sinzuiregardless, *we* are obligated to deliver a tarball that Ubuntu and Lp can build ppc64el debs. so need to provide a version of encoding that work with that xml package20:27
natefinchsinzui: I guess my question would be...  why isn't the entire go std library on the builder?  Is it because there's no golang package we can apt-get install for PPC64el that we don't do it that way?20:29
sinzuinatefinch, Ubuntu/debian uses shared lib and they are already built and distributed for Juju to link too20:30
sinzuinatefinch, juju is *not* 100% static for ppc. it uses golib520:30
natefinchsinzui: I don't know what that is, unfortunately.20:30
sinzuinatefinch, a lib that doesn't have encoding in it, at least, not by that name20:31
natefinchsinzui: where do we get golib from?  google isn't being very helpful for me there20:32
sinzuiwell I can see there is an encoding, but it doesn't match what the xml package wants :(20:32
sinzuinatefinch, I think you are taking the wrong path here20:32
sinzuinatefinch, We will not release any 1.24 version in the next month if we are trying to bet debian/ubuntu to change packages. mgz's solution is to include just what is needed to satisfy debian packaging rules20:33
natefinchsinzui: we're getting an error that should be impossible.  The most likely reason is because we're doing things in weird ways to satisfy people's ideas of the way things should be built.  I'm just trying to figure out how this builder differs from what happens when I run gccgo.20:34
natefinchsinzui: if I can't look at golib, I can't figure out why its encoding is different20:34
natefinchsinzui: or how to fix it20:34
natefinch(it/us/whatever)20:35
sinzuinatefinch, https://launchpad.net/ubuntu/+source/gccgo-go20:36
sinzuinatefinch, I think trusty used http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/gccgo-go/trusty-proposed/files20:37
sinzuinatefinch, but you are entering into packaging and linking in debian/gccgo which is not like golang20:38
natefinchsinzui: so, I do see the encoding directory and encoding.go under src/pkg: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/gccgo-go/trusty-proposed/files/head:/src/pkg/encoding/20:40
sinzuinatefinch, yes, we established that a few weeks ago20:41
sinzuinatefinch, the recent change here is that go build to make packages was working, now it doesn't So the hack to create a goroot on the test machines wont work in the clean-room env used by builders20:43
natefinchsinzui: I'm more than willing to help, and I'm sorry if I get frustrated.  There's a lot of the packaging part, especially for gccgo, that I still don't know well, so trying to figure out why something is going wrong is difficult without preloading a lot of knowledge.20:50
katconatefinch: sinzui: it seems extraordinarily hazardous to me that we would patch the go stdlib to include an entire package20:50
katconatefinch: sinzui: seems like we could get unexpected behavior quite easily, doesn't it?20:50
natefinchkatco: we forked the xml package.  I would not say we were patching the std lib at all.   we copied the xml package to github.com/juju/xml and reference it as a normal 3rd party package20:51
natefinchkatco: the problem seems to be that we're using any package that itself depends on the encoding package.20:51
katconatefinch: that doesn't have a dependency graph that spiders out into other parts of the go stdlib?20:51
natefinchkatco: it should be exactly the same as if we just imported the xml package20:52
sinzuinatefinch, I found 3 changes between the the time we could make packages and when we couldn't mgz made two of them https://bugs.launchpad.net/juju-core/+bug/1440940/comments/1520:52
mupBug #1440940: xml/marshal.go:10:2: cannot find package "encoding" <blocker> <ci> <regression> <test-failure> <juju-core:In Progress by gz> <juju-core 1.24:Triaged> <juju-release-tools:In Progress by gz> <https://launchpad.net/bugs/1440940>20:52
katconatefinch: well, what i'm getting at is we're using version X of the xml package with version Y of the rest of the go stdlib20:53
katconatefinch: and i'm wondering if that might introduce unintended consequences20:53
natefinchkatco: it shouldn't matter, because the only code using our XML package is code we specifically wrote to use it.  It should either compile on all platforms or not.20:54
katconatefinch: compilation =/= proof of correctness20:54
natefinchkatco: but if the problem is a compilation error....20:54
katconatefinch: this particular problem; i'm questioning the larger strategy20:54
sinzuinatefinch, the xml package *did* compile a week ago. When only tests were broken I assumed it was test-double nonsense from gccgo20:55
natefinchkatco: it's really conceptually no different than forking any other package and using it instead of the original.  the stdlib isn't special, it's just normal go code.20:55
katconatefinch: correct, but the version of the xml package we've imported was written to depend on perhaps a different version of the go stdlib20:56
katconatefinch: what i'm getting at is: we're mucking with dependencies in a very non sustainable way20:56
natefinchkatco: there's no version of the stdlib that doesn't have the encoding package, though20:57
natefinchkatco: also, the stdlib is guaranteed backwards compatible to go1.0 and they're very strict about it20:57
natefinchI think looking at sinzui's list of commits that might have broken it is a good way to tackle the problem.  IN theory, something should stand out.20:58
katconatefinch: from a signature perspective... not implementation20:58
katconatefinch: this line of questioning is probably irrelevant at this point, i'll drop it20:58
natefinchsinzui: is it possible to re-run the last test that worked?  To rule out environmental / process changes?20:59
katconatefinch: but wow will this get messy fast20:59
natefinchsinzui, katco: unfortunately, I'm at EOD.  I may be able to get online significantly later (9pm-ish eastern), but may not, depending on the state of my kids.21:00
katconatefinch: hope everyone feels better, and hope the appt. went well today21:00
natefinchI think it's worth going through the code changes to look for things that stand out ,and also doing a double check to make sure that the last run that worked still works.21:00
natefinchkatco: thanks21:00
sinzuinatefinch, not in CI since the job is publishing. But in this case, this is the actual packaging rules. anyone can take the  release tarball, make a source package from the packaging branch, and then build it (on ppc21:01
sinzui)21:01
sinzuinatefinch, note that building happens in fakeroot, so changes cannot just happen21:02
natefinch*nod*21:02
natefinchok, gotta run, sorry.  Will try to be back on later.  I'll take a look at the changelists and possibly the tarballs themselves to see if I can figure out what's going on.21:02
natefinchoh, one hack to fix it might just be to do an unnecessary import "encoding"  from somewhere under github.com/juju/juju so we force that it gets included in the tarball21:04
wwitzel3katco: no, it isn't blocked21:23
katcowwitzel3: k ty21:24
menn0wallyworld: ping?21:36
=== kadams54 is now known as kadams54-away
mupBug #1449277 changed: juju environment create fails on aws: invalid config <juju-core:Invalid by waigani> <juju-core 1.24:Invalid by waigani> <https://launchpad.net/bugs/1449277>22:48
perrito666so http://reviews.vapour.ws/r/1508/ and http://reviews.vapour.ws/r/1509/ Fix lp1441826 in 1.24 and master respectively, who would be so kind? wallyworld ?22:57
perrito666katco: ?22:57
perrito666ill go get some dinner and then come back22:57
ericsnowcould I get a review on http://reviews.vapour.ws/r/1510/?23:23
ericsnowit's the fix we talked about on the call (build constraints for vsphere provider)23:23
ericsnowit should be super easy to review23:28
perrito666famous last words23:29
wallyworldericsnow: looks like there's additional unrelated changes in that diff23:41
ericsnowwallyworld: ah, that's just RB doing its thing (I'll fix)23:42
ericsnowfixed23:43
wallyworldlooking again23:44
wallyworldericsnow: what does the newly added init_gccgo do?23:44
ericsnowwallyworld: makes it so I don't have to touch provider/all/all.go :)23:45
ericsnowwallyworld: (allows import of "github.com/juju/juju/provider/vsphere")23:46
ericsnowwallyworld: I'll add a note to that effect23:46
ericsnowwallyworld: good to go? (I'm going AFK in a minute)23:56
wallyworldericsnow: bah, i got disconnected again, i asked a quesion - what does the newly added init_gccgo do?23:57
ericsnowwallyworld: yep, and I responded :)  I've added a comment explaining (allows imports of the package to continue to work)23:58
wallyworldsorry, didn't see23:58
ericsnownp :)23:58
wallyworldericsnow: lgtm, ty23:59
ericsnowwallyworld: thanks23:59

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