/srv/irclogs.ubuntu.com/2015/08/07/#juju-dev.txt

mupBug #1482502 opened: API open error: EOF during bootstrap <ci> <intermittent-failure> <maas-provider> <test-failure> <juju-core:Triaged> <juju-core windows-public-clouds:Triaged> <https://launchpad.net/bugs/1482502>05:55
mupBug #1430205 changed: lxc template needs refreshing every 24 hours <lxc> <sts> <juju-core:Fix Released> <https://launchpad.net/bugs/1430205>06:25
mupBug #1482513 opened: checklist failed with "at least three machines that have more than one disk" <juju-core:New> <https://launchpad.net/bugs/1482513>06:49
voidspacedooferlad: are you around?07:03
dooferladvoidspace: here now07:54
dooferladvoidspace: had rubbish night, so later than wanted start07:54
voidspacedooferlad: thanks08:42
voidspacedooferlad: sorry about your night08:42
voidspacedooferlad: and thanks for the review08:42
voidspacefwereade_: you have internet back yet, or you just found somewhere with wifi to work?08:42
dooferladvoidspace: no problem - wan't a big hunk of code!08:42
voidspacedooferlad: hehe, not exactly...08:42
voidspacedooferlad: did your state subnets branch land?08:43
voidspacedooferlad: if so you could move the card from Landing to Merged08:43
dooferladvoidspace: done. Thanks for the reminder.08:44
voidspacedimitern: I may need help with adding reference counting to subnets09:23
voidspacedimitern: I'll look at how it's done in other places first09:23
voidspacedimitern: maybe you could suggest somewhere else to look, otherwise I'll go spelunking through code09:23
voidspacedimitern: dooferlad: FYI my api branch landed09:25
dimiternvoidspace, certainly09:26
dimiternvoidspace, a nice, isolated example would be service settings ref counts09:27
voidspacedimitern: thanks09:27
dimiternvoidspace, look at and around settingsRefsDoc09:28
voidspacedimitern: so it requires a separate collection for the refs09:28
TheMuedimitern: can you also provide edit access to the spreadsheet?09:28
dimiternvoidspace, essentially you need explicit txn-revno to assert the collection hasn't changed09:29
dimiternvoidspace, it doesn't require a separate collection, but fwereade I know prefers this approach09:29
voidspacedimitern: yeah, it's more the general shape of the infrastructure (that we use a separate doc for example) and where the refs are updated09:29
dimiternTheMue, which one ? for the sprint?09:30
voidspacedimitern: if fwreade prefers it that sounds like a good reason to do it :-)09:30
TheMuedimitern: exactly, otherwise I do it the standard way via alexisb09:30
dimiternvoidspace, yeah, and to make life easier add helpers inc and dec ops and assert unchanged ops09:30
voidspaceok09:31
dimiternTheMue, let me see if I can do it09:31
TheMuedimitern: thx09:31
dimiternTheMue, try now09:32
TheMuedimitern: it works, great, thx again09:33
dimiternTheMue, np09:34
dimiternvoidspace, dooferlad, both of you should have edit access as well09:34
voidspacedimitern: settingsIncRefOp and settingsDecRefOps (inconsistent naming!) both seem straightforward09:35
voidspacealthough there decrementing ref count to zero deletes the settings09:36
voidspacewe don't want that behaviour09:36
dimiternvoidspace, the naming is inconsistent because one is returning txn.Op and the other []txn.Op, but fair point09:49
rogpeppeanyone know if juju CI is currently blocked on critical bugs?09:50
rogpeppei remember there was a website you could check, but i can't remember the name09:51
rogpeppedimitern: ^09:51
dimiternrogpeppe, http://juju.fail09:51
dimiternrogpeppe, and it seems it's blocked09:52
rogpeppedimitern: ok, i won't bother trying to propose my one line change to provider/dummy :)09:52
rogpeppedimitern: thanks09:52
rogpeppedimitern: i'll bookmark that09:52
dimiternrogpeppe, it's great :)09:52
rogpeppedimitern: it should have a favicon :)09:53
dimiternrogpeppe, marcoceppi accepts contributions for it - I've done it once :)09:59
rogpeppedimitern: then i'd have to make one :)10:00
perrito666I fix committed that bugfix why is it still blocked?10:02
perrito666There is no ci failure to support it and the relevant test is passing I say just change the severity10:03
perrito666Dimitern rogpeppe ^10:05
rogpeppeperrito666: i've no idea10:05
dimiternperrito666, no idea - ping mgz, sinzui ?10:05
* perrito666 goes back to breakfast, irc on the phone is very annoying 10:06
perrito666Mgz?10:06
dimiternTheMue, I'm looking at your branch10:32
TheMuedimitern: the WIP one or the not yet PR branch with the cleaner approach?10:32
dimiternTheMue, about the tests we're talking about10:32
dimiternTheMue, the one I can see (ending with "-simplified-approach" or something)10:33
TheMuedimitern: ah, fine, just adding tests here10:34
dimiternTheMue, let's finish all the tests with mocking, but at the end add a separate suite embedding JujuConnSuite (with comment that it's an integration test) that tests the full stack end-to-end10:34
TheMuedimitern: yep, will do, sounds logical to me10:34
tasdomasdimitern, ping?10:34
dimiternTheMue, i.e. add some IPs, make some of them dead (not all), call Cleanup...() and ensure they are released and removed10:35
TheMuedimitern: so far integration has been on worker level only. a bit late.10:35
dimiterntasdomas, pong10:35
tasdomasdimitern, a quick testing question10:35
dimiterntasdomas, sure10:35
TheMuedimitern: yeah10:35
tasdomasdimitern, in https://github.com/juju/juju/pull/2927/files#diff-34326fed18c50f27a1b95570dc428e0aR573 I'm adding a call to state from runner.Context10:36
tasdomasdimitern, what would be the best way to path that call to state, making it return an error?10:36
tasdomasuniter.State is not an interface, so I can't just mock it out10:37
dimiterntasdomas, let me have a look10:38
voidspaceericsnow: what's a "WMP feature test"?12:20
mgzperrito666: I marked bug as released to unblock branches - as I understand it we don't have coverage at present without jes testing, also master failed for other reasons when running the rev.12:20
voidspaceericsnow: WPM even12:22
perrito666mgz: oh, why did it fail?12:24
mupBug #1479289 changed: statushistory uses sequence, fails in multi-env state servers <blocker> <jes> <status> <juju-core:Fix Released by hduran-8> <juju-core 1.24:Fix Released by hduran-8> <https://launchpad.net/bugs/1479289>12:26
mgzperrito666: juju not coping with errors from ec2 when deploying a bunch of stuff with quickstart, and joyent networking not being sorted yet12:26
mgzso, known robustness issues12:26
perrito666meh12:27
TheMuedimitern: ping12:47
dimiternTheMue, pong12:55
mupBug #1482634 opened: leadership manager lifetime tied to state <tech-debt> <juju-core:Triaged by fwereade> <https://launchpad.net/bugs/1482634>12:56
TheMuedimitern: do you have a good example for working with a mock in one suite and the dummy in another suite in the same package?12:57
mupBug #1482634 changed: leadership manager lifetime tied to state <tech-debt> <juju-core:Triaged by fwereade> <https://launchpad.net/bugs/1482634>12:59
TheMuedimitern: the test itself is done, I only needed the coretesting.MgoTestPackage(t)12:59
TheMuedimitern: and then, because they are two suites, one panics13:00
TheMuedimitern: one simple solution could be to not mock and use dummy for all tests of the API, but hmm, we tried to have less mongo starts13:01
TheMuedimitern: running the one with our Mgo... and the other one with gc.TestingT(t) would be nice. *sigh*13:05
dimiternTheMue, you only need to call MgoTestPackage once, regardless of how many suites you have13:06
dimiternTheMue, I can't think of a good example off hand for a package where there are both mocked unit tests and dummy provider based integration tests13:07
TheMuedimitern: yes, but doing so in TestPackage leads to a "Panic: cannot share a state between two dummy environs; old "only"; new "dummyenv""13:07
dimiternTheMue, can I have a look at the code that causes the panic?13:08
TheMuedimitern: sure, I'll quickly commit and push the branch13:09
TheMuedimitern: here it is https://github.com/TheMue/juju/blob/addresser-simplified-approach/apiserver/addresser/addresser_test.go13:11
mupBug #1482634 opened: leadership manager lifetime tied to state <tech-debt> <juju-core:Triaged by fwereade> <https://launchpad.net/bugs/1482634>13:11
TheMuedimitern: and package_test.go contains the former code commented plus the call of MgoTestPackage13:12
marcoceppidimitern glad you still use it!13:12
TheMuedimitern: the DummyAddresserSuite is now the new 2nd one using the dummy provider while the AddresserSuite uses the mock13:12
TheMuedimitern: the ttest at the bottom still misses the final check, that the address has been removed. wanted to test so far and then had the trouble with Mgo...13:14
dimiternmarcoceppi, absolutely - that's my go-to source to check for blockers :)13:14
TheMuemarcoceppi: dimitern: juju.fail? yeah, a very good and helpful tool13:15
perrito666I love it, just learned a couple of days ago about it13:17
dimiternTheMue, so you're saying calling MgoTestPackage in a package which have some suites using JujuConnSuite and some not panics?13:17
perrito666fwereade: hehey, internet is back?13:17
TheMuedimitern: yep13:18
dimiternTheMue, if that's the case too bad :( we can move that integration test to the worker then13:18
TheMuedimitern: *sniff*13:18
TheMuedimitern: liked the idea of having pure functional tests as well as integration in a so compact way13:19
TheMuehmmm, "in such a compact way" sounds better and more correct13:20
fwereadeperrito666, yeah13:20
perrito666fwereade: what was the culprit?13:21
fwereadeperrito666, we're pretty sure we tracked it down to an a/c unit that hadn't actually been unplugged from everything13:21
fwereadeperrito666, so we've got someone coming over to take a look at that13:21
perrito666fwereade: :) dont forget to ask for the neutral line check13:21
fwereadeperrito666, on the a/c? or everywhere?13:22
TheMuedimitern: that's btw one reason why I like the standard go tests where I create the environment in helper functions as a first statement in TestFoo(t *testing.T)13:22
perrito666fwereade: everywhere, it is not normal to have the protection break on all 3 circuits if only 1 is faulty13:22
natefinchTheMue: +1 for standard go tests w/ a help if setup is needed.13:23
fwereadeperrito666, yep. will do13:23
TheMuedimitern: so my tideland test typically load the assertion type/helper as a first statement, then create their environment(s) and then do the tests13:23
TheMuenatefinch: thx13:24
* perrito666 +1s natefinch 13:24
natefinchTheMue: I think it's just a lot more clear w/o magical functions getting called that you don't even see.   Plus, I think mgo's test timing doesn't include setup or teardown, which means you miss a lot of important information about how long a test really takes13:25
TheMuenatefinch: yep13:26
natefinchTheMue: er s/mgo/gocheck/13:27
TheMuenatefinch: here at https://github.com/tideland/golib/blob/master/cells/cells_test.go#L168 is an example how I'm doing it, always trying to be as simple as possible13:27
fwereadeI know I'm OCR, but cann I hit someone up for a review of http://reviews.vapour.ws/r/2315/ please? somewhat urgent13:28
TheMuenatefinch: and if a larger setup is needed it's simply a privat function in the same test (extra or same file)13:28
natefinchTheMue: yep.13:29
TheMuenatefinch: the task of gocheck for more simple test is done by https://godoc.org/github.com/tideland/golib/audit#Assertion13:29
natefinchTheMue: the nice thing about using the standard test's framework is better integration with third party tools, like goconvey's web UI.13:29
TheMuenatefinch: yes, another big advantage13:30
perrito666fwereade: ship it13:30
perrito666I am satisfied by the amount of explanations around the dirty hack :)13:31
fwereadeperrito666, tyvm13:31
fwereadeericsnow, ty for your review; and by the way, RB seems not to have picked up https://github.com/juju/juju/pull/293213:34
perrito666rb is missing a lot of things lately13:35
natefinchoh for fsck's sake... the tests are wiping environment variables... now I understand why the tests keep telling me they can't find $HOME13:59
perrito666lol13:59
katconatefinch: standup14:01
voidspaceperrito666: a few questions on your version checker PR14:03
voidspaceperrito666: other than my questions looks good14:03
perrito666voidspace: hey thanks :)14:04
ericsnowfwereade: re: that review request, it barfed because of unicode (in Python 2)14:12
mupBug #1482513 changed: checklist failed with "at least three machines that have more than one disk" <Landscape Server:Incomplete> <https://launchpad.net/bugs/1482513>14:14
fwereadeericsnow, eww, what did I do to it?14:23
ericsnowfwereade: not your fault :)14:23
perrito666heh, thank I didn't write my name properly on github nor in my git account14:24
perrito666that usually blows djangos with unicode errors14:24
fwereadeericsnow, what should I do to goose it into action when that happens?14:26
ericsnowfwereade: I thought I had fixed it but I guess not14:26
ericsnowfwereade: create a new pull request? (discard the old one)14:26
perrito666ericsnow: you never fix all unicode problems14:26
fwereadeericsnow, ok, cheers14:26
ericsnowperrito666: :)14:27
* perrito666 used to be the "reminder there is a 'rest of the world'" to former co workers doing python web apps14:28
perrito666I wont say what was their nationality :p14:28
dooferladvoidspace / dimitern: I am being told by Juju that it is out of IP addresses when trying to perform a static allocation. Do you know how to reset the pool? This is with MAAS.14:30
fwereadeericsnow, does PR2939 have the same problem?14:30
dooferladI have already reset the leases files it is using14:30
voidspacedooferlad: "reset the pool"? there is no way...14:31
voidspacedooferlad: juju attempts to allocate addresses from the static range14:31
voidspacedooferlad: if it fails (MAAS returns an error) it marks the address as unavailable14:32
perrito666fwereade: how do you even cause a unicode error? do you have special chars in your kb?14:32
voidspacedooferlad: if it succeeds it uses the address14:32
fwereadeperrito666, I didn't think I was doing anything special -- no :hankey:s in the comments or anything14:33
dooferladvoidspace: so what I do when MAAS thinks it has run out?14:33
voidspacedooferlad: well if *MAAS* thinks you've run out it usually means you have14:35
voidspacedooferlad: increase the static range14:35
voidspace*statically allocated range*14:35
voidspacethat should work14:36
dooferladvoidspace: I have two physical machines, one is on, there are three containers on it. I have 100 addresses in the static range.14:36
voidspacedooferlad: something has gone wrong then :-)14:36
dooferladvoidspace: yea.14:36
voidspacesome error was causing address allocation to fail and addresses be marked as unavailable14:37
voidspaceyou could poke mongo directly and clear all addresses marked as unavailable14:37
voidspacewe should have an issue (we've certainly talked about) retrying unavailable addresses14:37
voidspace*for retrying14:38
perrito666voidspace: why on earth are we not using more periodicworker14:41
* perrito666 facepalms14:42
voidspaceperrito666: I don't know... :-)14:43
* perrito666 changes it a bit to use a custom clock14:43
dooferladvoidspace: https://gist.github.com/dooferlad/082996faeb2168a76ab4 does it14:47
dooferladvoidspace: provided your maas is called "maas"14:47
voidspacedooferlad: my maas usually is called maas14:53
voidspacedooferlad: ah, so they were allocated with maas14:53
voidspaceI wonder how they got allocated14:53
voidspacewe must have allocated them, then something *else* went wrong so we marked the address as unavailable and tried another one14:53
voidspacestill worrying14:53
voidspacedooferlad: hmmm... maybe not14:54
voidspaceI'm slightly confused but never mind, if it worked then great14:54
dooferladvoidspace: juju destroy-environment -y --force maas14:54
dooferladvoidspace: I bet repeatedly using that doesn't help14:54
voidspacedooferlad: hah, yes14:54
voidspacedooferlad: they just remained allocated from previous runs14:54
voidspacethat makes sense14:55
voidspaceif you use maas 1.8 and trunk it should no longer be an issue14:55
voidspacethey'll now be freed correctly14:55
dooferladI am14:55
voidspaceusing devices14:55
voidspacein theory...14:55
dooferladthough I ran out when using net-cli14:55
voidspacethe devices are correctly cleared and we're assuming maas also releases their IP addresses14:55
voidspacethat may not have the new devices stuff in it14:55
voidspaceyou can tell - when you create a container check if a corresponding device is created (visible in the MAAS UI)14:56
dooferladOh, that's new (to me):  ERROR juju.cmd supercommand.go:429 upgrade in progress - Juju functionality is limited14:57
dooferladvoidspace: ohh, now there are devices! Shiny!15:05
voidspaceright EOW15:35
voidspacehappy weekend everyone15:35
dimiterndooferlad, hey15:37
dooferladHi15:38
dimiterndooferlad, did you manage to fix your ip addresses issues?15:38
dimiterndooferlad, I have a tool for this btw15:38
dooferladYep. Pasted above15:38
dooferladWell, mine is pasted above15:39
dimiterndooferlad, ah :) good - but here's mine as well - expectedIP15:39
dimitern?!15:39
dimiternhttps://github.com/dimitern/go-tools15:39
dooferladdimitern: cool, will try to remember that is there.15:43
dooferladI think we should bubble up a warning to the CLI if we can't allocate a static address and we wanted to. It is the sort of thing that hunting through logs for just sucks.15:43
dooferladbut for the moment I am out of energy, so calling it a day.15:44
dimiterndooferlad, We will do that soon15:45
dimiterndooferlad, have a nice weekend :)15:45
perrito666bbl16:00
bogdanteleagado we support instance type constraints on azure?16:05
dimiternbogdanteleaga, looking at provider/azure - selectInstanceTypeAndImage it seems we do16:14
bogdanteleagadimitern: yup, I managed to get it working in the end16:15
bogdanteleagasadly, I don't think it matters since I wanted an SSD for the main drive and D# instances provide it only for a secondary drive16:16
rogpeppeanyone know of an easy way of getting just the public address of a service from a juju status?16:24
rogpeppei'm wondering if there's a command buried somewhere along the same kind of lines as juju api-endpoints16:25
mgzrogpeppe: a service doesn't have a public address16:35
mgzrogpeppe: units of the service do16:35
rogpeppemgz: i mean a unit, sorry :)16:35
bogdanteleagathe closest I get is juju status --format=oneline16:35
rogpeppebogdanteleaga: that + awk or sed will do the trick, thanks16:36
mgzI've just used --format=json and a jsonpath tool thing in the past16:37
bogdanteleagajuju status --format=oneline | cut -d ' ' -f 316:37
rogpeppebogdanteleaga: yeah.16:37
bogdanteleagacut is a bit easier, at least for me :)16:37
rogpeppebogdanteleaga: i haven't used cut in years :)16:37
rogpeppebogdanteleaga: i can never remember whether field numbers start at 0 or 116:37
bogdanteleagaheh, I always keep trying until I find it16:38
bogdanteleagaawk always seemed hard to use16:38
rogpeppebogdanteleaga: i'll probably do: addresses=$(juju status --format oneline | awk '/^- myservicename/ {print $3}')16:38
bogdanteleagabut then, it does way more16:38
rogpeppebogdanteleaga: awk is kinda awkward :)16:39
bogdanteleagaI didn't wanna use that one :D16:39
rogpeppebodie_: i actually only realised the pun after i pressed return16:40
alexisbfolks, do I have developers still around in US hours?17:36
katcoalexisb: yep17:36
alexisbwe have a hot issue I need someone to take17:36
katcoalexisb: you should have natefinch, ericsnow, perrito666, and cherylj at your disposal17:37
katcocherylj: hey you around?17:40
natefinchalexisb: still need help?18:06
alexisbnatefinch, nope18:06
natefinchalexisb: excellent18:07
perrito666ok, both branches pushed :) I am done22:21

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