/srv/irclogs.ubuntu.com/2017/07/05/#juju-dev.txt

blahdeblahMorning!  Any update on 2.2.2 release date?00:12
axwburton-aus externalreality: standup?00:32
burton-ausaxw just in00:33
axwthumper: what are the blockers for 2.2.2? I think #1700451 should be00:46
mupBug #1700451: Upgrade from 2.1.x to 2.2.1 blocked by missing Azure resources <canonical-is> <upgrade-juju> <juju:In Progress by axwalk> <https://launchpad.net/bugs/1700451>00:46
axwoh maybe there's tags...00:46
axwhm nope00:48
babbageclunkblahdeblah: not sure - thumper?01:01
axwbabbageclunk: I don't understand why you've used that expression for the wait time in WaitAdvance. why not just use coretesting.ShortWait?01:07
babbageclunkaxw: Hmm, I thought I had tried it but now I'm not sure. Hang on, I'm trying it again now.01:11
axwbabbageclunk: that test was already pretty confusing01:13
babbageclunkaxw: yeah - I tried rewriting it to be simpler, but it needs a test clock to be advanced (and so a goroutine) otherwise it just hangs.01:14
axwbabbageclunk: I think we want to: WaitAdvance(<10ms, coretesting.ShortWait, 1), then show that listener.count is still zero, then WaitAdvance(enough-to-reach-10ms, coretesting.LongWait, 1)01:14
axwbabbageclunk: there's a testing.AutoAdvancingClock that you could use, but it'll involve rewriting all the tests in that file to pass in a clock to testListener I think... or using an auto advancing clock in all the tests, which might not be better01:15
axwit starts getting a bit too closely tied to the implementation tho01:16
babbageclunkaxw: Oh, just reread your question - I thought you were talking about the first argument to WaitAdvance, but you were talking about the second argument? The amount to advance the clock?01:19
axwbabbageclunk: yes01:19
axwbabbageclunk: no wait...01:20
axwbabbageclunk: the amount of wall clock time to wait01:20
babbageclunkaxw: ok, right.01:20
axwbabbageclunk: (in the inner loop of WaitAvance)01:20
babbageclunkI'll try what you're suggesting.01:21
babbageclunkaxw: No, if we advance the clock by short wait, it's over the min pause threshold, so there's a chance that the pause will complete, and the test fails with "pause returned too soon"01:30
axwbabbageclunk: I don't understand that - teh amount of time waited by WaitAdvance is independent of the amount advanced?01:31
babbageclunkyes01:31
babbageclunkthe first's wallclock time, the second is simulated time.01:32
babbageclunkThey're two independent but confusing axes.01:33
axwbabbageclunk: isn't it the other way around? https://github.com/juju/testing/blob/master/clock.go#L118  -- d is first, which is the amount of time we advance the clock (simulated time)01:33
babbageclunkaxw: Gah, you're right! I had misread that.01:35
axwbabbageclunk: :)  I always have to check the order, never can remember01:35
thumperhey01:36
* thumper looks01:36
babbageclunkaxw: That's why the results were so confusing when I was doing it. Ok, your way makes sense then. Trying it now.01:36
thumperaxw: how is the separation of model upgrades from controller upgrades going?01:37
axwthumper: the upgrade bits are separated, I'm onto the next bit, which is blocking logins to the models before they're upgraded01:38
thumperaxw: ok, cool01:38
axwthumper: and I've hit a snag, need to synchronise the controllers. prob won't be done till tomorrow now01:39
thumperaxw: wouldn't it just be looking at the value in the model doc and blocking if not expected?01:40
axwthumper: sorta. only one controller machine gets an Environ (singular worker), so we either make them all get one, or use something other than the environ version to synchronise on. they all need to agree on a value to check for01:41
axwthumper: I'm leaning towards the latter atm, to avoid unintended uses of environs in multiple controller machines01:42
thumperaxw: we are storing the environ version in the model doc though right? can't we synchronize on that?01:42
axwthumper: yes, but only after they've upgraded, and the ones that don't have the Environ don't know what version it'll go to01:43
babbageclunkaxw: Thanks for the sanity checking! That is much clearer, I think.01:43
axwthumper: and we have to block them all until the upgrades are done01:43
axwbabbageclunk: cool, np01:43
thumperaxw: hmm... so just need to work out what to sync on then...01:44
axwthumper: I was just going to use the controller version01:44
thumpercouldn't there just be a registry of expected environ versions based on provider that the apiserver has?01:45
thumperit won't change between controllers01:46
axwthumper: yeah, could do. I could just make the EnvironProvider return the upgrade ops / version. I'll look into that01:46
thumperas it will be fixed for any compiled code01:46
axwthumper: that should work alright. that's the easy bit anyway :)01:50
* thumper nods01:55
axwthumper: tech board?04:02
thumpercoming04:02
babbageclunkthumper: If I want to add a new field to a uniter params struct, I guess that means adding a new version to the uniter API?04:12
babbageclunkthumper: or can I get away without that?04:12
thumperit depends04:13
thumperI know that the pyjuju library before would have issues if we changed things04:13
babbageclunkthumper: ok - I don't think it's hard to do anyway.04:19
babbageclunkaxw: updated that test fix. Take another look if you get a moment? https://github.com/juju/juju/pull/759604:20
axwbabbageclunk: just saw, and LGTMd04:20
axwbabbageclunk: thanks04:20
babbageclunkthanks!04:25
=== frankban|afk is now known as frankban
rogpeppejam: hiya09:26
rogpeppejam: there's a goose review here that you might want to take a look at https://github.com/go-goose/goose/pull/5109:27
jamrogpeppe: looking10:49
rogpeppejam: thanks10:49
jamrogpeppe: reviewed11:06
rogpeppejam: tyvm11:06
rogpeppejam: "I'm a little concerned that just dropping the ErrUnexpectedEOF may work for a particular client, but not for all."11:25
rogpeppejam: do you mean for a particular server there?11:25
rogpeppejam: BTW, do you know what version of Go we can assume for the swift code?11:31
jamrogpeppe: so looking up an etag and getting a read seeker seemed disconnected, so it seemed like you could call one without having the other. Further, do all Openstack implementations that we operate against support ETAG?11:32
jamrogpeppe: 'go version for swift code' ? Juju itself is I think 1.8 only now, are you wondering about other consumers of goose?11:33
rogpeppejam: yeah, i'm wondering about other goose consumers11:33
jamrogpeppe: tbh I don't know other goose consumers. it isn't a project I've kept close ties with, or heard a lot of noise about people using it.11:36
rogpeppejam: i would hope that all Openstack implementations support Etag as the API is derived from S3 and that supports it (also, the API docs describe it and don't say it's optional)11:37
rogpeppejam: i suspect no-one else uses it. i'm going to assume Go1.8.11:37
rogpeppejam: i guess it depends what semantics we expect from a file that changes underfoot (if a server doesn't support Etag and If-Match). I think that getting an error when reading the file is probably OK.11:38
rogpeppejam: are you minded to approve the PR?11:55
rogpeppejam: FWIW I'm planning on waiting for jrwren to approve it because he was the one that wrote the ErrUnexpectedEOF logic and might have some info we don't11:56
rogpeppejam: here's another goose review for your delight and delectation - this one is a performance enhancement: https://github.com/go-goose/goose/pull/5212:46
=== frankban is now known as frankban|afk
=== tvansteenburgh1 is now known as tvansteenburgh

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