[00:00] <wallyworld> hpidcock: yeah, should be a const, i can abort the merge if tlm wants to fix
[00:00] <hpidcock> nah all good
[00:01] <wallyworld> can be drive by nxext time
[00:01] <hpidcock> yep
[00:31] <wallyworld> hpidcock: FYI pr landed, release doc started, https://docs.google.com/document/d/13OZtXkx_0lfa3a6W6xRYqlY9p3MQT0KLtFRU49acXhM/
[00:38] <hpidcock> wallyworld: awesome!
[00:40] <wallyworld> hpidcock: or thumper: here's 2.8-rc into 2.8 https://github.com/juju/juju/pull/11600 clean merge
[00:41] <hpidcock> wallyworld: any merges?
[00:41] <hpidcock> merge conflicts*
[00:41] <hpidcock> oh
[00:41] <wallyworld> np :-)
[00:41] <hpidcock> you already said clean merge
[00:41] <wallyworld> yeah
[00:42] <hpidcock> approved
[00:42] <wallyworld> ta
[00:42] <hpidcock> wallyworld: I'm going to start the release
[00:42] <wallyworld> ok, sgtm
[00:44] <wallyworld> hpidcock: maybe wait for buildjuju to finish to reduce load on slaves?
[00:45] <hpidcock> wallyworld: yeah, just killed the old ci-runs
[00:45] <hpidcock> waiting for this one to at least pass build
[00:45] <wallyworld> +1
[00:49] <tlm> tiny pr if anyone has a few minutes https://github.com/juju/juju/pull/11601
[00:52] <wallyworld> tlm: thre's also uniter.go
[00:52] <tlm> ?
[00:52] <wallyworld> same pattern
[00:53] <wallyworld> if we fix in caasoperator should also fix in uniter.go as well
[00:53] <wallyworld> original code was from 2015
[00:53] <tlm> ah ok makes sense
[00:53] <wallyworld> i wonder if we needed the mutex back then
[00:53] <tlm> thought I had missed a use case
[00:53] <tlm> I was thinking the func was called multiple times but not the case
[00:53] <wallyworld> no
[00:55] <wallyworld> tlm: here's the commit message
[00:55] <wallyworld> I believe that [this recent ppc64 failure](http://reports.vapour.ws/releases/3059/job/run-unit-tests-trusty-ppc64el/attempt/3804#highlight), is caused by a race between the restartWatcher and watcher cleanup closures.
[00:55] <wallyworld> we should look to be sure we're not reintroducing a test issue
[00:56] <tlm> that for me? Also link doesn't work
[00:56] <wallyworld> no link won't work, it's an old CI server
[00:56] <tlm> ah cool
[00:56] <wallyworld> i just wanted to point out the commit message and why the mutex was added
[00:57] <tlm> ah ok, mutex isn't doing anything now besides adding some noops
[00:57] <wallyworld> we should think about if removing it would reintroduce any test failures
[00:57] <wallyworld> yeah, it does appear to be redundant
[00:58] <tlm> if we get test failures out of that then It would be a miracle that it has been working for so long.
[00:58] <wallyworld> tlm: ah, the addCleanup() had the mutexes
[00:59] <wallyworld> and they have been removed
[00:59] <wallyworld> for some reason
[00:59] <tlm> ah k
[00:59] <wallyworld> this line u.addCleanup(func() error
[01:00] <wallyworld> but it's not there anymore
[01:00] <tlm> updated pr
[01:00] <tlm> hey my first uniter change wallyworld. I have battle scars now :)
[01:01] <wallyworld> lol
[01:01] <wallyworld> tlm: i think we changes how stuff is shutdown since 2015 so mutex is now not not needed
[01:01] <tlm> yep
[01:02] <wallyworld> lgtm
[01:02] <tlm> made juju 0.000005% faster
[01:05] <wallyworld> progress
[01:06] <timClicks> "what's new in juju 2.8" should now be feature complete https://discourse.juju.is/t/whats-new-in-juju-2-8/2859
[01:08] <wallyworld> awesome ty
[01:09] <wallyworld> timClicks: the vsphere section should mention the new credential folder attribute?
[01:10] <timClicks> actually just noticed that the new/changed hooks section is also quite sparse
[01:13] <wallyworld> timClicks: min-juu-version isn't new, it's been there since 1.24 i think. What is new is that a charm says "2.8.0" to signal it doesn't need a k8s PV created for it since it (the charm) has been updated to use the new controller storage facility
[01:47] <thumper> why do we have a package level variable for the watcher in the first place?
[02:01] <hpidcock> thumper?
[02:19] <thumper> hpidcock: from this https://github.com/juju/juju/pull/11601
[02:19] <thumper> the lock was removed, but next to it was a package level watcher
[02:19] <thumper> which seems wrong to me
[02:20] <hpidcock> they are function variables
[02:23]  * thumper looks again
[02:23]  * thumper sighs
[02:23] <thumper> I should have expanded the diff
[02:23] <thumper> sorry for the noise
[02:24] <thumper> https://github.com/juju/juju/pull/11602 for a boring review
[02:28] <tlm> i an do it
[02:30] <babbageclunk> tlm: I'm looking
[02:31] <tlm> ah cheers babbageclunk, my only feed back thus far and it may be there is that logger should be an interface type like the pattern in new workers
[02:31] <babbageclunk> (I should have said I was)
[02:31] <babbageclunk> it is one isn't it?
[02:32] <tlm> maybe, I hadn't got that far yet
[02:32] <tlm> as in type Logger interface { DebugF() }
[02:32] <babbageclunk> yup yup
[02:33] <babbageclunk> I can't remember why we started doing that though - was it just for ease of testing?
[02:33] <tlm> Yeah make duck typing in testing easier
[02:33] <tlm> makes*
[02:34] <babbageclunk> I have a vague memory of there being something else as well but I can't think what it is.
[02:35] <tlm> maybe for regex testing log messages in tests ?
[02:36] <babbageclunk> thumper: approved
[02:38] <wallyworld> thumper: last one for today, also clean merge https://github.com/juju/juju/pull/11604
[03:57] <wallyworld> hpidcock: since thumper is ignoring me, perhaps you can +1 2.8->develop, similar to 2.8-rc->2.8 https://github.com/juju/juju/pull/11604; clean merge, no accidental version updates
[04:01] <hpidcock> wallyworld: ok looking
[04:03] <hpidcock> wallyworld: approved
[04:03] <wallyworld> tyvm
[04:07]  * thumper sighs
[04:07] <thumper> I need to get these alerts sorted
[04:07] <thumper> wallyworld: sorry
[04:08] <wallyworld> thumper: no worries, i'm not really mad, just trolling you :-)
[04:25] <hpidcock> wallyworld: is there a fast way to mark all bugs in a release as released?
[04:25] <hpidcock> in a milestone*
[04:27] <wallyworld> only using the python clp client
[04:27] <wallyworld> IIANM
[04:27] <wallyworld> *lp, not clp
[05:57]  * thumper knocks off a few more todos for the merging of agents
[05:57]  * thumper EODs
[05:57] <thumper> see ya tomorrow folks
[05:57] <thumper> wallyworld: could I get you to do a pass over the latest stop the line tests?
[05:58] <thumper> just to see why they are failing, and email crew?
[05:58] <thumper> especially given RC2
[05:58] <wallyworld> ok
[05:58] <thumper> ta
[08:03] <stickupkid> manadart, ping when you get a chance...
[08:07] <manadart> stickupkid: Pong.
[08:07] <stickupkid> daily?
[09:47] <manadart> stickupkid: https://github.com/juju/juju/pull/11606
[10:24] <stickupkid> manadart, if MapWithSpaceNames passes in a lookup, but lookup is nil, should we return nil or the underlying bindings?
[10:24] <stickupkid> manadart, I suspect we should return nil, but that gives you nothing
[10:31] <manadart> stickupkid: If the lookup is length zero, we do what it does now and retrieve the spaces from state.
[10:31] <stickupkid> manadart, why?
[10:32] <stickupkid> manadart, why not push the logic out as a dependency?
[10:33] <stickupkid> manadart, just make it implicit that we now require the network.SpaceInfos to get you MapWithSpaceNames...
[10:33] <stickupkid> it's less magicial
[10:33] <manadart> stickupkid: I guess it's doable. Not many call sites.
[10:33] <stickupkid> manadart, that's my thought atm
[10:34] <stickupkid> manadart, anything magical I'm tending to run away from atm
[10:34] <manadart> stickupkid: In that case, a length zero lookup returns a `errors.NotValidf("empty space lookup")`.
[10:34] <stickupkid> wicked, like it
[12:19] <manadart> stickupkid: https://github.com/juju/juju/pull/11607
[12:44] <rick_h> stickupkid:  if I deploy a bundle with pylibjuju with a CMR am I asking for trouble?
[12:45] <rick_h> stickupkid:  on the consuming side
[12:50] <stickupkid> rick_h, probably
[12:51] <stickupkid> rick_h, let me check if we implemented all the lookups
[12:51] <rick_h> booooooooo
[12:53] <stickupkid> rick_h, it depends, we handle consuming of offers, but we might not handle everything.
[12:53] <rick_h> stickupkid:  ok, guess I'll see how far I get ty
[12:53] <stickupkid> rick_h, indeed
[14:11] <achilleasa> what can possibly go wrong here? https://github.com/juju/juju/blob/develop/network/network.go#L233-L252
[14:11] <achilleasa> (hint: look at the map access patterns)
[14:18] <stickupkid> achilleasa, I don't like the fact it modifies the original map, creeps me out
[14:18] <achilleasa> stickupkid: if you run out of space in the map, a new backing store will be allocated and the _reference_ passed to the func gets modified. However, the caller still has the old map ;-)
[14:19] <stickupkid> achilleasa, also why doesn't gatherBridgeAddresses return []net.Addr
[14:19] <stickupkid> achilleasa, hence the creeps me out
[14:19] <stickupkid> achilleasa, addressesToRemove[DefaultLXDBridge] = gatherBridgeAddresses(DefaultLXDBridge)
[14:19] <stickupkid> done
[14:20]  * stickupkid goes to check that he didn't write it
[14:20] <stickupkid> haha
[14:20] <achilleasa> nah, I will just throw all into a list and pass it to the filter func
[14:20] <stickupkid> fair
[14:20] <achilleasa> there might be some dups but who cares
[14:21] <stickupkid> solve that later :)
[14:36] <achilleasa> stickupkid: you need the map after all because the map gets flattened into a []ipNetAndName slice
[15:07] <rick_h> guild I updated guimaas with guidance to the snap and 2.7 FYI
[15:07] <rick_h> if anyone hits issues let me know and I might ask to take over guimaas for a demo in the near future just a heads up
[15:08] <stickupkid> rick_h, nice :)
[15:14] <stickupkid> gr8, when we moved to go 14 we didn't update all the mocks - haha