/srv/irclogs.ubuntu.com/2014/07/31/#juju-dev.txt

menn0wallyworld, thumper: sorted out the test failure. it was due to a change in how mgo does retries. I copied the change from master and it now passes. I've tried running big chunks of our state tests and all is looking good. will propose shortly.00:08
wallyworldmenn0: that's awesome, ty00:08
perrito666restore from ./juju-backup-20140728-1542.tgz completed <-- with failures but :D00:09
thumperwallyworld: https://github.com/juju/juju/pull/434 for backported mongo change00:18
wallyworld\o/ looking00:19
menn0thumper, wallyworld: this one needs a look before I can merge the big juju 1.20 change: https://github.com/juju/charm/pull/3000:23
wallyworldsure00:23
wallyworldmenn0: tests pass?00:23
menn0thumper, wallyworld, sinzui: also, the bot doesn't seem to be noticing this: https://github.com/juju/juju/pull/43300:23
menn0what am I doing wrong?00:23
menn0wallyworld: yep, tests pass00:23
thumpermenn0: did you still say merge?00:24
sinzuimenn0, __fixes-1318366__00:24
wallyworldmenn0: awesome, juju/charm change merged00:24
menn0thumper: no. so you need both.00:24
thumpermenn0: AFAIK00:24
menn0in the same comment or it doesn't matteR?00:24
wallyworldthumper: your pr says it has conflicts00:25
davecheneymenn0: use figlet(1)00:25
sinzuimenn0, oh, but that isn't a merge command $$merge$$ to request merge testing.  __fixes-1318366__ is needed to convince CI to test it for the merge bot00:25
thumperwallyworld: really?00:25
thumperwtf?00:25
thumpersinzui: I thought you said 1.20 landings were ungated?00:25
menn0thumper: this is for master00:25
sinzuimenn0, damn, I think github is swallowing __00:26
thumpermenn0: mine isn00:26
thumperisnt'00:26
sinzuithumper, they are ungated, or were when I last looked00:26
thumpersinzui: https://github.com/juju/juju/pull/434#issuecomment-5069894800:26
sinzuiah, 1350493 is a regressions00:27
menn0looks like bug 1318366 isn't on the list of allowed fixes for master: "Does not match ['fixes-1350493', 'fixes-1347715', 'fixes-1342725']"00:27
_mup_Bug #1318366: jujud on state server panic misses transaction in queue <cloud-installer> <landscape> <orange-box> <panic> <performance> <sm15k> <juju-core:Triaged> <juju-core (Ubuntu):Triaged> <https://launchpad.net/bugs/1318366>00:27
menn0should I wait?00:27
menn0or __JFDI__00:27
wallyworldjfdi00:27
sinzuimenn0, Yes please, your work predates the discovered of the regressions00:27
menn0sinzui: ok thanks00:27
thumperah fark00:27
sinzuiI will remove find something other than __ to avoid the markdown conflict00:28
sinzuiCI will accept underscores and non- underscores for fixes-nnn to avoid the issue.00:32
sinzuiI will remove the regression tag on 1.20 since there is no test showing the regression at this time00:32
sinzuiI mean I removed "ci" from the bug 1350493 since ci didn't see the regressions00:33
_mup_Bug #1350493: 1.20.x local provider not running apt-get update <charms> <regression> <juju-core:Triaged> <juju-core 1.20:Triaged> <https://launchpad.net/bugs/1350493>00:33
* thumper rolls all the instructions into one00:34
thumperwallyworld: for some reason my 1.20 base branch didn't have upstream 1.2000:35
thumpermerge accepted00:36
menn0thumper, wallyworld: here's the big 1.20 mgo change: https://github.com/juju/juju/pull/43500:39
wallyworldlooking00:39
thumpermenn0: oh, only 59 files?00:39
menn0thumper: yeah sorry. I tried to make it more but couldn't find anything else to search and replace.00:40
thumperheh00:40
thumperI say if all the tests pass, shipit00:40
wallyworldmenn0: ty, +100:42
menn0thumper: I haven't run all the tests but most of what's in the state and worker directories00:43
menn0merging now00:44
davecheneythumper: good news00:48
davecheneyalmost all the uses of authorizer.GetAuthEntity00:48
davecheneyare in type switches00:49
davecheneyso they are the same as a type switch on authorozer.GetAuthTag()00:49
davecheneythumper: and the ones that aren't when they get the entity, they just take it's tag anyway00:50
davecheneyspot the bug00:52
davecheney                loggedInUser := api.getLoggedInUserTag()00:52
davecheney                if loggedInUser != argUser.Tag() {00:52
davecheney                        result.Results[i].Error = common.ServerError(fmt.Errorf("Can only change the password of the current user (%s)", loggedInUser.Id()))00:52
davecheney                        continue00:52
davecheney                }00:52
davecheney^ getLoggedInUser returns nil if the logged in user isn't a user00:52
davecheneysay a machine or somethig00:52
davecheneyso returning the error would panic the server00:52
thumperheh00:53
davecheneyso i guess there isn't any coverage of this path ...00:54
thumperI guess not00:55
davecheneythumper: you're a winner00:55
wallyworldthumper: your change merged \0/, now just waiting for menn0 's01:10
thumperphew01:10
wallyworldhurry up bot01:10
hazmatis there any way to make the test runner print the name of test before it starts running it?01:18
axwonly with -gocheck.vv I think01:18
axwwhich gives you all the logs too01:18
hazmati'm using that, sadly that's not doing the trick working w/ mgo though01:18
thumpermenn0: FWIW I got this failure on master: FAIL: upgrade_test.go:274: UpgradeSuite.TestLoginsDuringUpgrade01:19
sinzuiA recent commit to master broke deploy in 4 clouds. Something about /var/lib/juju/db not existing01:19
* sinzui gathers logs01:19
hazmataxw, maybe it is.. its just lost in the undifferentiated output01:19
davecheneythumper: https://github.com/juju/juju/pull/43601:20
davecheney^ with fix and test01:20
* thumper wonders if he broke trunk again01:20
davecheneythumper: can I land that fix ?01:22
davecheneymenn0: you branch fialed to land01:23
wallyworldmenn0: good news for you - gomaasapi needs updating too!01:23
davecheneyyeah01:23
thumperdavecheney: not yet I don't think01:23
davecheneyjust about to say that01:23
davecheneythumper: ok01:23
davecheneythumper: it wasn't really a question, more 'can I use the magic string to land it'01:23
thumperdavecheney: I'd rather you didn't just now01:23
davecheneyok01:23
waiganithumper: https://github.com/juju/juju/pull/43701:26
axwwallyworld: https://github.com/juju/juju/pull/43101:34
axwfixes the manual provider regression01:34
wallyworldlooking01:34
axwfor real this time01:34
axwverified on the CI machine01:34
sinzuithumper, https://bugs.launchpad.net/juju-core/+bug/135063301:34
axwwallyworld: also https://github.com/juju/juju/pull/430 unbreaks something I changed in the previous change01:34
axwwallyworld: thanks01:48
wallyworldnp, thanks for fixing01:48
axwjust thinking, maybe it'd be better to return an error if the output is something else01:48
axwi.e. not "no-agent-dir" or whatever01:49
wallyworldi wondered that01:49
axwthen we'd see it in the output01:49
wallyworldyep01:49
wallyworldso long as it works in all circumstances01:49
axwit's only going to consider stdout still01:50
axwso it should be fine01:50
thumpersinzui: ok, on it01:52
perrito666axw: tx for the review on restore01:54
axwperrito666: nps01:54
perrito666I was really needing a second pair of eyes on that thing01:54
thumpersinzui: fuck fuck fuckity fuck, found it (I think)01:56
thumperyep01:56
* thumper gets a patch ready01:56
* thumper thinks of how to test it01:56
* thumper wonders why the existing test didn't fail01:57
menn0davecheney, wallyworld: back from lunch. I'll deal with the failed merge after the team meeting.01:58
wallyworldnp01:59
menn0thumper: do you have more detail on the UpgradeSuite.TestLoginsDuringUpgrade failure you saw?01:59
thumpermenn0: only the scrollback01:59
thumperI'll look in a miute01:59
sinzuithumper, great the --debug I ran didn't give me any more information than the console output. I did find another test instance that has be deleting for more than a day in HP. good I get to write a support ticket02:02
thumpersinzui: I know what the problem is, just not sure why the tests didn't catch it02:02
perrito666natefinch: you are not around for the meeting right?02:17
perrito666davecheney: its odd, you are the one I hear the best next to jeese02:27
perrito666and I think we are as far apart (network wise) as topologically possible02:28
davecheneyperrito666: hangouts appear to be point to point based, so some sound ok, others are complete disasters02:28
perrito666well, mystery :) Ill try to have more meetings with you :p I hear you better than almost everyone else02:29
perrito666ok ppl almost midnight here, see you all tomorrow, cheers02:29
* perrito666 turns into a pumpkin02:30
davecheneyperrito666: it's because I have a loud mouth02:32
menn0davecheney, wallyworld: I don't understand why this happened: https://github.com/juju/juju/pull/435#issuecomment-5070244902:33
davecheneymenn0: toptip: don't trust godeps02:33
davecheneyi think it's fucked02:33
davecheneyit tells you it's updated to the correct rev02:33
davecheneybut it lies02:33
wallyworldhuh?02:33
wallyworldgomaas was never updated02:33
menn0hmm ok02:33
wallyworldwas it?02:33
wallyworldgomaas also needs the import path changes02:34
wallyworldafaik, godeps works ok now that it has the -f option02:34
davecheneywallyworld: your experience differs from mine02:35
wallyworld:-02:35
wallyworld(02:35
davecheneyi have found it to be unreliable since growing the ability to update if a rev is missing02:35
wallyworldok, shame02:35
wallyworldi wish Go as a platform supported something better02:35
wallyworldnot like this problem is new or anything02:36
menn0davecheney, wallyworld: well I look at my current gomaasapi copy and it indeed has references to labix.org/v2/mgo/02:36
menn0so I have no idea how builds and tests are working02:36
davecheneymenn0: then the hash your using isn't the same one as dependencies.tsv02:36
wallyworldmenn0: i think you still have labix source locally02:37
wallyworldbut the bot doesn't02:37
thumperaarg!!!02:37
thumperfound out why the tests passed02:37
wallyworldand......02:37
davecheneywallyworld: menn0 yeah, that could be it02:37
wallyworlddrumroll02:37
menn0yep, that's exactly it02:37
* davecheney holds breath02:37
* menn0 deletes the old repo02:38
* davecheney is breathless with ................ anticipation02:38
* wallyworld taps fingers02:38
* wallyworld holds breath02:38
davecheneyOUT WITH IT MAN!02:38
thumperwallyworld: mocking02:39
wallyworldah02:39
wallyworldffs02:39
wallyworld\o/02:39
thumpers.PatchValue(mongo.AvailSpace, <-- said a constant02:39
thumpernew function makes sure the directory exists02:39
davecheneywallyworld: let me tell you about apiserver/testing/fakeauthorizer some day02:39
wallyworlddavecheney: noooooooo!02:40
davecheneywallyworld: thumper will tell you all about it when he tucks you in next week02:40
wallyworldooooh02:40
wallyworldcan't wait02:40
* wallyworld likes thumper's good night kisses02:41
axwmenn0: did you update the gomaasapi rev in dependencies.tsv in 1.20?02:41
axwI bumped it in master only02:41
davecheneyaxw: that'll be it02:42
menn0axw: yep I'm just pushing that now02:44
thumperwallyworld: https://github.com/juju/juju/pull/43802:45
menn0axw: it took me a while to figure out why everything worked on my machine without that change. turns out I still had the old labix mgo hanging around02:45
wallyworldlooking02:45
* thumper fixes 1.2002:46
wallyworldthumper: goes to show one has to be careful when writing mocks - just the correct bits need to be mocked out and nothing else02:46
* thumper nods02:47
thumperdamn git and it's auto commit shit02:48
wallyworld"damn git" without the qualifier is what you meant i think02:48
thumperwallyworld: and the backport https://github.com/juju/juju/pull/43902:51
wallyworldhmm, where has i seen that diff before?02:52
thumpersinzui: I do like the __JFDI__ flag, and the bold actually fits02:53
* thumper has quick dogwalk before school ends02:54
axwreview for https://github.com/juju/juju/pull/440 please? should fix the windows bootstrap regression03:09
menn0wallyworld: I can see that the test run for the 1.20 changes already has at least one failure03:09
menn0:(03:10
menn0looking in to it now03:10
wallyworldok03:10
axwwallyworld: I don't follow your comment about precise03:17
axwI'm just using "trusty" because the series is used to infer the OS03:17
axwit could be precise, quantal, trusty, ...03:17
wallyworldaxw: i thought that people running precise would get confused if they saw a /var/lib/juju/data/trusty dir03:18
wallyworld"wtf, i'm on precise, why is juju saying trusty"03:18
thumperaxw: is there no other reasonable series we can use at that callsite?03:18
axwit won't be in there03:18
thumpernot one that is passed in?03:18
axwwallyworld: it'll just be /var/lib/juju03:18
menn0wallyworld, axw: does this ring any bells? http://paste.ubuntu.com/7910716/03:19
wallyworldaxw: oh, ignore me03:19
menn0it's failing on 1.20 for me with the newer mgo03:19
axwthumper: I could just change it to "/var/lib/juju" and do away with the call altogether03:19
wallyworldaxw: i misread it, sorry03:19
menn0in CI too03:19
axwmenn0: looking03:19
wallyworldaxw: that helper function is what i was referring to03:19
wallyworlddoh03:19
menn0axw: the test itself is the same in master03:19
axwmenn0: hmm no sorry03:20
menn0axw: thanks. I'll keep digging.03:20
thumpermenn0: I think I have seen that intermittently once or twice03:21
menn0thumper: it could be that the timeout is a little tight03:21
menn0and perhaps the fix to this panic changes mgo's timing. the test is about watchers.03:22
wallyworldmenn0: that error doesn't ring a bell. the only wather timing issues i know of are in state/watcher03:23
wallyworldaxw: my vote is just to use /var/lib/juju with a TODO03:24
axwrighto, will change03:25
menn0now I can't get that test to fail on my machine. I'm going to increase the timeout a bit.03:25
wallyworldmenn0: don't you just love tests with timeouts? sigh03:29
menn0wallyworld: well the timeout is only in case the code under test doesn't work ... but unfortunately the code needs most of that timeout to do it's thing03:30
wallyworldmenn0: "we" should be using channels and signals for tests that need coordination, not timeouts03:30
wallyworldbut most of our tests are bad in that respect03:31
thumperhmm.... MachineSuite.TearDownTest... Panic: not authorized for query on presence.presence.beings (PC=0x414686)03:32
menn0wallyworld: it IS using channels. the timeout is used for the maximum time to wait for something to come back from the channel. the code is dependent on the watcher frequency which is why it has to wait.03:32
menn0so the test isn't THAT bad03:32
wallyworldmenn0: ok, sorry :-) i spoke without looking at the code03:32
menn0it should probably patch the watcher frequency so it doesn't have to wait so long03:32
* wallyworld is scared by bad tests03:32
menn0but I don't know if that would have other bad effects03:32
thumperalso...  Panic: local error: bad record MAC (PC=0x414676)03:33
wallyworldmenn0: there's a way to manually trigger the watcher03:33
wallyworldthumper: that's a mongo 2.4 bug03:33
thumperwallyworld: ok03:33
wallyworldhopefully fixed in 2.603:33
wallyworldhence the drive to port juju to mongo 2.603:33
menn0wallyworld: this test appears to be fairly high level so I don't know if that applies03:34
menn0I'm sure there's a way to make it faster03:34
menn0but I'm not going to try and solve that now03:34
menn0there's a TODO already03:34
wallyworldmenn0: yep. for now i'd to the minimum03:34
menn0actually I think I see the problem03:35
menn0there could be a race03:35
wallyworldthumper:  that not authorised panic is a worry - it can happen with the new session copy stuff if there's a race03:35
wallyworldsince a wrong session without credentials is used to connect03:35
wallyworlddoes it only happen every so often?03:35
thumperwallyworld: cmd/jujud tests03:35
* thumper is running the tests again03:36
wallyworldfrom what i've seen, given al the improvements to tests over the past several weeks, the cmd/jujud tests are the main ones still failing03:36
thumperwallyworld: succeeded that time03:42
wallyworldah, intermittent tests03:42
marcoceppianyone know, in the actions spec03:44
marcoceppiis it action.yaml or actions.yaml?03:44
wallyworldyes03:44
wallyworld:-P03:44
* marcoceppi waddles away03:44
wallyworldsorry :-)03:44
wallyworldi don't know which one03:44
marcoceppihaha, it's fine03:44
marcoceppiI'm trying to dig up the spec03:45
wallyworldmarcoceppi: in the code, it seems to be actions.yaml03:45
wallyworldin juju-core code that is03:45
marcoceppiwallyworld: interesting that it's pluarl but metadata and config aren't03:45
wallyworldyeah03:45
wallyworldi have had no involvement so can't comment03:46
* marcoceppi wonders if he should call it benchmark or benchmarks.yaml03:46
wallyworldmarcoceppi: well, it is environments.yaml for example03:46
marcoceppiwallyworld: ah, true, good point03:46
marcoceppiI guess pluarl is depending on how well the word sounds :)03:46
wallyworldi'd go with plural03:47
marcoceppiI'll go with plural form03:47
marcoceppiyeah03:47
axwthumper: sorry, I thought you were working on the master branch - I shouldn't have changed the status of that bug :)04:11
=== menn0_ is now known as menn0
davecheneyuh,oh04:24
davecheneylucky(~/src/github.com/juju/juju) % git pull upstream master04:24
davecheneyfatal: unable to access 'https://github.com/juju/juju.git/': Could not resolve host: github.com04:24
menn0wallyworld, sinzui: the mgo fixes for 1.20 are in! *\O/*04:49
menn0davecheney: I've had that a bit today as well (but my internet link has been a bit flaky too)04:50
wallyworldmenn0: whoo hoo04:50
wallyworldty04:50
* menn0 updates the LP bug04:51
davecheneythumper, wallyworld I would like permission to land this, https://github.com/juju/juju/pull/44204:55
davecheneyI'm tired to skipping over this test failure04:55
wallyworlddavecheney: go for it04:56
davecheneywallyworld: thanks, i helps as I'm working in that area daily04:57
wallyworldno problem at all, nice change04:58
davecheneyOh, this change was actuall Go 1.405:05
davecheneynm05:05
davecheneywhat is important is there are some improvements in the race detector coming soon to 1.4 dev05:05
davecheneyand I want to be able to run juju under this improved race detector05:05
davecheneygiven the plethora of problems we have at ht emoment05:05
menn0ericsnow: ping?05:10
* ericsnow hides05:11
ericsnowmenn0: hi :)05:11
menn0ericsnow: do you want to do a quick hangout re the backup work? it might be more efficient.05:12
ericsnowmenn0: sure, I really should have gone to bed hours ago, but at this point I'm not going to sweat it :)05:13
menn0ericsnow: I don't have much time before I need to go so I promise it'll be quick :)05:13
menn0ericsnow: https://plus.google.com/hangouts/_/gthfw6mxzrcsonn5bzqoqdb5iya?authuser=1&hl=en-GB05:14
menn0ericsnow: https://plus.google.com/hangouts/_/gthfw6mxzrcsonn5bzqoqdb5iya?authuser=1&hl=en-GB05:14
davecheneythumper, wallyworld large email about FakeAuthorizer sent to the list, enjoy!05:31
davecheneyjcw4|away: this test has been broken for weeks05:35
davecheneyhttp://paste.ubuntu.com/7911495/05:35
davecheneyis it on your schedule to fix ?05:35
davecheneyjcw4|away: the test failure stems from the caller expecting actions to be returned in a set order05:38
=== Guest46318 is now known as wallyworld
ericsnow*END* *OF* *DAY*05:42
wallyworlddavecheney: jeez, it's not good when a mock breaks the contract implemented by the thing it is mocking06:18
davecheneywallyworld: indeed06:19
davecheneywallyworld: ideally, if I do this properly, we won't need a mock at all06:19
wallyworld\o/06:20
davecheneythere will just be apiserver.TagAuthenticator06:20
davecheneywallyworld: https://github.com/juju/juju/pull/44306:32
wallyworldlooking06:32
davecheneywallyworld: not ugrent06:34
davecheneyurgent06:34
wallyworlddavecheney: already +1 :-)06:35
davecheneythis is part of unfucking FakeAuthoriser06:35
davecheneywallyworld: it'll wait til the trunk is unblocked06:35
wallyworldok06:35
davecheneyi'm doing a poor man's git pipeline06:35
wallyworldi miss lp for that06:35
marcoceppiWhy can't I use juju run against a subordinate?06:57
rogpeppeis there an easy way to tell the current blocked status of commits to juju-core? i *think* that it's currently blocked by #1345638 (only) but it would be nice to have a definitive way to tell other than trying a $$merge$$07:07
_mup_Bug #1345638: ec2 changes? rising failure rate in ec2 health checks <ec2-provider> <juju-core:Triaged> <juju-core 1.20:Triaged> <https://launchpad.net/bugs/1345638>07:07
rogpeppemarcoceppi: i don't see why you shouldn't be able to07:07
rogpeppemarcoceppi: what error do you see?07:08
marcoceppirogpeppe: currently getting this07:08
marcoceppijuju run --unit subordinate/0 "cabs status"07:08
marcoceppiERROR subodinate/0 is not a principal unit07:08
marcoceppirogpeppe: should I file a bug?07:08
rogpeppemarcoceppi: yes - it does seem to be a deliberate decision, but i can't immediately think of a reason why you shouldn't be able to do it.07:10
marcoceppirogpeppe: cool, this will really help unblock me with some stuff around benchmarking07:10
rogpeppemarcoceppi: note: i wasn't involved in doing juju-run at all - there may well be a good reason why it doesn't allow it07:11
marcoceppirogpeppe: anyone you know off the top of your head i could ping for more clarification?07:11
rogpeppemarcoceppi: fwereade might know. or axw. otherwise i think thumper is the man.07:12
axwhmm, I don't know why07:13
fwereademarcoceppi, rogpeppe: can't think why offhand. are there maybe issues around ssh to subordinate units that juju run falls foul of?07:13
rogpeppefwereade: i don't see why it should07:14
marcoceppifwereade: I can juju ssh to subordinate/0 without issue07:14
* marcoceppi is scouring the mailing list atm07:14
fwereademarcoceppi, it's evidently not that then :)07:14
marcoceppiI'll open a bug and see if thumper or axw chime in07:15
rogpeppemarcoceppi: how about proposing a trivial fix for the issue (just remove the unit.IsPrincipal check) and try to get a review off thumper?07:15
rogpeppemarcoceppi: or that07:15
marcoceppirogpeppe: ah, was going to check next how hard it woudl be to patch07:16
marcoceppiif it's just a line or two I'll do that07:16
rogpeppemarcoceppi: it's just one if condition07:16
marcoceppirogpeppe: cool, I'll go that route then07:16
rogpeppemarcoceppi: github.com/juju/juju/state/apiserver/client/run.go:6807:16
marcoceppiand duke it out in a pull request07:16
marcoceppirogpeppe: ta!07:16
fwereademarcoceppi, yeah, should be a trivial fix -- IIRC AssignedMachineId does work for subordinates, so just drop the IsPrincipal() check and see what happens07:17
fwereademarcoceppi, get thumper's opinion on the PR, though, he might remember some important reason I've forgotten07:18
* fwereade observes that rogpeppe said all that already07:18
* fwereade slinks off07:18
marcoceppifwereade: ack, I'll take a stab at it later tonight and just work around it for now. I'd want to compile/test as well to make sure it addresses my issue and actually works07:18
rogpeppe:-)07:19
marcoceppithanks for the help fwereade and rogpeppe o/07:19
=== psivaa is now known as psivaa-brb
axwcan someone review please: https://github.com/juju/juju/pull/445  <- fixes a critical bootstrap bug on master, 1.20 will come shortly08:03
TheMueaxw: *click*08:04
voidspaceaxw: change looks fine to me (I'll let TheMue do formal review)08:07
axwthanks08:08
voidspaceaxw: the PR says ""With recent changes, we were leaving the installation of mongodb until too late"08:08
voidspaceaxw: *which* changes made this difference?08:08
axwvoidspace: thumper fixed a bug where we were reinstalling/restarting the upstart service unnecessarily08:09
axwbut left the installation bit where it was08:09
TheMueaxw: +108:09
voidspaceok, cool08:09
axwTheMue: thanks08:09
voidspacejust wanted to understand the need08:09
TheMueaxw: and btw thx for the initial comment describing WHY and not WHAT has changed.08:10
TheMueaxw: just reviewd another PR this morning where the motivation for the change was missing08:10
axwno worries (though evidently could've been better). I like to know why things are done too ;)08:11
TheMueaxw: yeah, helps when doing the review08:12
* TheMue has to admit that he has to improve himself here08:12
voidspaceheh, all round I think :-)08:13
TheMuebtw, this morning I’ve seen a pattern to avoid a large number of arguments. here the args are in a struct and this is passed as variadic08:16
TheMueinside the function it is checked if 0 or 1 of these structs is passed08:16
TheMueand then the values are checked or a default is taken08:16
TheMuesomehow this looks a bit strange08:17
TheMuewhat I like more is a pattern by Rob which can be found here http://commandcenter.blogspot.nl/2014/01/self-referential-functions-and-design.html08:17
TheMueit’s a bit more code, but when used it reads really good08:18
TheMuefwiw ;)08:18
axwthat would be quite a lot of code, seems like it'd be overkill except in public APIs08:19
axwit is neat08:19
axwcan't say I've seen any optional/variadic struct signatures - that sounds a bit unusual for the codebase08:20
TheMueaxw: I found it in state, one already exists and one has copied this in the PR I’ve reviewd08:20
TheMueaxw: one moment, will look for the file08:21
=== psivaa-brb is now known as psivaa
TheMueaxw: oh, just have seen that it’s in a testing package, testing/factory/factory.go, line 8808:23
TheMueaxw: so for testing code it may be ok08:24
axwI see08:25
axwI'd be tempted to make a second function, MakeUserDefaults08:26
axwwhich calls the other with default values08:26
marcoceppiIs there someone I need to ping or a review queue for pull requests agianst core?08:30
TheMueor you have to pass a struct but it can be empty (which leads to defaults)08:30
TheMuemarcoceppi: the OCR (see https://docs.google.com/a/canonical.com/spreadsheets/d/1iQLLOWrjzxddm5VhYWYi0-2k3xI6wTMlpkvnVNJCYGY/edit#gid=0) can be pinged08:32
TheMuemarcoceppi: or simply asking here08:32
TheMuemarcoceppi: you talk about 447? change looks ok but I’m missing a change in the according unit tests08:49
marcoceppiTheMue: I don't think the unit tests ever covered this. When I ran the test post-change it still worked09:00
* marcoceppi is really not that good at go09:00
marcoceppiTheMue: http://paste.ubuntu.com/7912806/09:02
TheMuemarcoceppi: yeah, we have several uncovered aspects ;)09:03
marcoceppisince it's removing a restriction that was not already covered, how would you recommend I proceed?09:03
TheMuemarcoceppi: so based on the existing test base and your live tests it’s OK. if there before would have been a test expecting an error this would fail now09:04
marcoceppiTheMue: right, I checked for that but then I read too much golang and got dizzy ;)09:05
TheMuemarcoceppi: adding a test for a removed restriction, hmm, dunno how to do it. only by removing an existing test like described above. but so?09:06
TheMuemarcoceppi: then I would say LGTM and it can be merged09:06
TheMuemarcoceppi: but hey, dizzy by golang? no :D09:06
marcoceppiideally I'd want to s.State.AddService('subordinate') but I have no idea how to distiguish a service as a subordiante09:06
marcoceppithen make sure that subordinate reports back it's units in run_test.go around line 7709:07
marcoceppiso regressions don't occur09:07
* marcoceppi does some more digging09:07
voidspaceaxw: ping, you still around?09:12
axwvoidspace: pong, I am09:12
voidspaceaxw: so I'm removing the code that opens the stateport to the outside world in the various providers09:13
voidspaceaxw: I've done ec2 and openstack09:13
voidspaceaxw: azure is slightly different09:13
voidspaceaxw: provider/azure/environ.go09:13
voidspaceaxw: it looks like I just delete the state-port endpoint, lines 794+09:14
marcoceppiyup, I'm over my head09:14
voidspaceaxw: does that sound right to you?09:14
axwvoidspace: looking/refreshing memory09:14
voidspacesure :-)09:14
marcoceppiyup, I'm in over my head09:14
axwvoidspace: while you're here, can you delete that TODO in getInitialEndpoints please09:14
* TheMue laughs about http://geek-and-poke.com/geekandpoke/2014/7/31/hansel-and-geekel09:14
axwvoidspace: yep, you can just remove the StatePort bits09:16
voidspaceaxw: okey-dokey, and thanks09:16
axwnps09:17
axwvoidspace: ooh, hold on09:17
axwcomplicated09:17
voidspaceaxw: my only concern would be if it prevents us using the *local port* too09:18
axwif we just remove it, listPorts will start showing StatePort09:18
voidspaceaxw: as available?09:18
axwit won't09:18
axwvoidspace: actually I don't think it matters. for some reason the code tries to mask the state port from the result of Ports09:19
axwbut... a unit should not be opening that port09:19
voidspaceaxw: and why would it matter if a unit opens that port?09:19
voidspaceaxw: unless the unit is deployed to a state server I guess09:19
axwwell, it'll be opening up mongo if the unit is running on a state server09:19
voidspacewhich we allow09:19
voidspacerught09:19
axwright09:19
voidspace*right09:19
axwI think we should handle that at a higher level though09:20
voidspaceaxw: right, it shouldn't be the job of every separate provider to prevent that09:20
axwvoidspace: so I think the idea is that we don't want to report that we've internally opened a port, but I actually don't know what that affects09:22
axwif anything09:22
voidspacewe don't want to report that we've opened it? But the change is that we *don't* open it. So if the desire is to not report it, then surely that won't change...09:22
axwupgrades09:22
axwan existing instance will have opened it09:23
axwif we then remove the port from the mask, it'll show up09:23
voidspaceah09:23
voidspacesecurity by obscurity?09:23
voidspacein the hope that no-one will ever read the source code09:23
voidspaceor the logs09:23
axwI don't know if that's the point - I hope not09:24
voidspaceheh09:24
voidspacemaybe just not to leak internal details to user facing information09:24
voidspaceif they're asking which ports are open they *probably* want to know which ones *they* opened09:24
voidspacenonetheless, I have a test failure due to this09:25
axwvoidspace: I'm just looking at the firewaller; looks like it's to stop the firewaller from closing ports it didn't tell the instance to open09:25
voidspaceso l will go on lunch09:25
axwenjoy09:26
voidspaceaxw: ah, ok09:26
voidspaceaxw: what's the implication of that?09:26
axwvoidspace: we need to preserve the mask09:26
voidspaceaxw: surely that's good - if we no longer mask the state port it *will now* be closed on upgrade09:26
voidspacewhich is what we want09:26
axwheh I guess so :)09:26
axwI'm sold09:27
voidspaceit means we don't need an explicit upgrade step to close the port...09:27
voidspace:-D09:27
* voidspace lurches to lunch09:27
jam1voidspace: better to lurch towards lunch, than to lurch during/after lunch, I guess09:33
voidspaceheh09:33
voidspaceI lurch a lot09:33
mattywfwereade, ping?10:03
wallyworldmgz_: 1:1 time10:03
mattywfwereade, If possible I'd like to schedule some time with you to talk to emerald squad about some stuff - I was going to shove something in the diary - wondered if you had a preference of timing?10:04
perrito666morning10:12
TheMueperrito666: morning10:21
rogpeppefwereade: i'd appreciate your review of this since we discussed it recently, if you have a little time: https://github.com/juju/charm/pull/3110:25
rogpeppeother reviews also appreciated, please10:33
voidspaceTheMue: jam1: coffee on the boil - be at standup in 3 minutes or so...10:45
jam1kk10:45
TheMuejust fetched my headset10:45
voidspacein10:49
TheMuevoidspace: afk for lunch, so we’ll talk later11:04
voidspaceTheMue: sure, I have to finish this ticket first anyway11:09
wallyworldkatco: mgz_: axw: still in other meeting, will ping soon for standup11:57
perrito666hey congrats and thanks to the people involved in the style and review guide, that helps a lot12:14
jam1cmars: thanks to your patch I did get the client side stuff landed today.12:17
perrito666jam1: hey, have a moment?12:17
cmarsjam1, excellent12:17
bachi mgz_, are you using jenkins-github-lander on your CI?12:17
cmarsjam1, i'm updating my login API accordingly12:17
jam1what's up perrito66612:18
rogpeppecmars: any chance you could take a look at https://github.com/juju/charm/pull/31 please, as it's changing some of your code, i believe? (i got agreement from fwereade that this was a reasonable way to move forward)12:18
bacsinzui: ^^12:18
* cmars takes a look12:19
perrito666jam1: some time ago you asked me about a running aws instance and also to vlad, how do you see who does the instance belong? I see one running since the 24th and seems to be a leftover state server12:19
perrito666but I cannot determine who does it belong to12:19
jam1what region is it in ?12:19
perrito666us-east-112:20
* thumper pops on briefly12:20
thumpermattyw: I'm going to take the names branch for user tags, unless you want to move it forwards12:20
thumpermattyw: ok with that?12:20
jam1perrito666: the only one I see in us-east was started July 31, 201412:20
perrito666jam1: ah, cool, it was destroyed yesterday then :) sorry I made a todo note to ask you when I noticed the instance yesterday12:21
jam1perrito666: generally I know because the juju environment name is part of the security group, and wallyworld is the only one that names it 'amazon'12:21
perrito666ehh lol12:21
jam1perrito666: and I ask that people name their environments with their name in them12:21
jam1like mine is "amz-jam"12:21
perrito666I thought the user was stored somewhere in the aws web12:22
jam1perrito666: I would have hoped IAM credentials could let you track that, but I haven't seen it anywhere12:22
perrito666jam1: I do too but amazon was a bit too generic12:22
mattywthumper, I was just commenting on the pr actually12:22
mattywthumper, I've got a 'problem' with it - if you want to carry it on I'm fine with that12:22
thumperdid you comment your problem?12:22
mattywthumper, I will have done in about 2 minutes12:23
thumperok12:23
jam1perrito666: we might also be able to grab the userdata and parse it, but I've just always gone off the security group, and when not sure, just start asking everyone :)12:23
thumperI'll read in the morning12:23
* thumper heads to bed12:23
thumpernight all12:23
perrito666jam1: will keep in mind for the future, thank you12:23
wallyworldkatco: axw: mgz_: finally finished meetings, standup?12:34
katcowallyworld: omw after refreshing coffee.12:34
wallyworldkk12:34
cmarsrogpeppe, no major objections, but I have a question about validating Reference to URL conversion, commented on the PR12:45
rogpeppecmars: you can't stop it, but you also can't stop a user just setting a URL.Series to ""12:46
rogpeppecmars: if we see people doing it, it should be an obvious smell12:46
cmarsrogpeppe, malicious abuse of the API is less of a concern than unintended side effects. a conversion function could catch and prevent a class of defects when using the juju APIs12:48
rogpeppecmars: if we really wanted to, we could make both URL and Reference opaque (and incompatible) types, but that would be a much bigger change, and i honestly don't think the payoff is worth it. the problem is largely theoretical AFAICS.12:48
rogpeppecmars: we already have a conversion function12:49
rogpeppecmars: just nothing to stop a deliberate type conversion.12:49
rogpeppecmars: isn't doing (*charm.URL)(ref) just as much an abuse of the ABI as url.Series="" ?12:50
rogpeppecmars: what's the worst that can happen if a series is left unspecified anyway?12:50
rogpeppecmars: ISTM that this is similar to the "you can put the wrong constant in a typed constant" problem - yes, it's a theoretical problem, but it's not one that seems to be an issue in practice.12:53
rogpeppecmars: also, it's easy to statically check for type conversions like this12:53
cmarsrogpeppe, how would you check for them? just curious12:54
rogpeppecmars: it'd be easy enough to write a little go program that used go/types (that would guarantee 100%) but just a grep for '\(\*charm\.URL\)\(' would be pretty close, given gofmt'd code12:55
perrito666say I found a bug and I already know the fix, do I need to also create the bug in launchpad?13:03
perrito666or can I just send the fix with the explanation13:03
rogpeppeperrito666: i'd do the latter. but perhaps i'm just lazy :-)13:04
natefinchperrito666: usually filing a bug is a good idea so that if someone comes from an older release and complains about the bug, we can know it's fixed in the current releasre13:04
rogpeppeperrito666: although, perhaps best to add the bug, because of what natefinch says13:04
perrito666rogpeppe: yeh, he is the boss in my case :p13:04
perrito666so if he says jum, I ask how far13:04
rogpeppetotally trivial PR for review, please: https://github.com/juju/txn/pull/6/files13:04
cmarsrogpeppe, thanks. i think i'm ok with the types. still going over other aspects of the change. need some coffee :)13:05
rogpeppe(one line change with no semantic implication)13:05
rogpeppecmars: cool.13:05
natefinchanyone know how to manually update something in juju's db?  I need to set one property in a user's deployment that mgo doesn't support, so ideally I'd just go in and set it by hand.... but without the javascript console, I'm not sure if that's possible13:06
rogpeppenatefinch: what property is that?13:07
rogpeppenatefinch: also, why don't you have a js comsole?13:07
perrito666natefinch: just use the mongo cli13:07
perrito666rogpeppe: not installed by default13:07
sinzuiwallyworld, axw. Sorry 1.20 appears to be broken. the precise unit tests fail, precise deployments error, because there is no mongo13:08
natefinchrogpeppe: the juju-mongodb doesn't have javascript support, I figured that would prevent us from being able to log in and just issue javascript commands13:08
* sinzui reports bug13:08
wallyworldsinzui: hang on a se c13:08
wallyworldsinzui: it is fixed, but CI is a couple of revisions behind13:08
rogpeppenatefinch: i *think* most of the js runs client-side13:08
sinzuiwallyworld, \o/13:08
wallyworldsinzui: i was worried too but i checked the revisons13:08
wallyworldsinzui: i also live tested tip of 1.20 on ec213:09
rogpeppenatefinch: i've not had a problem using the js console on the juju db13:09
natefinchrogpeppe: the property is the readonly property on a user13:09
natefinchrogpeppe: ok, cool13:09
wallyworldsinzui: CI was *2* revisions behind, so this next run may fail also13:09
sinzuiwallyworld, I see archive issues in some of the unit-test runs. I am trying a newer ami too13:09
rogpeppenatefinch: mgo has a few back doors you can usually do stuff through13:09
wallyworldsinzui: rev 1cd26425cac98adc4e9aa70efa4e23b70f026c1d is the good one13:10
sinzuiwallyworld, it will fail, it is getting the mongo error at the moment. I wont panic13:10
sinzuinoted, thank you wallyworld13:10
wallyworldok, i oaniced :-)13:10
rogpeppenatefinch: e.g. http://godoc.org/labix.org/v2/mgo#Session.Run13:10
wallyworldpanicked13:10
wallyworldnp13:10
natefinchrogpeppe: yeah, ideally I wouldn't have to write code, just run a quick javascript command through the mongo cli13:10
rogpeppenatefinch: have you tried it?13:10
wallyworldsinzui: i was going to contact you but i only *just* finished all my meetings13:10
natefinchrogpeppe: not yet13:11
rogpeppenatefinch: worth doing, i think13:11
sinzuiwallyworld, np, I was only 20 minutes into the investigation13:11
wallyworldsorry13:11
natefinchrogpeppe: the issue is that hackedbellini has a server in a really unusual bad state of being half-upgraded from 1.19 to 1.20, and he gets an error when trying to update the admin password saying the entry must not have both a roles field and a readonly field13:12
rogpeppenatefinch: marvellous13:12
natefinchhe's the one with the server that somehow managed to upgrade from 1.18 to 1.19, even though that shouldn't be possible13:12
natefinchso we're trying to get him upgraded to 1.2013:13
natefinchThis is the current error that is blocking the upgrade - mongo returns "system.users entry must not have both 'roles' and 'readOnly' fields"13:13
natefinchwhen we try to set the admin password.  We should probably fix it in code, but I'm super busy right now, so I was hoping to give him a quick javascript command to run that would unblock him by removing the readOnly field13:14
natefinchbrb13:15
cmarsjam1, can you PTAL at my login API versioning branch, just rebased against master, https://github.com/juju/juju/pull/39213:16
hackedbellinirogpeppe: yes, we were affected by this issue: https://bugs.launchpad.net/juju-core/+bug/1325034 (it was actually my boss who opened it)13:16
_mup_Bug #1325034: juju upgrade-juju on 1.18.3 upgraded my agents to 1.19.2 <upgrade-juju> <juju-core:Triaged> <https://launchpad.net/bugs/1325034>13:16
hackedbelliniThen we tried upgrading from 1.19 to 1.20 and we had a problem because the installation was missing HA13:16
hackedbellinithumper said to me to try to change the agent.conf to read "upgradedToVersion: 1.18.4" so it would do the HA setup (that appears to only be triggered in the 1.18 => 1.20 migration and not the 1.19 => 1.20)13:16
hackedbelliniby doing that we hit that other issue natefinch described13:16
rogpeppehackedbellini: good luck :-)13:16
perrito666gsamfira: ping13:16
natefinchback13:24
natefinchrogpeppe: how do I get the password to use to log into mongo in an existing environment?13:26
rogpeppenatefinch: from a machine agent config file13:27
natefinchrogpeppe: ahh ok13:27
gsamfiraperrito666: pong13:31
perrito666natefinch: statepassword iirc in /var/lib/juju/agents/machine-0/agent.conf13:31
marcoceppiHow do I create a subordinate in a core test? I've tracked down a few examples but the entire testing side of the core project is quite mysterious. if someone had a few moments to help me out that'd be awesome13:32
rogpeppecmars: are you still reviewing?13:37
fwereademarcoceppi, heyhey13:43
marcoceppio/13:43
fwereademarcoceppi, it can indeed be a bit of a hassle, but give me a sec and I'll try to find you an example at a suitable level13:44
voidspacerebooting to (hopefully) fix some odd test failures that I think are due to machine load13:44
marcoceppifwereade: that would be awesome. I understand this entire part of the test. Just no idea how to s.AddTestingSubordinateCharm()13:45
marcoceppior whatever the method name will be13:45
marcoceppiI guess it would be AddTestingCharm, then s.State.AddSubordinateService or something such13:45
fwereademarcoceppi, in short you have to do all the steps manually: ie add a subordinate charm, create a service, add a relation with the principal service, and then have the principal unit enter scope13:46
fwereademarcoceppi, see TestDestroySubordinateUnits in client_test.go13:46
marcoceppifwereade: so I found something like that in another module of the project13:47
marcoceppifwereade: ack, will look! Thanks13:47
ericsnowfwereade: thanks for the review...it's really helpful :)13:48
fwereademarcoceppi, if you feel like being awesome, you could take a look at testing/factory and add a MakeSubordinate method :)13:49
fwereadeericsnow, cool13:49
* marcoceppi scratches chin13:49
marcoceppiwell I do like being awesome13:49
fwereadeericsnow, if there's anything that bears discussion let me know and we can hangout13:50
ericsnowfwereade: I keep forgetting that I'm only about a meter below the waterline while chipping at the iceberg that is juju13:50
fwereadeericsnow, yeah, there's an awful lot to take in I'm afraid13:51
ericsnowfwereade: menno also gave me some good feedback last night before I went to bed13:52
fwereadeericsnow, excellent13:52
rogpeppefwereade: any chance you might be able to take a look at https://github.com/juju/charm/pull/31 ?13:53
ericsnowfwereade: will you have some time to chat in a little while (I have standup soon)?13:54
fwereadeericsnow, sure, just ping me when you're free14:01
ericsnowfwereade: will do, thanks14:02
mattywfwereade, I'm going to put something in the diary for a little talk with green squad if that's ok? probably after the next sprint14:02
perrito666natefinch: stand up?14:02
mattywfwereade, unless you have spare time tomorrow14:02
natefinchperrito666: coming14:04
fwereademattyw, I should be able to do tomorrow14:04
fwereademattyw, morning would be better than afternoon I think, my time sense is still a bit messed up and I start feeling a bit sleepy and useless at lunchtime14:04
mattywfwereade, welome to my life14:05
mattywfwereade, just sent an intivte, probably won't take an hour14:17
ericsnowfwereade: you available?14:45
fwereadeericsnow, sure, 5 mins?14:45
ericsnowfwereade: sounds good14:46
perrito666rogpeppe: have a sec?14:55
rogpeppeperrito666: i have a meeting in 4 minutes14:56
rogpeppeperrito666: but if you make it fast... :-)14:56
perrito666rogpeppe: ok, ill try14:56
perrito666I made as you know a tar/untar wrapper which works very well except when untaring symlinks14:56
wwitzel3trying build juju-1.19.3 and I'm getting launchpad.net/juju-core/testing/testbase cannot find pacakge14:57
wwitzel3godeps -f -u is running cleanly14:57
rogpeppewwitzel3: perhaps dependencies.tsv hasn't been updated14:58
perrito666do you happen to know where is the link stored in the header? I get a fileinfo struct and I am pretty sure its in the Sys() struct but I haven't looked at it yet14:58
rogpeppeperrito666: isn't it in Header.Linkname ?14:59
perrito666rogpeppe: aghh, I was looking at the wrong place, thank you again15:00
rogpeppeperrito666: np :-)15:00
wwitzel3rogpeppe: I checked out to the 1.19.3 tag, I assume that the dependencies.tsv would of been updated accordingly when that tag was commited.15:01
rogpeppewwitzel3: worth checking15:02
wwitzel3rogpeppe: I have no idea what I'm looking for .. I have no clue what version of juju-core/testing 1.19.3 is supposed to be pinned on.15:03
wwitzel3rogpeppe: or should I be building 1.19.3 from launchpad and not github?15:03
rogpeppewwitzel3: i don't know, i'm afraid15:03
rogpeppewwitzel3: perhaps sinzui or mgz would be more help15:03
wwitzel3thanks :)15:03
sinzuiwallyworld, no, but I cannot prove it15:04
hackedbellininatefinch: any news?15:05
sinzuiwwitzel3, interesting question15:05
marcoceppiis there any formatting guidelines for core? like 80-col wrap, etc?15:05
sinzuiwwitzel3, while tags were not migrated to github, we can add the tags we need.15:05
* marcoceppi just found go fmt15:06
sinzuiwwitzel3, do you want the tag, or do you just want to see what the deps were for the release?15:06
wwitzel3sinzui: well my issue was that there is a 1.19.3 tag, but checking that out, running godeps, and attempting to build results in some package not found errors.15:06
sinzuiwwitzel3, I think developers moved packages again.15:06
wwitzel3sinzui: refercing juju-core/testing/testbase which is a package that doesn't exist anymore I think.15:06
sinzuiwwitzel3, When CI find the problem in a test, we ask that the package be put back...obviously we have not tested 1.19.3 in 2 months15:07
wwitzel3sinzui: but I answered my own question, if there is a 1.19.3 in lp, I will just build it from there.15:07
natefinchhackedbellini: I'm handing you off to wwitzel3.  He'll take care of you.15:07
wwitzel3sinzui: yeah, I understand, I'm just trying to replicate the environment that hackedbellini's has15:08
wwitzel3sinzui: so was trying to get a local provider up and running with 1.19.315:08
sinzuiwwitzel3, maybe you want the tarball that was that release?15:08
wwitzel3sinzui: seems like a good solution :)15:08
sinzuiwwitzel3, This is the release https://launchpad.net/juju-core/+milestone/1.19.315:09
sinzuiwwitzel3, I just checked github/lp . 1.19.3 is only in github, even if it was in  Lp, the packages would be moved. I think the tarball or deb is the way to get what the user has15:10
natefinchhackedbellini: wwitzel3 is taking care of you15:11
natefinchhackedbellini: I had to hand you off because I got assigned some critical work.  Wayne will get it sorted out for you, though.15:11
natefinchhackedbellini: and he's less busy than me, so he's less likely to make you wait15:12
rogpeppecmars: gentle nudge about https://github.com/juju/charm/pull/3115:32
sinzui1.20.2 has a new regression in precise unit tests. I am looking for a common cause of the failure https://bugs.launchpad.net/juju-core/+bug/135091115:33
_mup_Bug #1350911: precise unit-tests fail in 1.20 <ci> <regression> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1350911>15:33
bodie_https://github.com/juju/juju/pull/448 re. davecheney getting out-of-order Actions failing the apiserver test15:47
bodie_very simple test fix to include a map which counts appearances instead of expecting actions in a specific order15:47
bodie_+27, -915:48
wwitzel3when I deploy with local provider, why don't the containers show up in lxc-ls?15:51
rick_h__wwitzel3: they should15:55
rick_h__wwitzel3: sudo lxc-ls?15:55
wwitzel3rick_h__: ahh that's probably it15:55
wwitzel3rick_h__: thanks15:56
bodie_sudo all the things!15:56
rick_h__wwitzel3: np15:56
=== psivaa is now known as psivaa-bbl
bigjoolshello juju people16:02
rick_h__bigjools: party party16:02
bigjoolswhen a provider gets asked to start a machine up, is that dine in a go routine?16:02
bigjoolsdine?  done16:02
* bigjools going to ping devs at random now16:05
natefinchbigjools: are you asking if it's async or not?16:06
bigjoolsnatefinch: sort of, we want to put some polling in the maas provider and noticed it already has blocking Sleep calls in it16:06
bigjoolswhich is either great or horrifying16:07
natefinchbigjools: it's at least the latter16:07
bigjoolsI have few issues concurring16:08
natefinchbigjools: so, everything is done in a goroutine.... it's just a matter of which one and what else wants to get stuff done on the same goroutine16:10
bigjoolsnatefinch: ok, so would be be ok to block the return until it acquires a machine?  And can the caller handler retries?16:13
natefinchbigjools: the maas provider just does a POST on the start endpoint... it doesn't seem to wait very long for it to return, so I presume the serverside itself is async16:16
bigjoolsnatefinch: well I am asking about the provider here - we're changing the maas API to help with working out when an acquisition is successful, or failed.  It will need to poll an API endpoint for status.16:18
bigjoolsso it sounds like it's ok to just block inside a loop that Sleeps;polls;Sleeps etc.16:19
hackedbellininatefinch: no problem :)16:23
hackedbelliniso, wwitzel3, will we workaround the issue today? If you are busy, we can do it next week, no problem =P. I'll be here for more 2 hours and tomorrow I won't come to work16:23
=== psivaa-bbl is now known as psivaa
jcw4perrito666: does todays big news affect you much?16:49
perrito666jcw4: nah, I dont think general population will be affected yet, macroeconomic issues take months to show in daily life16:50
jcw4perrito666: figured, but since you'd mentioned it a few weeks ago thought I'd ask16:50
perrito666jcw4: tx man, there was some incertitude, but its like when your girlfriend tells you "we need to talk" after you talk, wether the news are good or bad, its done and everything goes back to normal :p16:51
jcw4perrito666: hahaha16:51
natefinchdammit... I just saw that Andrew submitted a fix for the windows bug that I've spent the last day fixing16:53
perrito666that happens a lot lately, we should be more vocal about what we are doing16:54
perrito666there was some of that on last night discussion16:54
natefinchMy fault, I guess for not assigning the bug to myself.... I did post in response to the email about CI being blocked16:54
jcw4natefinch: so what is the process if you see a bug?  Check for bug in lp and file if it's not there, and then assign to self?16:57
natefinchjcw4: the assigning part is optional unless you want to fix it16:57
jcw4natefinch: okay16:57
jcw4so any self-initiated work to fix a bug should probably be tracked through lp then?16:58
natefinchyeah, that way if someone comes along and sees it in an older version, we know it's been fixed, and if any developer sees it at approx. the same time, you don't have two people working on it at the same time (like what happened with me)16:59
jcw4makes sense... I've avoided the bug list in lp for a while... I should probably start paying closer attention.17:00
perrito666yo might also want to do some noise here17:08
jcw4perrito666: +117:08
perrito666so someone will most likely remember what you said when someone else asks17:08
tasdomashi17:11
tasdomasI have a gwacl question - since it's a bit early in the day for axw, could anyone help me?17:12
natefinchmaybe17:16
bodie_hmmm...  I think I just yawned a yawn to make up for the grind of the last four days.  that was great.17:18
bodie_it feels so good to see Actions firing off.17:18
tasdomasnatefinch, I'm working on the port ranges task and am at the moment changing the providers to operate on port ranges17:51
tasdomasgwacl, however, does not seem to have the ability to open a range of ports at once, though17:51
natefinchtasdomas: might have to be something you add, then17:52
tasdomasnatefinch, yeah, I figured that - was simply wondering if az17:53
tasdomasazure api actually supports that17:53
natefinchtasdomas: sorry, no idea. I would think so, but azure is wacky.   You'll have to look it up17:54
tasdomasnatefinch, thanks17:58
bodie_hmmm, what's up with this jenkins build output? http://juju-ci.vapour.ws:8080/job/github-merge-juju/196/console18:02
natefinchbodie_: trunk is locked18:03
natefinchbodie_: the beatings will continue until morale improves18:03
natefinchbodie_:   note the comment on your PR: https://github.com/juju/juju/pull/41518:05
natefinchthere's a couple blocking bugs18:05
bodie_ah18:05
bodie_natefinch, presumably to be found at LP/juju-core/bugs18:06
bodie_+bugs*18:06
* perrito666 is becoming a tibetan monk while testing restore18:06
* bodie_ is confused by perrito666's sense of humor18:07
perrito666bodie_: it requires to prepare a lot of things, run them and in the mean time wait18:08
perrito666and meditate18:08
bodie_perrito666, go into your mind palace like Sherlock Holmes and study the ineffable mysteries of reducing "if err != nil { return err }" statements Go :P18:13
bodie_in Go*18:13
natefinchman.... whenever I go to build something that isn't a go project, I am reminded of why go rocks so much.... there's no like 8 step process to download the code and set up the build environment and run the build.18:19
rick_h__no, just magic /.. :P18:19
natefinchthere's no magic, it's all very derministic18:20
natefinchdeterministic... unlike my spelling18:20
natefinchalso, people who put the shell prompt in the text of their command line instructions need to be shot.  Thanks for ruining copy & paste.18:22
jcw4natefinch: don't you think shooting is a little harsh? maybe a stern talking to?18:23
rick_h__or maybe using your tools to select the copy/pasteable part?18:23
* rick_h__ ducks as he always does the $ command here18:23
* jcw4 too18:24
natefinchjcw4: I didn't say with what I'll shoot them18:24
jcw4heh; I'm hoping for old nerf guns18:24
natefinchsomething smelly and sticky18:24
jcw4:)18:24
natefinchalso shooting people who put relative links in their instructions without making it perfectly clear what the directory structure should look like18:26
jcw4easy, just do: $ ln -s ../hooks/remember-absolute-paths.sh18:28
perrito666natefinch: doen't your editor support block selection?18:28
* perrito666 hides18:28
natefinchperrito666: It's the browser18:28
* natefinch squints at jcw4 18:28
jcw4haha18:29
perrito666natefinch: isn;t your browser your editor?18:29
natefinchhttps://github.com/Tokutek/mongo/blob/master/docs/building.md18:29
* perrito666 waits for katco to say something18:29
natefinchperrito666: no no, katco's editor is her browser... there's a difference18:29
jcw4katco's an emacs zombie!?18:29
natefinchyep18:29
* jcw4 ducks and hides18:29
=== jcw4 is now known as jcw4|not_here
=== jcw4|not_here is now known as jcw4
rick_h__hah, thought you were saying she's using that newish github thing that's nodejs and all JS18:31
natefinchatom.io18:31
jcw4atom?  I've tried it18:31
natefinchI would if..... *drum roll*  their build instructions weren't a mile long18:32
jcw4har har har18:32
natefinchseriously: https://github.com/atom/atom/blob/master/docs/build-instructions/linux.md18:32
* jcw4 wonders if natefinch knows how long a mile is18:33
perrito666OS with 64-bit or 32-bit architecture18:35
* perrito666 looks suspiciously18:36
perrito666what exactly does that mean?18:36
natefinchhaha18:36
perrito666like, dont do this in win 3.11?18:37
natefinchheh, I was just typing that18:37
natefinchI love installations that start with "curl this script and run it"18:37
perrito666as long as it isnt sudo curl this18:38
natefinchthey didn't write sudo curl, but it doesn't work unless you sudo18:38
natefinchhttps://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#ubuntu-mint-elementary-os18:38
perrito666lol18:39
perrito666"Ill leave this curl here, and if you sudo it, it will be your responsability"18:39
natefinchThat's also a pet peeve... if something needs sudo, just write sudo, don't assume I'm running as root like an idiot18:40
perrito666that is a bit harsh on idiots18:42
natefinchheh18:43
perrito666Idiots most likely run user 100018:43
natefinchoh, hey, while I'm cloning crap that isn't go code... I heard a suggestion someone made a long time ago that I really like - they put all open source code in their GOPATH... even non-go code. So, like, I'm putting tokumx in $GOPATH/src/github.com/Tokutek/mongo  and atom in $GOPATH/src/github.com/atom/atom18:45
jcw4i've been doing that too... not sure yet whether or not it'll be a good idea18:46
natefinchI like it.... it means I never need to wonder where I put some code18:46
jcw4I've been able to go get non go code on github :)18:46
natefinchha, yeah, that works18:46
jcw4I get a build error, but the repo's there18:46
natefinchit saves some typing, at least18:47
* natefinch is go getting atom18:47
perrito666natefinch: lol, I nuke my GOPATH every now and then, but cant hurt to try18:47
natefinchperrito666: sacriledge18:47
perrito666natefinch: I treat my work machine storage as something ephemeral18:48
natefinchperrito666: I periodically nuke individual folders because source control doesn't always do the right thing... but I keep around most of it18:48
perrito666and I assume everything in repos to be re-fetchable or not safe to use18:49
natefinchoh yeah, definitely.... I just don't like waiting :)18:49
bodie_jcw4 must have missed the minor editor scuffle we had in here a few days ago18:50
natefinchhazmat: you around?18:51
bodie_there was nearly a discussion of the editor of the beast18:51
bodie_vi, vi, vi18:51
jcw4lol18:51
TheMueyeah, vi(m) plus my little go plugin18:58
jcw4I switched to vim a long time ago when I reasoned vi was more ubiquitous than emacs18:59
jcw4but I still wish I knew emacs a little better18:59
TheMueI’m happy with vi since my time as admin in the 90s. it’s on each system, especially during server hopping, and always is quick when opening opening files with it19:02
hazmatnatefinch, yup19:03
hazmatnatefinch, currently in meetings19:03
hazmatnatefinch, free in 15m19:04
natefinchhazmat: ok, let's talk then.  Trying to build tokumx with ssl (I presume that's possible)19:04
hazmatnatefinch, cool19:04
hazmatnatefinch, i think  trunk uses cmake instead of scons19:04
hazmatof tokumx19:04
natefinchhazmat: yeah, their build instructions use cmake19:05
natefinchbuild warnings in production code are cute19:07
wwitzel3lol19:14
natefinchone of the very first things I did at my last job was to turn on "warnings as errors" and eliminate all warnings from the codebase.  Took a while, but... seriously, people.   Read the warnings and fix your damn code.19:16
wwitzel3natefinch: I agree, I found that warnings as errors usually resulted in my fixing things that were about to be bugs anyway19:18
natefinchyep19:19
natefinchit also makes it a lot easier to see the real errors when you don't have 500 warnings :)19:20
wwitzel3hah19:20
hazmatnatefinch, got time now?19:37
hazmati've got an 1hr till my next mtg19:37
hazmatnatefinch, have you tried building mongo from src?19:37
* hazmat remembers it being painful19:38
hazmatand slow19:38
* perrito666 notices that his new bootstrap machine seems to lack /tmp19:42
natefinchhazmat: yeah, I built mongo from source19:47
natefinchhttp://askubuntu.com/questions/392664/how-do-i-build-mongodb-with-ssl-support-on-saucy19:47
natefinchhazmat: I'm trying to run juju against tokumx, but the default version doesn't have SSL, which we use19:50
natefinchhazmat: so I built from source, but I'm not sure how to build with SSL, wea hoping you'd already done that, but I guess not :)19:50
natefinchhazmat: ahh, -D USE_SSL=ON19:52
hazmatcool19:52
hazmatnatefinch, i was just using mgo test suite directly against tokumx dl bins19:53
hazmatand writing txn programs against that19:53
natefinchhazmat: sounds like we're doing nicely parallel operations, so I'll keep on seeing if it really is a "drop in" replacement... even if some of the mgo tests fail19:56
natefinchparallel?  orthogonal?  one of those19:57
natefinchneither duplicating nor conflicting19:57
natefinchdoh20:01
natefinchError 220:01
natefinchwell, thanks for the informative error message :/20:01
natefinchug, lots of build errors in code with ssl in the name :/20:02
hazmatnatefinch, all dev libs installed?20:15
natefinchhazmat: I think so20:16
hazmatnatefinch, mgo tests are exhaustive failure modes.. some of which i suspect are attuned to mongo's impl20:16
natefinchhazmat: yeah, I assumed the mgo tests are probably testing stuff we don't depend on.... but I figured the best way to find out is to just try it20:17
hazmatnatefinch, agreed20:17
natefinchI posted to the user forums, we'll see if there's an answer20:17
natefinchhttps://groups.google.com/forum/#!topic/tokumx-user/KeZ_SJ_BUac20:17
hazmatnatefinch, re ssl errors you have libssl-dev ?20:18
natefinchyep20:18
hazmatnatefinch, cool.. i'll give it a try as well20:18
hazmathmm20:18
natefinchI installed all the libs I listed here: http://askubuntu.com/questions/392664/how-do-i-build-mongodb-with-ssl-support-on-saucy20:19
hazmatnatefinch, those look like unresolved refs to ssl includes.. and sure enough its not in their cmake lists20:19
natefinchplus they needed libpcap-dev20:19
hazmatnatefinch, where do you see that?20:20
natefinchhazmat: when I built it said Could NOT find PCAP (missing:  PCAP_LIBRARY)20:20
hazmatinteresting20:21
* natefinch apt-get installs all the things20:21
hazmatsomewhat curious why mongo (which also apparently needs it ) uses pcap20:21
natefinchhmm... I don't remember having to install it for building mongo, at least the version I built back in December20:22
hazmatnatefinch, there is a cmake/FindSSL.cmake thingy20:22
natefinchbut maybe I had it already20:22
natefinchfor whatever reason20:22
natefinchalways inspiring to have your first encounter with your database be a pull request to fix their makefile :/20:23
hazmatnatefinch, have you built mongo before?20:24
hazmatoh cool20:24
hazmati've had to custom patch it as well20:24
natefinchcan you share your patch?  My make skills are about on par with my Swahili20:28
natefinchoops, didn't realize it was late already.  Gotta bail early today.  Email me the change if you can, otherwise I'll hack on it in the morning.20:31
natefinchhazmat:  ^20:31
hazmatk20:33
hazmatwas in ref to mongo, in ref to tokumx it looks like you need gnutls-dev20:33
arosalesany folks have the latest on where the microsoft support merge is currently at?20:48
=== noodles785 is now known as noodles775
thumpersinzui: hey21:05
thumpersinzui: the current test failure, is that just a normal test run? or something else?21:05
sinzuithumper, ci is testing 1.20. Nothing seems normal today21:06
thumpersinzui: do the devel tests fail on precise?21:06
sinzuithumper sorry, we have many regressions that affect each branch differently21:07
* thumper sighs21:07
sinzuithumper, devel and stable precise unit tests are broken for different reasons :(21:07
* hazmat notes nates not here.21:07
hazmatbuilt on the first try for me21:08
sinzuithumper, I just sent an email summarizing my abdominal day. It lists 6 bugs, 5 of which are new in the last 12 hours21:09
thumpersinzui: yeah, reading it now21:09
sinzuiMaybe I should have cheered that the win client works again after a 5 weeks of hate21:11
=== hatch__ is now known as hatch
stokachuin juju 1.20.x there seems to be a delay when the environment is bootstrap and when you can actually access the state api server21:22
stokachui get connection refused for about 4-5 seconds21:22
thumperstokachu: which provider?21:34
stokachuthumper, local provider with kvm container21:35
thumperhmm...21:35
stokachui can create a bug with a reproducer21:36
thumpersure, why not21:36
waiganimorning thumper are you still reviewing or can I push?21:36
thumperwaigani: push away21:36
voidspacewhat's the default api port?21:40
voidspaceI mean, I could look it up...21:40
voidspace1707021:40
voidspacewhat's the easiest way of getting a 1.18 juju?21:42
voidspacedoes it involve bzr...21:42
voidspacegit tags seem to start at 1.19.321:42
voidspaceto be fair that will work fine though21:42
waiganithumper: PTAL https://github.com/juju/juju/pull/43721:44
wallyworldsinzui: hi, i'm trying to understand the stale lock bug. where did you find stale locks? in /var/lib/juju/locks? did you remove files inside that dir to release the lock? the new implementation uses native flock which releases any lock held when the lock is closed or when the  process dies so i'm confused right now as to what is happening21:49
sinzuiwallyworld, I do indeed need to delete those locks.21:50
sinzuiwallyworld, I destroyed the env, but the lock still exists21:50
wallyworldhmm21:50
sinzuiwallyworld, then when older juju runs...nothing21:51
sinzuiwallyworld, I can confirm 1-2 hours passes on some of the machines where no juju processes were running21:52
wallyworldsinzui: the lock subdir inside /var/lib/juju/locks is meant to be removed when the template container is created. and even if there's a bug and it's not, when machineagent dies, it is supposed to be released since that's how flock works21:52
sinzui:(21:52
wallyworldok, we will look into it21:52
wallyworld:-( indeed21:52
wallyworldsinzui: i've created and destroyed local provider environments several times without an issue so will be interesting to see what's happening here21:53
sinzuiwallyworld, would you like to visit the i386 slave which had a lock after 3 tries?21:54
wallyworldyes please21:55
stokachuthumper, sinzui https://bugs.launchpad.net/juju-core/+bug/135108322:00
_mup_Bug #1351083: API server inaccessible for roughly 5 seconds after bootstrap <api> <cloud-installer> <juju-core:New> <https://launchpad.net/bugs/1351083>22:00
sinzuithank you stokachu22:01
stokachunp :D22:01
* thumper goes to make another coffee before he falls asleep22:02
menn0stokachu: I have a theory on that bug. Could you attach the API server logs to the ticket please?22:06
stokachumenn0, sure lemme re-run it to get a clean log22:06
menn0stokachu: I'm mainly interested in the logs from the time the machine-0 agent starts until it starts accepting API connections22:07
stokachumenn0, ok ill get that narrowed down for you22:07
menn0if the entire log isn't too big then don't bother about filtering22:08
stokachuok22:08
menn0back in 10...22:09
stokachumenn0, ok got the log added22:12
stokachuwasn't much so attached the whole thing22:12
stokachutook about 9 seconds for the api server to become responsive22:13
marcoceppiHey thumper: https://github.com/juju/juju/pull/447 on my phone, but could you take a look sometime?22:17
* thumper looks now at marcoceppi's pr, with sticky fingers22:18
marcoceppiIt's pretty small22:19
marcoceppiBut has a large impact on charm testing and benchmarking22:19
thumpermarcoceppi: +122:21
marcoceppi\o/22:21
* thumper was eating an almond croissant22:21
thumperto go with the second coffee22:21
jcw4Okay, I filed my first bug https://bugs.launchpad.net/juju-core/+bug/135108922:23
_mup_Bug #1351089: Isolation failure in sshstorage test <juju-core:New> <https://launchpad.net/bugs/1351089>22:23
jcw4which is a simple test suite isolation issue22:23
jcw4however, I can fix my own case by modifying SSHStorage.Put to use >| instead of > to get around my noclobber envar22:24
jcw4and that seems like a reasonable change to me anyway.22:24
jcw4arguments against?22:24
jcw4I think we still need to fix the environment isolation for the test, but...22:25
=== menn0_ is now known as menn0
marcoceppithumper: so now what?22:29
thumpermarcoceppi: we wait until the bot is unblocked by CI22:29
marcoceppithumper: cool, thanks. Looking forward to doing more minor little commits22:34
jcw4per my comments above: https://github.com/juju/juju/pull/45022:34
thumpermarcoceppi: yay22:34
menn0stokachu: well your bug isn't what I thought it might be. I'll add some thoughts to the ticket though.22:35
stokachuok thanks22:36
ericsnowwallyworld: when you have a minute I have some persistence layer questions22:43
wallyworldsure22:43
wallyworldaskaway22:43
ericsnowfor backups I'm storing the archive in env storage and the metadata in mongo (via a new state collection)22:45
ericsnowI'm using a couple interfaces (DocStorage and FileStorage) to abstract that away from backups22:45
ericsnowhowever for the actual implementation in state for the "doc" side, I feel a bit dirty hijacking a collection for something that's not actually part of state (backups are only *about* state)22:47
ericsnowany thoughts on alternatives?22:47
ericsnowalso, I was talking to William about the storage abstractions I introduced as well as the env storage interfaces (and implementations)22:48
ericsnowhe suggested asking you what you thought about introducing a new top-level storage package to gather in the different interfaces and implementations22:49
sinzuiwallyworld, thumper the azure regression in devel might also be a cloud issue. stable is azure-deploy failed too for different reasons http://juju-ci.vapour.ws:8080/job/azure-deploy-precise-amd64/2061/console22:49
sinzuiwallyworld, thumper, but in both cases, azure-upgrade (bootstrap with 1.20.1) works22:49
ericsnowthe relevant PR: https://github.com/juju/juju/pull/42622:50
sinzuioh, and azure-upgrade has not failed in 2 days, so newer jujus are broken22:50
wallyworldericsnow: there's also the blobstore stuff - a blob store takes a mongo db for the collection of namespaced paths, and a mongo db for the gridfs based blob storage22:51
wallyworldericsnow: the backups could be stored in a namespaced path "/backups/..."22:51
ericsnowwallyworld: so when did you say you're getting us a nice persistence layer abstraction? <wink>22:51
wallyworldthe you'd have a BackupStorage Fascade to access then22:52
wallyworldericsnow: that abstraction is a while away, so much spaghetti to untangle22:52
ericsnowwallyworld: yeah, I have sauce all over my fingers :)22:53
wallyworldericsnow: so if it were me, i'd create a BackupStorage interface that holds a ManagedStorage instance22:53
wallyworldoh hang on22:54
wallyworldyou want to use file storage for the backups22:54
wallyworldok, i had thought there was talk of storing them in a separate mongo db22:55
wallyworldso we could make them available on any state server22:56
wallyworldbecause cloud storage is going away22:56
ericsnowwallyworld: I'm not so concerned about the file side of backups at this point22:56
ericsnowwallyworld: we can sort of the storage backend after we get backups done :)22:56
wallyworldericsnow: yep, so a BackupStorage interface can be done and the back end swapped out later22:57
ericsnowmy questions center more on storing the metadata in State and on a new top-level storage package22:57
ericsnowwallyworld: yeah, that's exactly what I did :)22:57
wallyworldericsnow: so what we are doing with env.Storage() is actually removing that method off Environ completely22:57
ericsnowwallyworld: that's fine, but the interfaces there (and several implementations) are still useful, no?22:58
wallyworldyes, will be changing though, but if backup is already in palce, we will port it across when the time comes22:59
ericsnowwallyworld: sounds good (on that point)22:59
wallyworldi think it's ok to store backup collection in DB("juju")22:59
wallyworldalthough if we think there may be more metadata type collections, we could use a new db23:00
ericsnowmakes sense23:01
wallyworldbut since schema migrations are coming, we could just do it the easy way for now and migrate later if needed23:01
ericsnow+123:01
wallyworldso does that answer your question?23:02
ericsnowregardless, I'm trying to do it in a way that makes it easy to switch underneath23:02
ericsnowwhat about a top-level storage package?23:02
wallyworldmain thing is we have that BackupStorage interface in place, and if can use an environs.Storage() interface for now23:03
wallyworldwhat would go inthe top level storage package?23:03
ericsnowthe problem is that we can't use environs.storage.Storage in backup (due to circular imports)23:03
ericsnowthe storage package would basically take the storage interfaces and implementations (where applicable)  from environs23:04
wallyworldok, I see. Storage interface used to be in environs package actually. it was moved to environs/storage to avoid circular imports23:05
wallyworldsinzui: i'll get andrew to look at the azure issue23:06
ericsnowwallyworld: unfortunately getStorage is still in environs23:06
ericsnowregardless, I worked around that problem and it probably turned out better anyway because of that :)23:07
ericsnowI guess that answers my questsions23:07
ericsnowthanks23:07
wallyworldericsnow: maybe GetStorage() should be moved to storagepackage?23:07
ericsnowwallyworld: I'd argue it belongs under state somewhere, since you are getting a state's env storage23:08
wallyworldyeah, true23:08
wallyworldwe may well introduce a top level storage package - but sort of want to do it wholistically with all uses cases in mind23:09
wallyworldso if you can get away with it as is for now, that would be great23:09
ericsnowno worries23:09
wallyworldty23:09
ericsnowit's no blocking me or anything23:09
ericsnowI've just run into the fact that discovering storage-related stuff isn't simple23:10
ericsnow(both for file storage and "doc"/metadata  storage)23:10
perrito666is there a way to prevent a machine from upgrading?23:35
menn0super quick review for mgo import fix please: https://github.com/juju/juju/pull/45123:54
menn0perrito666: not that I can think of (without changing the code)23:54
jcw4menn0: LGTM :)23:55
menn0jcw4: cheers23:55
=== menn0 is now known as menn0-afk

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