[01:11] wallyworld: was doing dropoff (same goes for every tuesday), hence not at standup. yesterday I worked on taking instance AZ from volume attachments [01:12] axw: no worries, figured that's where you were [01:12] I think I've got it working with AWS [01:12] awesome [01:12] axw: we also need to look at bug 1692729 [01:12] Bug #1692729: juju add-storage doesn't always grab ebs volumes on aws [01:13] weird [01:13] ok [01:18] wallyworld: can you take a look at the updates to: https://github.com/juju/juju/pull/7354 [01:19] hml: yep [01:19] wallyworld: ty [01:26] wallyworld: is https://bugs.launchpad.net/juju/+bug/1692729 a release blocker? [01:26] Bug #1692729: juju add-storage doesn't always grab ebs volumes on aws [01:27] axw: i think so, given a stakeholder found it and it affects conjure-up [01:27] ok [01:27] I'll finish up what I'm doing and look at that next [01:37] hml: LGTM, but with some tweaks to the test structure [01:38] wallyworld: looking [01:44] babbageclunk: I need a rubberduck... or teddybear [01:44] babbageclunk: can I use you? [01:44] thumper: yay, of course! [01:45] babbageclunk: stuff it is [03:02] babbageclunk: here's a PR with an upstream patch if you have a moment later https://github.com/juju/juju/pull/7375 [03:28] wallyworld: lgtm's [03:28] ty [03:28] oops - lgtm'd [03:29] babbageclunk: let's hope it fixes one of the source of races [03:38] [03:53] * thumper gets on filing bugs [03:53] jam: got 5 minutes for an update [03:53] ? [03:53] thumper: sure [03:53] jam: 1:1 [03:54] joining [04:20] Bug #1629113 changed: Juju deploy wordpress fails with MaaS [04:40] axw: when you get a moment, here's a small PR to fix some CI test races https://github.com/juju/juju/pull/7376 [04:46] wallyworld: left some comments [04:48] ok, ta [04:54] axw: i replied, see what you think [04:55] wallyworld: "The race is because a test patches the Period value. This is done outside the watcher and is normally ok, except when race test are run." <- if it's outside the watcher, how is there a race? [04:56] axw: because other tests use the watcher [04:56] so one test patches the global var [04:56] and another test is using a watcher which tries to access that var [04:57] that's my theory. i could repro easily. the PR fixes it [04:59] wallyworld: the tests within a package are run sequentially. it sounds an awful lot like the test is doing dodgy things, and we should fix that too. the code change is fine though. [04:59] even with race? [04:59] it only shows up with race testing [05:00] wallyworld: it won't ever do anything particularly bad, just maybe affect the timing of unrelated tests [05:01] the test doesn't do anything too bad on the surface. the Test() itself runs s.PatchValue(&watcher.Period, 200*time.Millisecond) [05:01] and then it starts up stuff [05:01] which test is it? [05:01] TestDowngradeOnMasterWhenOtherControllerDoesntStartUpgrade [05:03] core issue looks like a problem with clean up [05:03] maybe watcher isn't being stopped [05:03] or stops when the cleanup runs to reset the patched value [05:03] wallyworld: that test is totally doing the wrong thing. once the test has started, State (thus the watcher) will already have been created [05:04] wallyworld: I think the PatchValue should be moved to SetUpSuite [05:04] hmmm, i think that's a good point. so it is patching the value after the watcher starts and tries to rely on that [05:05] yeah, moving it would be better [05:05] wallyworld: changing the code to pass the period in is a step in the right direction though IMO [05:05] yeah, agreed [05:05] wallyworld: i.e. away from using globals [05:05] yup [05:05] i'll move the patch code also [05:05] wallyworld: thanks. just wanted to make sure the test wasn't doing anything too heinous [05:06] np, thanks for being thorough [05:24] thumper: can you attach relevant log snippets to the txnlog bug? [05:27] sure [05:48] wallyworld: Can you take another look at https://github.com/juju/juju/pull/7369? It's changed a bit... [05:48] sure [05:49] thanks [06:24] babbageclunk: reviewed, thanks. i'm still quibbling about a set and a slice in the watcher. i like the uniter facade rework. oops, one thing i forgot - we should really catch and handle any CodeNotImplemented errors in the api uniter client. there's not much that can be done except to log a nice message and error out so the uniter restarts with the expectaction that the server will eventually start running the right version (I think) [06:24] or maybe it's not an issue since the controller always gets upgraded first === frankban|afk is now known as frankban [07:32] a one-liner: https://github.com/juju/juju/pull/7377 === d is now known as Guest60253 === Guest60253 is now known as domas-from-canon [11:29] wallyworld: yeah - I think you're right about the slice+set. Doesn't make sense on the scale of relations we're talking about. [11:41] Bug #1692866 opened: /snap/bin not in path for juju run/juju ssh === salmankhan1 is now known as salmankhan [12:09] wpk: around? I've changed the Uniter API, and needed to change some of the versioning there. https://github.com/juju/juju/pull/7369 [12:09] wpk: Could you take a look and confirm that I've handled your NetworkConfig/NetworkInfo change right? [12:10] wpk: I've got NetworkConfig only on the v4 API and NetworkInfo only on v5. Make sense? [12:18] Is that the right PR? I don't see any Network{Info,Config} related things there [12:19] Ah, OK, NOw I see [12:19] wpk: Well, none of it's about those, but if you look at the changes to apiserver/uniter/uniter.go [12:19] wpk :) [12:20] Ah, the diff wasn't loaded [12:21] IMHO it's cleaner to have a 'clean' object on top (like UniterAPI) with everything implemented and make all the workarounds in 'older' stuff, so that if we want to get rid of old one we can simply, well, get rid of it [12:22] so UniterAPI is complete V5, and UniterAPIv{somethingolder} has the newer functions e.g. masked out [12:22] But that's a political decision :) [12:23] (we can even have the old functions in separate file, for cleaniness sake) [12:25] wpk: Well, there's no way to mask out functions properly if you embed the pristine one, so the only way to do that would be not to embed but to explicitly delegate all the ones we want on each version. [12:25] Why there's no way? [12:25] From API standpoint if you create same-named function with 'wrong' signature it won't get published [12:26] wpk: ? I'm not sure that's right. [12:26] func (u *UniterAPIV3) NetworkInfo(_, _ struct{}) {} [12:26] this one [12:26] it masks NetworkInfo from UniterAPIV3 [12:27] since we don't publish functions with 2 arguments [12:27] wpk: Hmm, didn't know about the 2-argument thing. [12:28] the rules are in rpc/rpcreflect/type.go, newMethod [12:29] wpk: Ok, I'll check that out in the morning. Thanks. [12:29] function can have 0 or 1 argument, and 0 or 1 return values + optional error [12:29] (so (), (error), (x), (x, error), but not (x,y) ) [12:32] wpk: Yeah, makes sense. Ok, I'll do that, thanks! [12:33] Good night :) [12:35] wpk: 'night! === rvba` is now known as rvba [14:21] Bug #1692866 changed: /snap/bin not in path for juju run/juju ssh === frankban is now known as frankban|afk === akhavr1 is now known as akhavr [23:23] I'm at that phase of bug diagnostics where I'm wondering: how can this possibly be happening [23:29] thumper: oh I love that bit [23:30] babbageclunk: I'm hitting the same code path from two different directions, one succeeds and one fails [23:30] WTF [23:37] babbageclunk: got 5 minutes to be a teddy bear? [23:38] thumper: sure!