mup | Bug #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 |
---|---|---|
mup | Bug #1430205 changed: lxc template needs refreshing every 24 hours <lxc> <sts> <juju-core:Fix Released> <https://launchpad.net/bugs/1430205> | 06:25 |
mup | Bug #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 |
voidspace | dooferlad: are you around? | 07:03 |
dooferlad | voidspace: here now | 07:54 |
dooferlad | voidspace: had rubbish night, so later than wanted start | 07:54 |
voidspace | dooferlad: thanks | 08:42 |
voidspace | dooferlad: sorry about your night | 08:42 |
voidspace | dooferlad: and thanks for the review | 08:42 |
voidspace | fwereade_: you have internet back yet, or you just found somewhere with wifi to work? | 08:42 |
dooferlad | voidspace: no problem - wan't a big hunk of code! | 08:42 |
voidspace | dooferlad: hehe, not exactly... | 08:42 |
voidspace | dooferlad: did your state subnets branch land? | 08:43 |
voidspace | dooferlad: if so you could move the card from Landing to Merged | 08:43 |
dooferlad | voidspace: done. Thanks for the reminder. | 08:44 |
voidspace | dimitern: I may need help with adding reference counting to subnets | 09:23 |
voidspace | dimitern: I'll look at how it's done in other places first | 09:23 |
voidspace | dimitern: maybe you could suggest somewhere else to look, otherwise I'll go spelunking through code | 09:23 |
voidspace | dimitern: dooferlad: FYI my api branch landed | 09:25 |
dimitern | voidspace, certainly | 09:26 |
dimitern | voidspace, a nice, isolated example would be service settings ref counts | 09:27 |
voidspace | dimitern: thanks | 09:27 |
dimitern | voidspace, look at and around settingsRefsDoc | 09:28 |
voidspace | dimitern: so it requires a separate collection for the refs | 09:28 |
TheMue | dimitern: can you also provide edit access to the spreadsheet? | 09:28 |
dimitern | voidspace, essentially you need explicit txn-revno to assert the collection hasn't changed | 09:29 |
dimitern | voidspace, it doesn't require a separate collection, but fwereade I know prefers this approach | 09:29 |
voidspace | dimitern: yeah, it's more the general shape of the infrastructure (that we use a separate doc for example) and where the refs are updated | 09:29 |
dimitern | TheMue, which one ? for the sprint? | 09:30 |
voidspace | dimitern: if fwreade prefers it that sounds like a good reason to do it :-) | 09:30 |
TheMue | dimitern: exactly, otherwise I do it the standard way via alexisb | 09:30 |
dimitern | voidspace, yeah, and to make life easier add helpers inc and dec ops and assert unchanged ops | 09:30 |
voidspace | ok | 09:31 |
dimitern | TheMue, let me see if I can do it | 09:31 |
TheMue | dimitern: thx | 09:31 |
dimitern | TheMue, try now | 09:32 |
TheMue | dimitern: it works, great, thx again | 09:33 |
dimitern | TheMue, np | 09:34 |
dimitern | voidspace, dooferlad, both of you should have edit access as well | 09:34 |
voidspace | dimitern: settingsIncRefOp and settingsDecRefOps (inconsistent naming!) both seem straightforward | 09:35 |
voidspace | although there decrementing ref count to zero deletes the settings | 09:36 |
voidspace | we don't want that behaviour | 09:36 |
dimitern | voidspace, the naming is inconsistent because one is returning txn.Op and the other []txn.Op, but fair point | 09:49 |
rogpeppe | anyone know if juju CI is currently blocked on critical bugs? | 09:50 |
rogpeppe | i remember there was a website you could check, but i can't remember the name | 09:51 |
rogpeppe | dimitern: ^ | 09:51 |
dimitern | rogpeppe, http://juju.fail | 09:51 |
dimitern | rogpeppe, and it seems it's blocked | 09:52 |
rogpeppe | dimitern: ok, i won't bother trying to propose my one line change to provider/dummy :) | 09:52 |
rogpeppe | dimitern: thanks | 09:52 |
rogpeppe | dimitern: i'll bookmark that | 09:52 |
dimitern | rogpeppe, it's great :) | 09:52 |
rogpeppe | dimitern: it should have a favicon :) | 09:53 |
dimitern | rogpeppe, marcoceppi accepts contributions for it - I've done it once :) | 09:59 |
rogpeppe | dimitern: then i'd have to make one :) | 10:00 |
perrito666 | I fix committed that bugfix why is it still blocked? | 10:02 |
perrito666 | There is no ci failure to support it and the relevant test is passing I say just change the severity | 10:03 |
perrito666 | Dimitern rogpeppe ^ | 10:05 |
rogpeppe | perrito666: i've no idea | 10:05 |
dimitern | perrito666, no idea - ping mgz, sinzui ? | 10:05 |
* perrito666 goes back to breakfast, irc on the phone is very annoying | 10:06 | |
perrito666 | Mgz? | 10:06 |
dimitern | TheMue, I'm looking at your branch | 10:32 |
TheMue | dimitern: the WIP one or the not yet PR branch with the cleaner approach? | 10:32 |
dimitern | TheMue, about the tests we're talking about | 10:32 |
dimitern | TheMue, the one I can see (ending with "-simplified-approach" or something) | 10:33 |
TheMue | dimitern: ah, fine, just adding tests here | 10:34 |
dimitern | TheMue, 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-end | 10:34 |
TheMue | dimitern: yep, will do, sounds logical to me | 10:34 |
tasdomas | dimitern, ping? | 10:34 |
dimitern | TheMue, i.e. add some IPs, make some of them dead (not all), call Cleanup...() and ensure they are released and removed | 10:35 |
TheMue | dimitern: so far integration has been on worker level only. a bit late. | 10:35 |
dimitern | tasdomas, pong | 10:35 |
tasdomas | dimitern, a quick testing question | 10:35 |
dimitern | tasdomas, sure | 10:35 |
TheMue | dimitern: yeah | 10:35 |
tasdomas | dimitern, in https://github.com/juju/juju/pull/2927/files#diff-34326fed18c50f27a1b95570dc428e0aR573 I'm adding a call to state from runner.Context | 10:36 |
tasdomas | dimitern, what would be the best way to path that call to state, making it return an error? | 10:36 |
tasdomas | uniter.State is not an interface, so I can't just mock it out | 10:37 |
dimitern | tasdomas, let me have a look | 10:38 |
voidspace | ericsnow: what's a "WMP feature test"? | 12:20 |
mgz | perrito666: 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 |
voidspace | ericsnow: WPM even | 12:22 |
perrito666 | mgz: oh, why did it fail? | 12:24 |
mup | Bug #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 |
mgz | perrito666: juju not coping with errors from ec2 when deploying a bunch of stuff with quickstart, and joyent networking not being sorted yet | 12:26 |
mgz | so, known robustness issues | 12:26 |
perrito666 | meh | 12:27 |
TheMue | dimitern: ping | 12:47 |
dimitern | TheMue, pong | 12:55 |
mup | Bug #1482634 opened: leadership manager lifetime tied to state <tech-debt> <juju-core:Triaged by fwereade> <https://launchpad.net/bugs/1482634> | 12:56 |
TheMue | dimitern: 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 |
mup | Bug #1482634 changed: leadership manager lifetime tied to state <tech-debt> <juju-core:Triaged by fwereade> <https://launchpad.net/bugs/1482634> | 12:59 |
TheMue | dimitern: the test itself is done, I only needed the coretesting.MgoTestPackage(t) | 12:59 |
TheMue | dimitern: and then, because they are two suites, one panics | 13:00 |
TheMue | dimitern: 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 starts | 13:01 |
TheMue | dimitern: running the one with our Mgo... and the other one with gc.TestingT(t) would be nice. *sigh* | 13:05 |
dimitern | TheMue, you only need to call MgoTestPackage once, regardless of how many suites you have | 13:06 |
dimitern | TheMue, 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 tests | 13:07 |
TheMue | dimitern: yes, but doing so in TestPackage leads to a "Panic: cannot share a state between two dummy environs; old "only"; new "dummyenv"" | 13:07 |
dimitern | TheMue, can I have a look at the code that causes the panic? | 13:08 |
TheMue | dimitern: sure, I'll quickly commit and push the branch | 13:09 |
TheMue | dimitern: here it is https://github.com/TheMue/juju/blob/addresser-simplified-approach/apiserver/addresser/addresser_test.go | 13:11 |
mup | Bug #1482634 opened: leadership manager lifetime tied to state <tech-debt> <juju-core:Triaged by fwereade> <https://launchpad.net/bugs/1482634> | 13:11 |
TheMue | dimitern: and package_test.go contains the former code commented plus the call of MgoTestPackage | 13:12 |
marcoceppi | dimitern glad you still use it! | 13:12 |
TheMue | dimitern: the DummyAddresserSuite is now the new 2nd one using the dummy provider while the AddresserSuite uses the mock | 13:12 |
TheMue | dimitern: 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 |
dimitern | marcoceppi, absolutely - that's my go-to source to check for blockers :) | 13:14 |
TheMue | marcoceppi: dimitern: juju.fail? yeah, a very good and helpful tool | 13:15 |
perrito666 | I love it, just learned a couple of days ago about it | 13:17 |
dimitern | TheMue, so you're saying calling MgoTestPackage in a package which have some suites using JujuConnSuite and some not panics? | 13:17 |
perrito666 | fwereade: hehey, internet is back? | 13:17 |
TheMue | dimitern: yep | 13:18 |
dimitern | TheMue, if that's the case too bad :( we can move that integration test to the worker then | 13:18 |
TheMue | dimitern: *sniff* | 13:18 |
TheMue | dimitern: liked the idea of having pure functional tests as well as integration in a so compact way | 13:19 |
TheMue | hmmm, "in such a compact way" sounds better and more correct | 13:20 |
fwereade | perrito666, yeah | 13:20 |
perrito666 | fwereade: what was the culprit? | 13:21 |
fwereade | perrito666, we're pretty sure we tracked it down to an a/c unit that hadn't actually been unplugged from everything | 13:21 |
fwereade | perrito666, so we've got someone coming over to take a look at that | 13:21 |
perrito666 | fwereade: :) dont forget to ask for the neutral line check | 13:21 |
fwereade | perrito666, on the a/c? or everywhere? | 13:22 |
TheMue | dimitern: 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 |
perrito666 | fwereade: everywhere, it is not normal to have the protection break on all 3 circuits if only 1 is faulty | 13:22 |
natefinch | TheMue: +1 for standard go tests w/ a help if setup is needed. | 13:23 |
fwereade | perrito666, yep. will do | 13:23 |
TheMue | dimitern: so my tideland test typically load the assertion type/helper as a first statement, then create their environment(s) and then do the tests | 13:23 |
TheMue | natefinch: thx | 13:24 |
* perrito666 +1s natefinch | 13:24 | |
natefinch | TheMue: 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 takes | 13:25 |
TheMue | natefinch: yep | 13:26 |
natefinch | TheMue: er s/mgo/gocheck/ | 13:27 |
TheMue | natefinch: 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 possible | 13:27 |
fwereade | I know I'm OCR, but cann I hit someone up for a review of http://reviews.vapour.ws/r/2315/ please? somewhat urgent | 13:28 |
TheMue | natefinch: and if a larger setup is needed it's simply a privat function in the same test (extra or same file) | 13:28 |
natefinch | TheMue: yep. | 13:29 |
TheMue | natefinch: the task of gocheck for more simple test is done by https://godoc.org/github.com/tideland/golib/audit#Assertion | 13:29 |
natefinch | TheMue: the nice thing about using the standard test's framework is better integration with third party tools, like goconvey's web UI. | 13:29 |
TheMue | natefinch: yes, another big advantage | 13:30 |
perrito666 | fwereade: ship it | 13:30 |
perrito666 | I am satisfied by the amount of explanations around the dirty hack :) | 13:31 |
fwereade | perrito666, tyvm | 13:31 |
fwereade | ericsnow, ty for your review; and by the way, RB seems not to have picked up https://github.com/juju/juju/pull/2932 | 13:34 |
perrito666 | rb is missing a lot of things lately | 13:35 |
natefinch | oh for fsck's sake... the tests are wiping environment variables... now I understand why the tests keep telling me they can't find $HOME | 13:59 |
perrito666 | lol | 13:59 |
katco | natefinch: standup | 14:01 |
voidspace | perrito666: a few questions on your version checker PR | 14:03 |
voidspace | perrito666: other than my questions looks good | 14:03 |
perrito666 | voidspace: hey thanks :) | 14:04 |
ericsnow | fwereade: re: that review request, it barfed because of unicode (in Python 2) | 14:12 |
mup | Bug #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 |
fwereade | ericsnow, eww, what did I do to it? | 14:23 |
ericsnow | fwereade: not your fault :) | 14:23 |
perrito666 | heh, thank I didn't write my name properly on github nor in my git account | 14:24 |
perrito666 | that usually blows djangos with unicode errors | 14:24 |
fwereade | ericsnow, what should I do to goose it into action when that happens? | 14:26 |
ericsnow | fwereade: I thought I had fixed it but I guess not | 14:26 |
ericsnow | fwereade: create a new pull request? (discard the old one) | 14:26 |
perrito666 | ericsnow: you never fix all unicode problems | 14:26 |
fwereade | ericsnow, ok, cheers | 14:26 |
ericsnow | perrito666: :) | 14:27 |
* perrito666 used to be the "reminder there is a 'rest of the world'" to former co workers doing python web apps | 14:28 | |
perrito666 | I wont say what was their nationality :p | 14:28 |
dooferlad | voidspace / 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 |
fwereade | ericsnow, does PR2939 have the same problem? | 14:30 |
dooferlad | I have already reset the leases files it is using | 14:30 |
voidspace | dooferlad: "reset the pool"? there is no way... | 14:31 |
voidspace | dooferlad: juju attempts to allocate addresses from the static range | 14:31 |
voidspace | dooferlad: if it fails (MAAS returns an error) it marks the address as unavailable | 14:32 |
perrito666 | fwereade: how do you even cause a unicode error? do you have special chars in your kb? | 14:32 |
voidspace | dooferlad: if it succeeds it uses the address | 14:32 |
fwereade | perrito666, I didn't think I was doing anything special -- no :hankey:s in the comments or anything | 14:33 |
dooferlad | voidspace: so what I do when MAAS thinks it has run out? | 14:33 |
voidspace | dooferlad: well if *MAAS* thinks you've run out it usually means you have | 14:35 |
voidspace | dooferlad: increase the static range | 14:35 |
voidspace | *statically allocated range* | 14:35 |
voidspace | that should work | 14:36 |
dooferlad | voidspace: I have two physical machines, one is on, there are three containers on it. I have 100 addresses in the static range. | 14:36 |
voidspace | dooferlad: something has gone wrong then :-) | 14:36 |
dooferlad | voidspace: yea. | 14:36 |
voidspace | some error was causing address allocation to fail and addresses be marked as unavailable | 14:37 |
voidspace | you could poke mongo directly and clear all addresses marked as unavailable | 14:37 |
voidspace | we should have an issue (we've certainly talked about) retrying unavailable addresses | 14:37 |
voidspace | *for retrying | 14:38 |
perrito666 | voidspace: why on earth are we not using more periodicworker | 14:41 |
* perrito666 facepalms | 14:42 | |
voidspace | perrito666: I don't know... :-) | 14:43 |
* perrito666 changes it a bit to use a custom clock | 14:43 | |
dooferlad | voidspace: https://gist.github.com/dooferlad/082996faeb2168a76ab4 does it | 14:47 |
dooferlad | voidspace: provided your maas is called "maas" | 14:47 |
voidspace | dooferlad: my maas usually is called maas | 14:53 |
voidspace | dooferlad: ah, so they were allocated with maas | 14:53 |
voidspace | I wonder how they got allocated | 14:53 |
voidspace | we must have allocated them, then something *else* went wrong so we marked the address as unavailable and tried another one | 14:53 |
voidspace | still worrying | 14:53 |
voidspace | dooferlad: hmmm... maybe not | 14:54 |
voidspace | I'm slightly confused but never mind, if it worked then great | 14:54 |
dooferlad | voidspace: juju destroy-environment -y --force maas | 14:54 |
dooferlad | voidspace: I bet repeatedly using that doesn't help | 14:54 |
voidspace | dooferlad: hah, yes | 14:54 |
voidspace | dooferlad: they just remained allocated from previous runs | 14:54 |
voidspace | that makes sense | 14:55 |
voidspace | if you use maas 1.8 and trunk it should no longer be an issue | 14:55 |
voidspace | they'll now be freed correctly | 14:55 |
dooferlad | I am | 14:55 |
voidspace | using devices | 14:55 |
voidspace | in theory... | 14:55 |
dooferlad | though I ran out when using net-cli | 14:55 |
voidspace | the devices are correctly cleared and we're assuming maas also releases their IP addresses | 14:55 |
voidspace | that may not have the new devices stuff in it | 14:55 |
voidspace | you can tell - when you create a container check if a corresponding device is created (visible in the MAAS UI) | 14:56 |
dooferlad | Oh, that's new (to me): ERROR juju.cmd supercommand.go:429 upgrade in progress - Juju functionality is limited | 14:57 |
dooferlad | voidspace: ohh, now there are devices! Shiny! | 15:05 |
voidspace | right EOW | 15:35 |
voidspace | happy weekend everyone | 15:35 |
dimitern | dooferlad, hey | 15:37 |
dooferlad | Hi | 15:38 |
dimitern | dooferlad, did you manage to fix your ip addresses issues? | 15:38 |
dimitern | dooferlad, I have a tool for this btw | 15:38 |
dooferlad | Yep. Pasted above | 15:38 |
dooferlad | Well, mine is pasted above | 15:39 |
dimitern | dooferlad, ah :) good - but here's mine as well - expectedIP | 15:39 |
dimitern | ?! | 15:39 |
dimitern | https://github.com/dimitern/go-tools | 15:39 |
dooferlad | dimitern: cool, will try to remember that is there. | 15:43 |
dooferlad | I 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 |
dooferlad | but for the moment I am out of energy, so calling it a day. | 15:44 |
dimitern | dooferlad, We will do that soon | 15:45 |
dimitern | dooferlad, have a nice weekend :) | 15:45 |
perrito666 | bbl | 16:00 |
bogdanteleaga | do we support instance type constraints on azure? | 16:05 |
dimitern | bogdanteleaga, looking at provider/azure - selectInstanceTypeAndImage it seems we do | 16:14 |
bogdanteleaga | dimitern: yup, I managed to get it working in the end | 16:15 |
bogdanteleaga | sadly, I don't think it matters since I wanted an SSD for the main drive and D# instances provide it only for a secondary drive | 16:16 |
rogpeppe | anyone know of an easy way of getting just the public address of a service from a juju status? | 16:24 |
rogpeppe | i'm wondering if there's a command buried somewhere along the same kind of lines as juju api-endpoints | 16:25 |
mgz | rogpeppe: a service doesn't have a public address | 16:35 |
mgz | rogpeppe: units of the service do | 16:35 |
rogpeppe | mgz: i mean a unit, sorry :) | 16:35 |
bogdanteleaga | the closest I get is juju status --format=oneline | 16:35 |
rogpeppe | bogdanteleaga: that + awk or sed will do the trick, thanks | 16:36 |
mgz | I've just used --format=json and a jsonpath tool thing in the past | 16:37 |
bogdanteleaga | juju status --format=oneline | cut -d ' ' -f 3 | 16:37 |
rogpeppe | bogdanteleaga: yeah. | 16:37 |
bogdanteleaga | cut is a bit easier, at least for me :) | 16:37 |
rogpeppe | bogdanteleaga: i haven't used cut in years :) | 16:37 |
rogpeppe | bogdanteleaga: i can never remember whether field numbers start at 0 or 1 | 16:37 |
bogdanteleaga | heh, I always keep trying until I find it | 16:38 |
bogdanteleaga | awk always seemed hard to use | 16:38 |
rogpeppe | bogdanteleaga: i'll probably do: addresses=$(juju status --format oneline | awk '/^- myservicename/ {print $3}') | 16:38 |
bogdanteleaga | but then, it does way more | 16:38 |
rogpeppe | bogdanteleaga: awk is kinda awkward :) | 16:39 |
bogdanteleaga | I didn't wanna use that one :D | 16:39 |
rogpeppe | bodie_: i actually only realised the pun after i pressed return | 16:40 |
alexisb | folks, do I have developers still around in US hours? | 17:36 |
katco | alexisb: yep | 17:36 |
alexisb | we have a hot issue I need someone to take | 17:36 |
katco | alexisb: you should have natefinch, ericsnow, perrito666, and cherylj at your disposal | 17:37 |
katco | cherylj: hey you around? | 17:40 |
natefinch | alexisb: still need help? | 18:06 |
alexisb | natefinch, nope | 18:06 |
natefinch | alexisb: excellent | 18:07 |
perrito666 | ok, both branches pushed :) I am done | 22:21 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!