/srv/irclogs.ubuntu.com/2015/02/10/#juju-dev.txt

davecheneythumper: wanna shoot for a 1:1 today  ?00:07
beisnerhi davecheney - what do you think?  are we trying something too crazy?00:26
davecheneybeisner: deploying anything to machine 0 is crazy00:30
davecheneybut that isn't the problme00:30
davecheneybest I can tell the error is coming from upstart00:30
beisnerdavecheney, lol.00:30
davecheneydeploying units to machine 0 has been responsible for 100% of customer data loss00:30
beisnerdavecheney, good to know.   fwiw, this is related to automated deployment testing, and we do that only for density.  the whole enviro gets torn down after openstack tempest tests run.00:31
beisnerwhat else do you think, aside from our crazy unit 0 ways?  ;-)00:32
davecheneythe error is coming from upstart00:34
davecheneycan you make an issue and attach the raw file from upstart00:34
davecheneythe one you pasted00:34
davecheneyit has to be the raw file00:34
davecheneyi suspect there is some control characters or other whitespace crap in there that is throwing off upstart00:35
beisnerdavecheney, yes, i'd be happy to.  will ping you in a bit.00:36
thumperdavecheney: yeah, how about after lunch your time?00:45
beisnerdavecheney, so that's getting interesting (copying the raw file) with the 1/lxc/3 having "no internal address."01:00
beisnerahh never fear.  there's always /var/lib/lxc/juju-machine-1-lxc-3/rootfs/etc/   ... grabbing it.01:02
beisnerdavecheney, https://bugs.launchpad.net/juju-core/+bug/142004901:07
mupBug #1420049: jujud: Syntax error: word unexpected (expecting ")") <openstack> <uosci> <juju-core:New> <https://launchpad.net/bugs/1420049>01:07
=== kadams54-away is now known as kadams54
thumpermenn0: the more I think about it, the more I reckon the services running on the api server machines on behalf of another environment should not appear in the other environment log, but in the state server environment log01:29
menn0thumper: I guess that sort of makes sense01:30
thumperwhich does keep things much simpler01:30
menn0thumper: but if I was investigating a problem within an environment I might want to see those logs...01:31
thumperwell, you'd have to ask01:31
thumper:)01:31
thumperI think we should definitely have some way to record which env certain logs are for...01:31
menn0thumper: but if I was a user with access to an env, but not the state server env then I wouldn't be able to01:31
thumperbut probably as part of the module01:31
thumperexactly01:31
thumperI don't think this is a bad thing01:32
menn0thumper: it's certainly safer that way01:32
thumpermuch safer01:32
thumperand a good starting position01:32
menn0thumper: for a user like that, the state server should probably be a black box01:32
thumperI'm prepared to be convinced that we may want to change in the future01:32
thumperbut as a solid well defined starting position01:33
thumperthe state server for other environments is as you just mentioned, a black box01:33
menn0thumper: you've convinced me :)01:33
thumpermenn0: lets start with that assumption then01:33
thumperand document decisions01:33
menn0thumper: not state server... JES01:33
thumpersure01:33
thumperaxw: hey, updated http://reviews.vapour.ws/r/864/diff/#02:01
axwthumper: looking02:07
axwthumper: LGTM02:14
thumperaxw: ta02:14
thumperaxw: the expected behaviour is that if you created a new environ config instance with New, then it will fail if there is already one with the same noe02:15
thumpername02:15
axwthumper: ok, I'm just looking at the contract of EnvironInfo specifically02:16
* thumper scratches his head02:16
axwthumper: I think it needs clarification02:16
axwnot a big deal02:16
thumperalso... all likely to change soon02:16
axw:)02:16
thumperyou have me wondering now...02:17
* thumper looks02:17
thumperI had to change the memory implementation to check for created and !initialized in order to get the second write working while failing two news02:18
thumperand thought that the check should be the same with the disk implementation02:19
* thumper looks again02:19
thumperhmm...02:21
thumperI thought I tested that02:21
thumperjust using !iniitalized in both places does work02:21
* thumper goes with simpler02:21
mattywmorning all03:10
mattywdavecheney, ping?03:11
=== kadams54 is now known as kadams54-away
axwanastasiamac: https://github.com/juju/errors/pull/17 please03:26
mattywanastasiamac, and when you're done with that would you mind taking a look at this one http://reviews.vapour.ws/r/903/ :)03:27
anastasiamacaxw: done but m not graduated :D03:28
axwthanks03:28
anastasiamacmattyw: np - m going thru another one of axw03:28
axwthumper: teeny weeny change to errors, would you mind? https://github.com/juju/errors/pull/1703:28
anastasiamacmattyw: it's a lot of fun - storage - it' s huge03:28
anastasiamacmattyw: but will be done soon and will look at urs :D03:29
mattywanastasiamac, wnjoy that - mine is just a backport of a pr that landed yesterday so should be simpler :)03:29
anastasiamacmattyw: sure thing :D03:29
thumperaxw: done03:35
thumperdavecheney: still want to do a 1:1?03:35
mattywanastasiamac, and one more - I've tried to make it as trivial as possible03:37
mattywanastasiamac, .... and here's the link: http://reviews.vapour.ws/r/904/ :)03:37
anastasiamacmattyw: i will .. thnx :D03:37
mattywanastasiamac, you'll struggle to find a simpler one than /r/904 - ever I think03:38
anastasiamacmattyw: :D i'll let u know where it is on my scale...03:38
axwthumper: thanks03:59
anastasiamacmattyw: out of interest, where r the credentials for metrics set?04:13
anastasiamacmattyw: and yes, 904 is trivial. the only that would beat it, would a punctuation/typo correction ;D04:14
anastasiamacmattyw: urs takes the rpize04:14
anastasiamacprize*04:15
mattywanastasiamac, they're set here https://github.com/juju/juju/blob/master/state/unit.go#L179004:16
mattywanastasiamac, it's one level up from the todo in the scheme of things04:17
anastasiamacmattyw: ah04:17
mattywanastasiamac, but it makes everything much easier04:17
anastasiamacmattyw: thnx :D04:19
bodie_hmmmm; so I'm told the table test approach is hard to debug and I shouldn't use it except for trivial cases?04:23
bodie_just want to get confirmation of that04:23
bodie_i.e., for i, test := range []struct{...}{...}{do some tests on test}04:27
thumperbodie_: hey there04:27
bodie_o/04:27
thumperbodie_: I'd say tables are fine if the body of the test in the loop is simple04:27
thumperie04:27
thumperminor setup04:28
thumpererr := some-test04:28
thumperif test.err { c.Assert(err, gc.ErrMatches, test.err); }04:28
thumperelse {04:28
thumperc.Assert(err, jc.ErrorIsNil)04:28
thumperother assertions04:28
thumperif there are other if statements in the body, break the tests apart04:29
thumperthere are some table based tests in our code that really shouldn't be04:29
bodie_that makes sense04:29
bodie_:) thanks thumper04:29
thumpernp04:29
thumperanastasiamac: here's a good one for you: http://reviews.vapour.ws/r/902/04:31
* thumper runs away04:31
anastasiamacthumper: i'd add to it, that u might not want to have tables if u need to take adavantage of setup/teardown04:31
thumperanastasiamac: agreed04:31
thumperanastasiamac: FYI, a previous branch of mine added PrepareForCreateEnvironment, and renamed Prepare to PrepareForBootstrap04:33
thumpersome environments need to do additional checks for bootstrap04:33
thumperlike the local provider makes sure the ports aren't in use04:33
bodie_I wrote a super ugly one.. or two.. using a func(){}() to wrap a defer... :P04:33
thumpermost other providers are much more simple04:33
thumperbodie_: while that isn't too terrible, it makes it harder to follow04:34
thumperone key indicator I have is "a test should be easy to follow and obviously correct"04:34
thumperit is hard enough to decode convoluted code04:35
thumperadd convoluted tests to that and it just hurts more04:35
* thumper looks at the uniter tests04:35
bodie_oh god04:35
bodie_I'll keep that in mind04:36
thumpernight all04:36
anastasiamac jam: thnx for ur elegant comments on RB894. i was hoping there was a convention :D06:00
anastasiamacjam: or at least a precedence06:00
jamanastasiamac: happy to, thanks for doing the review as well06:00
Muntanerericsnow: fwereade, good morning08:23
Muntanerand good morning to every108:23
TheMuemorning08:29
fwereadeMuntaner, o/08:42
Muntanerfwereade: can you have a look? https://bugs.launchpad.net/juju-core/+bug/142015508:42
mupBug #1420155: Juju fails to bootstrap on a private OpenStack cloud due to not finding image metadata <bootstrap> <cloud> <juju> <private> <ubuntu-openstack> <juju-core:New> <https://launchpad.net/bugs/1420155>08:42
Muntanersince I'm italian, maybe my english made this launchpad bug not understandable :)08:43
fwereadeMuntaner, no, that's clear, and much appreciated08:44
Muntanerfwereade: I'm curious about how developers work08:44
Muntanerall of the confirmed bugs get fixed in a single release?08:44
Muntaneror you choose the most urgent and important and fix them ASAP?08:45
fwereadeMuntaner, afraid not -- there are many bugs, and somewhat harsh constraints on which ones actually get chosen at a given time08:45
fwereadeMuntaner, fwiw, I am rather grumpy that we have this particular bug and that it's lived so long08:45
Muntanerfwereade: maybe it came out because nobody had tried a configuration like mine08:46
Muntanerfwereade: is that possible? just thinking loud :)08:46
fwereadeMuntaner, most likely, yes -- we see an awful lot of use of juju *deploying* private openstack clouds with maas08:47
fwereadeMuntaner, and maas has its own image handling08:47
Muntanerfwereade: well, my situation is "more new" then - I don't have MAAS in my configuration08:48
fwereadeMuntaner, yeah -- thank you very much for your help in tracking down the problem08:49
Muntanerfwereade: no problem! btw, I noticed that dimitern had reported this situation in another launchpad -> https://bugs.launchpad.net/juju-quickstart/+bug/141157408:52
mupBug #1411574: quickstart should detect private clouds somehow and generate metadata url in the environments.yaml <juju-quickstart:Triaged> <https://launchpad.net/bugs/1411574>08:52
Muntanerdunno if it needs to be merged08:52
fwereadeMuntaner, quite possibly, and ericsnow found another that looked very closely related too08:53
fwereadeMuntaner, funny how many ways there are of characterising the exact same underlying issue ;)08:53
Muntanerfwereade: so, the problem is that the upload of the metadatas fails in a LAN environment?08:54
fwereadeMuntaner, I have a strong suspicion that the metadata-uploading is just *broken*, which is what I'm mainly so grumpy about09:01
fwereadeMuntaner, I suppose that in general, for a prod environment, I'd expect a separate server for the metadata anyway, so maybe that's why it hasn't been spotted09:02
Muntanerfwereade: yes - I agree that our configuration is somewhat "raw" :)09:02
mattywfwereade, ping?09:10
mattywjam, ping?09:12
jamhey mattyw09:13
voidspacedooferlad: TheMue: making coffee, be with you in a minute or two...10:01
=== benji is now known as Guest47535
perrito666morning all11:05
TheMueperrito666: heya11:08
voidspaceperrito666: o/11:11
perrito666man, I am waay to far from europe to get an ubuntu phone11:42
TheMuevoidspace: the latest change on the Prepare... branch is pushed11:44
voidspaceTheMue: cool12:00
TheMuevoidspace: the current test for the exhausting of addresses knows the number of available IPs on a fresh dummy machine. that's no real good dependency. I added AddressesAvailable to subnet, but sadly I've got no access to the subnet from inside the test12:03
TheMuevoidspace: so if you know a good approach here it's welcome12:03
mattywis the build server feeling sick?12:10
* TheMue is out to lunch12:13
perrito666mattyw: ?12:13
mattywperrito666, seems to have been rejected branches for the last hour with all kinds of weird test failures12:14
perrito666mattyw: mm odd... well not that odd12:14
perrito666mgz ?12:14
voidspaceTheMue: why do you need AddressesAvailable?12:25
voidspaceTheMue: you have AllocatableIPLow and AllocatableIPHigh12:25
voidspaceTheMue: available is High - low + 1 - numberAlreadyAllocated12:26
voidspaceTheMue: I don't really understand your problem12:26
voidspaceTheMue: point me to the test you think has the bad dependency12:26
* TheMue is back12:36
TheMuevoidspace: AddressesAvailable IS High - low + 1 - numberAlreadyAllocated ;)12:37
TheMuevoidspace: I only created it to have an external access to this information12:38
TheMuevoidspace: especially with the retrieval of the numberAlreadyAllocated12:38
voidspaceTheMue: I don't understand the problem you're trying to solve12:39
voidspaceTheMue: there is code that calculates this before attempting to pick a new address12:39
voidspaceTheMue: so it knows if the address space is exhausted12:40
voidspaceTheMue: and it has to fetch all the allocated IPs anyway12:40
voidspaceTheMue: so it's no extra work12:40
TheMuevoidspace: it's only for testing, I would like to know how many are still available opposite to simple pick them until they exhausted12:40
TheMuevoidspace: it's not for the productive code12:41
voidspaceTheMue: can't you create a subnet, then manually allocate specific addresses?12:41
voidspaceTheMue: sorry, I thought you said you wanted to add AddressesAvailable to Subnet12:41
voidspacethat *would* be external code12:41
voidspacewhy not just create a known situation12:41
voidspaceTheMue: ah, but you don't have access to the subnet anyway?12:42
voidspaceis that the problem12:42
voidspaceso adding AddressesAvailable wouldn't help anyway12:42
TheMuevoidspace: yep, no access inside the test12:42
TheMuevoidspace: sadly currently not, exactly12:42
voidspaceI don't think it's needed anyway12:42
voidspaceTheMue: I'm about to leave :-/12:42
TheMuevoidspace: ok, thanks anyway12:42
voidspaceTheMue: you'd have to manipulate the test setup12:43
voidspacewhich with our test heirarchy is non-trivial12:43
TheMuevoidspace: hoped for a simpler answer :D12:43
TheMuevoidspace: currently my test relies on knowing the hard coded subnets of the dummy provider. but once somebody changes it the test would break.12:44
perrito666TheMue: well they will most likely notice :p12:45
voidspaceTheMue: my answer would be that address space exhaustion is already tested12:45
TheMueperrito666: yeah, indeed12:45
voidspaceTheMue: so it doesn't need testing at this level12:45
voidspaceTheMue: mock out the call that would produce the error and check the error is handled well12:45
voidspaceTheMue: but you don't need to simulate actual exhaustion12:46
TheMuevoidspace: ok12:46
wwitzel3voidspace: do you have a maas setup?13:08
voidspacewwitzel3: yes13:09
wwitzel3voidspace: in all my attempts I am failing to reproduce https://bugs.launchpad.net/juju-core/+bug/141787513:09
voidspacewwitzel3: I'll have to look at it on my return, I'm off out to a meeting13:10
voidspacewwitzel3: but I'll give it a go13:10
wwitzel3voidspace: all I need is for you to bootstrap and deploy something to using --to 0 and see if the logging gives you the x509 cert error.13:10
wwitzel3voidspace: thanks, appreciate it13:10
perrito666how did I not set my vim to run go fmt before saving before? this is glorious.13:17
wwitzel3perrito666: indeed, there is no other appropriate way13:29
perrito666wwitzel3: I used to, git diff, review, git commit, git push, notice go fmt is sad, scream, kick, insult, go fmt ./..., git commit --amend, git push13:30
wwitzel3perrito666: sounds exhausting13:30
perrito666restore 4 out of 6 merged :')14:53
ericsnowFYI, at some point Reviewboard will be down for (hopefully) at most an hour while we switch to a new environment15:02
ericsnowI'll be sure to notify everyone when we're close15:02
TheMueericsnow: thx for info15:10
ericsnownatefinch: one-on-one?15:24
ericsnownatefinch: (in 5 min I guess)15:25
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
=== whit is now known as whit|review-q
perrito666really another backup/restore bug breaking 1.21?15:50
sinzuiperrito666, sorry, two in fact15:51
perrito666o ffs15:51
perrito666ok, on it15:51
perrito666I wonder if we should add testing support for this in the already bloated CI test15:53
alexisbhey there hazmat !15:55
hazmatalexisb: greetings15:55
=== kadams54_ is now known as kadams54-away
=== benji_ is now known as benji
sinzuiHi natefinch, do you have a moment to review http://reviews.vapour.ws/r/906/17:06
natefinchsinzui: ship it@17:07
natefinch!17:07
sinzuithank you natefinch17:07
natefinchsinzui: welcome17:07
=== kadams54-away is now known as kadams54_
* perrito666 is back, from a 3g network in a dentist's waiting room18:12
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1420426
sinzuikatco, perrito666, ericsnow: CI just found a cross-compile regressions. bug 142042618:21
mupBug #1420426: backups_nonlinux.go import error <ci> <osx> <regression> <windows> <juju-core:Triaged> <https://launchpad.net/bugs/1420426>18:21
perrito666you have got to be kidding me18:21
ericsnowperrito666: perhaps we should just disable all tests in state/backups on non-linux18:22
ericsnowperrito666: (in package_test.go add c.Skip() if runtime.GOOS != "linux")18:23
perrito666ericsnow: could you tacle this one? I have my hands full with the other two restore blockers18:23
ericsnowperrito666: sure18:23
perrito666tx a lot, I owe a beverage of your chooice18:23
perrito666:)18:23
perrito666sinzui: I apologize, that was most likely my18:29
perrito666my fault18:29
ericsnowperrito666: http://reviews.vapour.ws/r/907/18:55
voidspaceg'night all19:28
voidspaceEOD19:28
=== fuzzy__ is now known as Ponyo
=== Spads_ is now known as Spads
perrito666orry I was suddenly trapped for the past hour in my mother in law's home, its a good thing I know how to tear apart a door19:57
perrito666ericsnow: that diff is correct?20:00
perrito666I am extremely curious how that got merged to begin20:00
=== kadams54_ is now known as kadams54-away
ericsnowperrito666: because it would only have failed under non-linux (which I presume the merge bot does not try)20:05
perrito666  ah makes sense20:05
=== kadams54-away is now known as kadams54_
ericsnowdavecheney: regarding that backups fix, I had considered checking runtime.GOOS, but version.Current.OS gives us better granularity20:18
davecheneyericsnow: replied on the review20:34
ericsnowdavecheney: thanks20:34
perrito666sinzui: is it possible to backport (and release off course) a fix to 1.20?20:41
sinzuiperrito666, we can, though it is disabled at this time20:43
niedbalskiperrito666, sinzui 1.21 is OK to me, if you can confirm that juju upgrade-juju works from 1.20.8.1 to 1.21.x20:44
niedbalski:)20:44
sinzuiniedbalski, 1.20.8.1 is either a custom build or juju built using upload-tools, it is not an official release and not in streams20:45
sinzuiniedbalski, but I can confirm 1.20.x can upgrade to 1.21.x.20:46
perrito666ok, that is all I needed to hear20:46
sinzuiniedbalski, but I will call your attention to https://bugs.launchpad.net/juju-core/+bug/1416928 which murdered my beloved juju-ci3 env20:47
mupBug #1416928: juju agent using lxcbr0 address as apiaddress instead of juju-br0 breaks agents <api> <lxc> <network> <juju-core:Triaged> <juju-core 1.21:Triaged> <juju-core 1.22:Triaged> <https://launchpad.net/bugs/1416928>20:47
sinzuiniedbalski, suspect t juju flipped out when it found lxc installed in the bootstrap server20:47
thumpercmars: can I defer our call?20:51
rharperso, I'm trying to invoke an rpc of addmachine and I want to pass an arg that will be converted to a placement.instance, much lik what the juju cli does when you do juju machine add foo (it converts it to {env-uuid: foo}) ... I'm sending over a Placement value in the MachineParams structure, and the response is that it cannot unmarshal strings to an instance.Placement ;  so the question then is how do I pass the argument to the AddMachines20:51
rharper request such that it does what the juju cli machine add does ?20:51
niedbalskisinzui, this is the simpler way to reproduce ( A. start an instance in a cloud and install lxc on it. With the manual provider, attempt to bootstrap it. )20:51
niedbalski?20:51
rharperI'm using the python-jujuclient as the sender FWIW;20:51
=== kadams54_ is now known as kadams54-away
natefinchrharper: placement expects to be scope:directive20:57
natefinchrharper: so, like lxc:120:57
rharperexcept I can do juju add-machine foo20:57
rharperand it will do a env-uuid:foo as an instance.Placement20:57
rharperobject20:57
rharperthis allows me to have the provide add that machine (maas backend)20:57
rharperI want to do the same via rpc, but I can't see how to pass the args that the Init() in cmd/juju/machine/add.go does20:58
rharperit attempts to construct an placement object from the args value, and if it fails, it prepends 'env-uuid'20:58
natefinchrharper: this is the code that does the parsing of the string: https://github.com/juju/juju/blob/master/instance/placement.go#L5320:59
rharperyep20:59
rharperhttps://github.com/juju/juju/blob/master/cmd/juju/machine/add.go#L13120:59
rharperthat's the bit where it takes extra args from machine add <args> and prepends 'env-uuid' and then calls instance.Placement()21:00
cmarsthumper, sgtm21:00
rharperthat's the code that appears to allow juju add-machine foo.maas to pass foo.maas (placement ) to the provide which in turns starts up foo.maas21:00
rharpernatefinch: what I don't know is how incoming json rpc requests are unmarshal;  it appears from the response that it can't convert strings to instance.Placement objects ...  http://paste.ubuntu.com/10163887/21:02
sinzuiniedbalski, That is one scenario21:03
sinzuiniedbalski, for my case. I think I need to bootstrap 1.20.14, install lxc, reboot the machine, upgrade to 1.21. I think those are the events that happened on my server21:05
natefinchrharper: oh, I see, ok.  so for just normal json unmarshalling you just need to make placement an object with Scope and Directive string values  so, "Placement": { "Scope": "foo", "Directive": "bar"}21:05
natefinchrharper: I actually think that placement parsing code is for translation from the CLI21:06
natefinchsorry, my mistake21:06
rharperno worries;  just trying to figure out how to do the same thing the cli is doing via rpc;21:06
rharperlemme play with that now21:06
sinzuinatefinch, do you have a minute to review http://reviews.vapour.ws/r/910/21:28
perrito666sinzui: the  2 restore ones are now committed to 1.2121:38
sinzuiperrito666, you rock21:39
perrito666sinzui: in this case niedbalski rocks, because he put up with all the "try this" ideas I had and added some of his own :p21:39
sinzuithank you niedbalski21:40
rharpernatefinch: thanks for the tip;  I've got it working, I need to extract the environment's config uuid, pass that in as the scope, and the directive uses the machine name;21:47
natefinchrharper: cool, glad you got it working21:48
niedbalskisinzui, np21:56
niedbalskiperrito666, thanks for the fixes :)21:56
=== whit|review-q is now known as whit
perrito666I really hate juju bot22:17
jw4perrito666: tsk tst22:18
perrito666jw4: we all do22:21
perrito666admit it22:21
jw4perrito666: lol22:27
* hazmat pats juju bot on the head22:30
jw4heh22:31
alexisbericsnow, release call?22:32
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
sinzuiwallyworld_, can you review https://github.com/juju/juju/pull/158023:03
wallyworld_sure23:03
wallyworld_well that was hard23:04
ericsnowalexisb: sorry, had a dentist appt.23:08
anastasiamacwaigani: morning! as an OCR,could u plz cast ur eyes over http://reviews.vapour.ws/r/888/23:36
waiganianastasiamac: yep, just finishing a rather big one off, you're next on the list23:37
anastasiamacwaigani: thnx :D23:37

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