/srv/irclogs.ubuntu.com/2016/11/15/#juju-dev.txt

thumpermenn0: meeting?00:16
menn0thumper: browser is refusing to connect00:17
thumpertried turning it off and on again?00:18
menn0thumper: my connecitivty to bluejeans seems flaky today00:30
menn0thumper: internet is working otherwise00:30
* thumper nods00:30
rock_redir/rich_k: Thank you for escalating my issue. How do I contact UIteam as <rich_h> mentioned.05:10
redirrock_: try #juju-gui here on freenode05:11
mhiltonrock_: I can probably help you out05:12
mhiltonrock_: what do you need?05:13
rock_redir: Thanks.05:13
rock_mhilton : Thank you.05:13
redirrock_: np, sorry I couldn't be of more help05:14
rock_mhilton: I will send clear info.05:15
rock_redir: No problem. I am happy with your support.05:15
rock_mhilton: Compllte issue details: http://paste.openstack.org/show/589216/05:17
mhiltonrock_, thanks I'll take a look05:17
rock_mhilton: Ok. Thank you.05:18
rock_mhilton: Hmmm. thank you very much. One main issue resolved . but we have another issue as I mentioned in the Bug https://github.com/CanonicalLtd/jujucharms.com/issues/37209:17
mhiltonrock_: the old kaminario are now no longer available.10:33
rogpeppevoidspace: hiya10:45
rogpeppeanyone know what the best way is to get all logs from a HA controller?10:47
mgzrogpeppe: in what fashion? you can just look at log files on all the machines, but there's also an api call that gathers it up for you10:50
rogpeppemgz: do you have a moment for a chat?10:50
mgzrogpeppe: sure, lets10:50
voidspacerogpeppe: hey, hi11:09
rogpeppevoidspace: hiya11:09
rogpeppevoidspace: sorry, i was just fishing for people that might know about juju loggging :)11:09
rogpeppevoidspace: mgz bit11:09
voidspacerogpeppe: hah, I used to know about logging - but we changed it :-)11:10
rogpeppevoidspace: me too :)11:10
voidspacerogpeppe: mgz is handy to have around...11:10
rogpeppevoidspace: that he is11:10
rock_mhilton: Thank you very much. My all issues resolved.11:18
mhiltonrock_: glad to hear it, happy jujuing11:19
voidspacereally short PR for someone: https://github.com/juju/juju/pull/656711:27
voidspacerogpeppe: just FYI, I changed the cookie file locking mechanism in persistent-cookiejar to use juju/mutex11:27
voidspacerogpeppe: https://github.com/juju/persistent-cookiejar/pull/1911:27
voidspacerogpeppe: PR 6567 switches to using the newer version11:28
rogpeppevoidspace: hmm, not sure about that11:28
rogpeppevoidspace: why?11:28
voidspacerogpeppe: this addresses https://bugs.launchpad.net/juju-wait/+bug/163236211:28
mupBug #1632362: error during juju-wait ERROR cannot load cookies: file locked for too long; giving up: cannot acquire lock: resource temporarily unavailable <eda> <oil> <juju:In Progress by mfoord> <Juju Wait Plugin:Invalid> <https://launchpad.net/bugs/1632362>11:28
voidspacerogpeppe: file based locking is unreliable (possibility of stale lock files - that's what we found in juju and why we switched to juju/mutex)11:28
voidspacerogpeppe: plus the exponential backoff in the old locking mechanism meant it would only poll the lockfile 4 times or so11:29
rogpeppevoidspace: it didn't use file-based locking11:29
rogpeppevoidspace: except when absolutely necessary11:29
rogpeppevoidspace: the exponential backoff is another issue11:29
rogpeppevoidspace: which indeed sounds like a bug11:30
voidspacerogpeppe: pretty sure the old lockFile function used file based locking11:30
rogpeppevoidspace: it used flock11:30
rogpeppevoidspace: which is file-based but doesn't suffer from the stale lock file issue11:30
voidspaceright, juju/mutex is still good :-)11:31
voidspaceand standardising on a single file locking mechanism is good11:31
rogpeppevoidspace: for future reference, please squash commits down to a single commit before submitting11:32
voidspacekk11:32
rogpeppevoidspace: that's true of all our projects FWIW11:33
rogpeppevoidspace: 100us seems like a bit quick if you're going to be polling for a long time11:35
voidspacerogpeppe: isn't it ms?11:43
voidspacerogpeppe: ah, it's not...11:44
rogpeppevoidspace: not by my reading of the code11:44
voidspacerogpeppe: yeah, I think you're right11:44
voidspacerogpeppe: every 100us is probably too much11:44
rogpeppevoidspace: originally it was 100us because it would exponentially backoff11:44
rogpeppevoidspace: which i think is still a good thing to do11:44
voidspaceyeah, that means I'm wrong about the number of polls too11:44
rogpeppevoidspace: it should probably exponentially back off up to a maximum delay11:44
rogpeppevoidspace: which is easy to obtain11:44
voidspacesure11:45
rogpeppevoidspace: but not using juju/mutex11:45
voidspacewell, I think a fixed number of polls is fine too11:45
voidspaceand we really want to just maintain one set of locking code11:45
voidspacebut you're right 100us is too frequent I'll look again11:46
voidspaceand I think the whole retry loop within persistent-cookiejar may be unneeded with juju/mutex11:46
rogpeppevoidspace: agreed, but i think exponential backoff is an appropriate strategy, but not one that juju/mutex uses11:49
rogpeppevoidspace: tbh i'm not sure that the locking package should be doing the retry loop - it's easy for callers to do that and that gives them all the flexibility they need11:49
voidspacerogpeppe: I agree it's an appropriate strategy, I don't think fixed polling is inappropriate though, it simplifies the code and means we use one consistent file locking mechanism throughout11:49
voidspacerogpeppe: and hopefully it fixes a critical bug too11:50
voidspacewe'll see11:50
voidspacerogpeppe: I'm not going to debate it endlessly unless you can suggest another fix for the bug, sorry11:51
voidspacecoffee - brb11:51
rogpeppevoidspace: i'll take a longer look at the bug in a bit - i'm on a call currently11:51
rogpeppemgz, mhilton: i just raised https://bugs.launchpad.net/juju/+bug/164192711:53
mupBug #1641927: debug-log on a model doesn't log any provisioner events <juju:New> <https://launchpad.net/bugs/1641927>11:53
voidspacerogpeppe: ok - the underlying issue (I'm pretty sure) is the "juju status" attempts to read the cookie file for all models simultaneously11:59
rogpeppevoidspace: really? it should only be reading the cookie file once11:59
voidspacewell, maybe "pretty sure" is the wrong phrase...11:59
rogpeppevoidspace: for each juju command11:59
voidspacerogpeppe: I'll take a look - the error is that acquiring the lock times out in "juju status" when there are multiple models12:00
rogpeppevoidspace: but i guess you'd have significant contention if you're running lots of concurrently juju comands12:00
voidspacerogpeppe: it's triggered by the juju-wait plugin that polls status12:00
rogpeppevoidspace: if this is the problem then your fix won't address the issue, i reckon12:00
rogpeppevoidspace: ah, do you know where that lives?12:01
voidspacerogpeppe: reading the cookie file should not take very long12:01
rogpeppevoidspace: indeed12:01
voidspacerogpeppe: no, but the bug is in "juju status" not the plugin itself12:01
voidspaceand the specific bug is the timeout in persistent-cookiejar12:01
rogpeppevoidspace: so the plugin invokes juju status for each model?12:01
voidspacerogpeppe:: ah, not sure about that12:02
rogpeppevoidspace: do you know where the juju-wait plugin source code is?12:02
voidspacerogpeppe: no, reading the bug report - it's for a given model12:02
voidspacerogpeppe: I believe https://code.launchpad.net/juju-wait12:03
rogpeppevoidspace: thanks12:03
voidspaceI'm looking now12:03
voidspaceand specifically: https://git.launchpad.net/juju-wait/tree/juju_wait/__init__.py12:04
voidspaceleadership_poll can call juju concurrently.12:09
voidspacerogpeppe: I'm pretty sure if we take this to the tech board though, they will greatly prefer juju/mutex over an flock approach - as (if my memory is correct) we still had problems with that in juju which is *why* juju/mutex was written12:10
voidspacerogpeppe: and if the bug is genuinely lock contention then my changes *should* fix it - although they're not quite correct (polling too many times currently and the loop left in)12:11
rogpeppevoidspace: juju/mutex uses flock in some cases12:11
rogpeppevoidspace: unix domain sockets are not a decent solution12:11
rogpeppevoidspace: as they cannot work if you're using a shared fs12:11
voidspacewell, I can take that to the tech board and see what they say - but I still need to fix the bug12:12
rogpeppevoidspace: did you manage to reproduce the bug?12:12
voidspacerogpeppe: nope12:13
rogpeppevoidspace: so how do you know you've fixed it?12:13
voidspacerogpeppe: I provided custom binaries for the OIL folk to try12:13
voidspacerogpeppe: they want to wait until it gets into a PPA it seems12:13
voidspacerogpeppe: so getting the change into develop is the best way to find out currently - see rick's comment on the bug12:14
voidspacebut if it *is* lock contention (or stale lock file), it should be fixed12:14
rogpeppevoidspace: the reason juju/mutex was written was because the old juju lock mechanism relied on actual file creation12:26
rogpeppevoidspace: and the one that persistent-cookiejar is using was NIH12:27
rogpeppevoidspace: although that last reason is not necessarily the case :)12:27
voidspaceheh12:27
voidspacerogpeppe: I still think, and I think others are likely to agree, that maintaining a single file locking mechanism is a great benefit12:28
voidspacerogpeppe: I'll talk to the team about it in our standup12:28
voidspacerogpeppe: I'll also fix the problems with the existing head of master on persistent-cookiejar and if necessary we can just roll all of that back and just tweak the parameters of the old mechanism12:29
voidspacerogpeppe: it's still the case that once the exponential back-off gets to 100ms delay it only does 4 *further* polls12:30
voidspacerogpeppe: so genuine lock contention is still a contender for cause of the bug - and yes I know we discussed above a way to fix that12:30
rogpeppevoidspace: yeah, it should back off to 100ms and then stay there for 2s or so12:30
voidspacecool12:31
voidspacerogpeppe: I can raise a bug against juju/mutex that it should allow exponential backoff (to a MaxDelay)12:33
rogpeppevoidspace: tbh i'd kinda prefer if the file locking mechanism was orthogonal to the retry loop12:33
rogpeppevoidspace: (which isn't to say that there shouldn't be a standard higher level function to acquire a lock with polling)12:33
voidspacewhich is *effectively* what juju/mutex provides, that "higher level function" no?12:34
rogpeppevoidspace: juju/mutex combines both.12:35
rogpeppevoidspace: the retry strategy depends quite a bit on what you're locking with respect to12:36
voidspacerogpeppe: I understand that you dislike that, I'm not really clear why (other than structural distaste)12:36
voidspaceI've raised an issue against juju/mutex *anyway*12:37
voidspaceah, "tweakable retry strategy" - ok, understood12:40
voidspaceI can explain this clearly to the team I think - we have two ways forward (revert and tweak or switch to juju/mutex)12:40
voidspaceif we don't have consensus or feel we have enough understanding we'll take it to the tech board12:40
voidspacerogpeppe: and I'll copy you in12:41
urulamavoidspace: so, by changing this without consulting with macaroon implementors you guys now will cover any possible problems that will arise from it, as we've used cookiejar for a while without any problems ... any macaroon issues on services in production and controller and so on, right?12:42
voidspaceurulama: this is shared code by the juju team in the same way as any other code12:42
voidspaceurulama: unless you want to take on this juju bug that seems to be caused by it?12:42
urulamavoidspace: sure. np. just stating.12:42
voidspaceurulama: I do not own this code, I will help where I can12:43
urulamaall i am saying is i'm sure it has been properly tested and QA on all clients that depend on it12:43
voidspaceurulama: I understand, this is true of any changes to shared code - there are risks12:44
voidspaceurulama: and yes, it should be QA'd before any clients switch to the new version12:44
voidspaceurulama: just like any other change12:44
voidspaceurulama: I won't be paralysed by that though12:44
voidspaceurulama: reverting is easy :-)12:45
urulamano need to revert, just stating that any change of the shared code needs to be properly tested before landing12:45
voidspaceurulama: I mean if it causes problems12:46
rogpeppevoidspace: from an operational point of view I'm concerned that the persistent-cookiejar package is used by a bunch of external users (e.g. https://godoc.org/github.com/juju/persistent-cookiejar?importers) and that this breaks the existing semantics that the file is protected when using a shared filesystem12:46
voidspacerogpeppe: I'm going to write this up - it is protected on a shared filesystem precisely *because* then it uses file based locking, right?12:47
rogpeppevoidspace: yes12:47
rogpeppevoidspace: if you want to lock a file, a file-based lock is a good way to do it12:47
voidspacerogpeppe: right, and (I believe) the experience/consensus of those who wrote juju/mutex is that file based locking *cannot* be made reliable (my understanding)12:48
rogpeppevoidspace: so if it's ok, i'm going to revert it for the time being and fix the timeout issue12:48
rogpeppevoidspace: i'm afraid i don't believe that12:48
voidspacerogpeppe: so I think there is a technical disagreement here12:48
voidspace*sigh*12:48
voidspacerogpeppe:  I disagree with your decision12:49
rogpeppevoidspace: the contention issue would have happened regardless of whether it was file-based or unix-domain-socket-based locking12:49
voidspaceright, but with unix-domain-socket-based locking stale lock files are *not* possible12:49
rogpeppevoidspace: that's true with flock too12:49
rick_hrogpeppe: just for context this is a critical stakeholder issue preventing oil and others from functioning. We need a fix asap12:49
voidspacerogpeppe: if you can get contention fixed today we can try that and see if it resolves the issue12:50
rick_hrogpeppe: so if we need a better path please help identify and move on that path with as much urgency as possible.12:50
rogpeppevoidspace: i'll do it now12:50
voidspacerogpeppe: a longer timeout and a max delay12:50
voidspacerogpeppe: ok, thanks12:50
rogpeppevoidspace: should only take a 10 minutes12:50
voidspacerogpeppe: if that doesn't fix it we'll have to look at alternatives - I will work harder on a repro before doing that12:50
rogpeppevoidspace: https://github.com/juju/persistent-cookiejar/pull/2113:08
voidspacerogpeppe: thanks, looking13:25
voidspacerogpeppe: yep, LGTM (making sensible assumptions about the semantics of retry)13:27
voidspacerogpeppe: land it and we'll try it13:27
voidspacerogpeppe: ta13:36
voidspacerogpeppe: thanks for doing it so quickly13:36
rogpeppevoidspace: thanks for the review :)13:36
voidspace:-)13:37
voidspacenatefinch: mgz:  macgreagoir:  very short review if you  have time: https://github.com/juju/juju/pull/656813:47
rick_hmacgreagoir: ping, can you peek at https://github.com/juju/juju/pull/6563 please?13:55
mgzvoidspace: lgtm13:55
voidspacemgz: you rock13:58
mgzrick_h: that change seems plausable, ideally we'd qa it13:59
rick_hmgz: the PR?13:59
mgzrick_h: yeah14:00
rick_hmgz: cool, I'm curious. It mentions firewall rules, but rackspace didn't have a firewall on things. /me wonders14:01
mgzrackspace is special14:01
mgzthey don't really have any of the networking components enabled14:01
mgzso, we don't create security groups on rackspace, instead use a controller-sshs-in-and-futzes-with-conf method14:02
macgreagoirrick_h: belated ack on 656814:12
rick_hmacgreagoir: ty14:15
deanmanevilnickveitch: Is it possible to syntax highligh with a specific color a specific word inside a code snippet ?15:55
mgzhml: wotcha, got some time to catch up in a sec?15:56
evilnickveitchdeanman, Not the way we currently do it, no :(15:56
evilnickveitchThe source just marks something as code. The syntax highlighting is handled by the javascript on the site15:57
deanmanevilnickveitch: add image of the actual output then or adding images in general is not encouraged?15:58
evilnickveitchdeanman, images are fine. In fact, we use quite a few images for output because of this15:58
evilnickveitchwe just don't use them for commands etc, or stuff that people may want to cut and paste15:59
evilnickveitchdeanman, was there a specific part of docs you had in mind for this?15:59
deanmanevilnickveitch: https://jujucharms.com/docs/stable/help-openstack16:00
deanmanevilnickveitch: `list-clouds` command doesn't seem to prefix with `local` anymore. Instead it colors the custom cloud as seen here https://s15.postimg.org/u8rz0stej/Screen_Shot_2016_11_15_at_17_21_21.png16:01
hmlmgz: i’m here16:02
deanmanevilnickveitch: Should i go forth and make minor wording adjustment and include image or any other suggestion ?16:02
evilnickveitch deanman yeah, there were some late additions to the output for 2.0, and we haven't tidied them all up yet16:03
evilnickveitchdeanman, please do!16:03
evilnickveitchdeanman, you know where the docs live right? - https://github.com/juju/docs16:04
mgzhml: so, no alexis today but I think we want to go ahead and get your branches landed16:04
mgzhml: there's also https://github.com/juju/juju/pull/6563 which will need to be rebased on your change16:05
hmlmgz: sure - i don’t have permissions to do the $$merge$$ thing.16:05
hmlmgz: i haven’t seen anything yet today, but has the juju code been reviewed?  i know you had some high level questions.16:05
hmlmgz: i think goose has to go first, then update dependencies with goose16:05
mgzI only have some mini points on the openstack provider code16:06
mgzand yeah, goose needs to happen first16:06
mgzso the juju change can include the dependency update16:06
hmlmgz: got it - i’m in CA teaching a class for canonical this week.  i have time in the AM to do the code udpates, since I’m still on east coast time.  and some in the evenings as well16:09
mgzhml: I did have one additional thought which would not make you happy... reading through the provider changes made me less and less happy about the V2 on the end of all the functions, really feels like that should be an aspect of the client interface you get rather than the methods on it16:10
mgzI don't think it makes sense to change that as part of this branch though16:10
hmlmgz: for neutron that would be okay - however in glance, there are different functions for GetImages within the same package.  one uses compute v1 and one uses the image service v2.  what to do in that case?16:11
mgzyou'd need two glance clients, which would at least be explicit about using multiple versions16:12
hmlmgz: that’s a long term change idea for sure - but like you said, it might not work for this set of pr16:13
mgzthe structs also make sense to have the version emedded rather than being package scoped or similar I think16:13
hmlhml: if that change is necessary can we chat on it later? or in email?  i have to run shortly for my ride16:19
mgzhml: it's not needed. I'm leaving some general comments in the juju pr, and will approve the goose pr16:20
mgzfeel free to tackle later today, email me if you have any concerns16:20
hmlhml: thank you.16:20
hmlmgz: thank you.16:20
mgzI'd say no, thank you... but you already did :P16:20
voidspacerick_h: hmmm... it doesn't look to me like the devel ppa is building 2.1 (our develop branch)17:18
voidspacerick_h: https://launchpad.net/~juju/+archive/ubuntu/devel17:18
voidspacerick_h: so I might need to get my change into the 2.0 branch to get it into the ppa17:18
rick_hI thought we were not doing the ppa voidspace17:19
rick_hI was just talking about the snap. And the snap is rebuilt once a day17:20
voidspaceah17:20
voidspacerick_h: your comment is "We won't have a PPA of this until it lands/hits devel and then we'll have a dev snap available."17:20
voidspacerick_h: which I interpreted as "it will then be in a ppa"17:20
voidspacerick_h: but you meant, then there will be a snap17:21
voidspacerick_h: my mistake17:21
voidspacerick_h: where are the dev snaps (not on uappexplorer it seems)?17:23
rick_hNo since it's not stable. Grabbing lunch, search the mailing list please17:24
voidspacerick_h: ok17:24
rick_hI'll look when I'm back at my computer17:24
voidspacethere is a juju one there though, a 2.0 beta from July17:24
voidspacerick_h: I'll find it17:24
voidspacerick_h: snap install juju --edge --devmode17:31
perrito666could anyone https://github.com/juju/juju/pull/6564 ? its a rather long one (sorry, 700 but it was a change in the env interface so it spanned in many files)17:40
perrito666will run an errand and be back later17:41
perrito666chers17:41
jcastrorick_h: is there an easy way to see which version of juju is in which channels of the snap store?17:44
voidspacejcastro: I couldn't find one17:46
voidspaceit looks like even the --edge channel might be 2.0 :-/17:46
jcastroyeah I'm on 2.0.117:47
voidspacethat's an issue for me then :-/17:47
voidspaceI'll create a PR for 2.0 with my fix in17:47
rick_hvoidspace: hmm, balloons is the --edge the daily? or is it a different name? /me doesn't recall17:58
voidspacerick_h: that command line invocation was the one suggested on the mailing list17:58
rick_hvoidspace: for the daily?17:58
voidspacerick_h: I have a PR against 2.0, which I'm sending to nate to review17:58
voidspacerick_h: yes, let me find the mail (from August)17:58
rick_hvoidspace: ah ok coolio then...but booo that it's 2.0 and not 2.117:59
rick_hseems like worth a note up to the QA folks because I thought it was pointed at develop, or maybe staging branches now17:59
voidspacerick_h: I'm shortly going EOD and nate is curerently offline - so I've asked him to land it on 2.018:00
rick_hvoidspace: rgr18:00
voidspacerick_h: I'll contact them, staging gets updated sporadically, so develop would be much more useful for us18:00
hoenirhttps://github.com/juju/juju/pull/6570 any thoughts on this?18:00
rick_hvoidspace: +118:00
voidspacerick_h: and "juju status" does show the leader, so I've filed a bug against juju-wait18:00
rick_hvoidspace: awesome, still good to fix the bug but also good to help them use changes that have been made18:01
voidspaceyep18:01
rick_hperrito666: or redir, either of you up for reviewing/QA'ing hoenir's branch above please?18:02
redirrick_h: looking18:05
redirhoenir: PR 6570?18:06
hoenirredir, yeah18:13
=== frankban is now known as frankban|afk
redirhoenir: looks good with a couple minor nits18:45
babbageclunkhey veebers - any idea why this build failed? http://juju-ci.vapour.ws/job/github-check-merge-juju/212/20:49
babbageclunkveebers: I can see that it says trusty failed, but I can't see any reason in trusty.out/err20:49
veebersbabbageclunk: I'll take a look now20:50
babbageclunkveebers: thanks!20:50
babbageclunkveebers: searching for "--- FAIL" normally works in that output, but it doesn't find anything for me this time.20:50
babbageclunkveebers: oh, sorry - found it.20:52
veebersbabbageclunk: ah, was just going to say, look for "panic: close of closed channel" in .out20:52
veeberserr trusty-out.log20:53
babbageclunkveebers: yup, that's what I found too. Thanks!20:53
veebersnw20:55
babbageclunkveebers: huh, annoying. That same test passes for me locally - I guess a race between the test closing the channel and the code doing it?20:59
veebersbabbageclunk: possibly. You could always try a rebuild. If that fails too then there is a proper issue there and not a transient one21:01
babbageclunkveebers: Might do that anywhere for an extra data point.21:02
babbageclunkduh anyway21:02
babbageclunkhelp! I can't see how this line triggers "close of closed channel" panics! https://github.com/juju/juju/pull/6566/files#diff-0b1eab7c51bd2977a8e922580b9cf3bbR15421:38
anastasiamacbabbageclunk: is it consistent or intermittent?21:39
babbageclunkanastasiamac: I can't get it to fail locally, only in jenkins21:39
babbageclunkanastasiamac: but it seems consistent there.21:39
anastasiamacbabbageclunk: :(21:40
perrito666Alexisb i am right to think you are off today?21:53
babbageclunkperrito666: she's so off she's not even in here.21:59
anastasiamacperrito666: wait until standup :) she might join then \o/22:01
perrito666redir: anastasiamac I am in a weird limbo where I dont know which of you is OCR :p so https://github.com/juju/juju/pull/6564 let me give you this link to both22:11
anastasiamacperrito666: m in wednesday so for me it's reed22:12
anastasiamacperrito666: but i can peek in about an hr if the timing suits?22:12
perrito666but I think from reed perspective you are today and he is tomrrow, I hate relativism22:14
* redir hates absolute relativism22:17
redirfunny, it's tuesday here.22:17
redir:)22:17
anastasiamacperrito666: i'll look soon :)22:17
perrito666bbl sport22:27
babbageclunkanastasiamac: gah, worked it out - someone else (probably axw) had fixed the close channel problem in a better way that merged cleanly with mine - so it had both closes.22:52
anastasiamacbabbageclunk: ur patience and perseverance is inspiring \o/ tyvm :D23:07
babbageclunkanastasiamac: :) Would be better if I could just work these problems out quicker - then I wouldn't have to be so patient!23:19

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