[00:21] <thumper> hi davecheney
[00:21] <thumper> laptop is still upgrading, but I am around
[00:21] <thumper> and have skype available to me
[00:24] <davecheney> thumper: you said you had a race when X was starting
[00:25] <davecheney> I think my machine has developed that as well
[00:25] <thumper> what do you get?
[00:25] <davecheney> bootup
[00:25] <davecheney> some text on the screen
[00:25] <davecheney> have to alt-f1 and restart lightdm to get a login
[00:25]  * thumper nods
[00:25] <thumper> that's it
[00:25] <davecheney> wonderful
[00:25] <thumper> do you have an ssd?
[00:25] <davecheney> yeah
[00:26] <davecheney> wasn't a problem with 4gb
[00:26] <davecheney> but with 8gb
[00:26] <davecheney> i must be slightlt faster
[00:26] <thumper> ah... I have 16
[00:26] <davecheney> is there a bug that I can whine on ?
[00:26] <thumper> damn those high spec laptops
[00:26] <thumper> davecheney: poke robert_ancell in #ubuntu-desktop
[00:26] <davecheney> thumper: ok, can I say you told me to talk to him ?
[00:27] <thumper> sure
[00:27] <davecheney> kk
[00:28] <davecheney> thumper: i flashed my n7 to the phablet this morning
[00:28] <davecheney> that is why I was calling
[00:28] <thumper> oh?
[00:28] <davecheney> i wanted to get your feedback on it
[00:28] <thumper> I have some thoughts
[00:28] <thumper> but I haven't played with the tablet build
[00:28] <davecheney> lets try skype
[00:28] <thumper> kk
[00:59] <davecheney> hello
[00:59] <davecheney> i am still here
[00:59] <davecheney> i can hear you
[00:59] <davecheney> you cannot hear me
[00:59] <thumper> no
[00:59] <thumper> did you bump mute?
[00:59] <davecheney> this is becoming farcical
[00:59] <davecheney> lets call it a day
[01:00] <thumper> ok
[01:00] <thumper> I'm tempted to throw in the towel completely and get a beer
[01:00] <davecheney> ok, lets retire hurt to our respective corners
[01:00] <davecheney> nearly time for lunch in AU
[01:00] <thumper> heh
[01:01] <davecheney> i shall continue to watch you troll #ubunut-desktop
[02:05] <davecheney> thumper-afk: i'm going to be working remotely from the city for the rest of the day
[02:05] <davecheney> meeting up with a bloke who is over here from Zurich
[02:05] <davecheney> if there is wifi in their offices, i'll be online
[02:05] <davecheney> if not, i won't
[02:05] <davecheney> i'll be online tomorrow for the usual release hoopla
[02:11] <thumper-afk> ok
[02:12] <thumper> davecheney: have fun
[02:54] <thumper> poos
[04:16] <jtv> Anybody available to review some Makefile changes in pyjuju?  MP is at https://code.launchpad.net/~jtv/juju/makefile-fixups/+merge/149907
[06:16] <jtv> Thanks wallyworld_!
[06:17] <jtv> Your review seems to count as "(community)" for some reason.
[07:02] <jtv> Nobody else who can review https://code.launchpad.net/~jtv/juju/makefile-fixups/+merge/149907 ?
[07:08] <jtv> Also, nobody who knows how to get the test suite passing, or at least not hanging?
[07:33] <wallyworld_> jtv: which test suite? py juju or go juju?
[07:41] <jtv> wallyworld_: py juju
[07:42] <wallyworld_> i've not run those tests, only the juju-core ones
[07:42] <jtv> At least on Precise & Quantal, we get test errors and then things just lock up (and ctrl-C won't work).
[07:43] <wallyworld_> that's not good :-(
[07:43] <wallyworld_> with your review, mgz should be able to do it when he comes online
[07:43] <jtv> Our thoughts precisely.
[09:10] <fwereade> frankban, heyhey -- I presume the lxc compile got you unblocked for now?
[09:12] <fwereade> frankban, the bug remains somewhat rough but is at https://bugs.launchpad.net/juju-core/+bug/1131608
[09:12] <_mup_> Bug #1131608: deployed series is arbitrary <juju-core:New for fwereade> < https://launchpad.net/bugs/1131608 >
[09:12] <frankban> fwereade: hi, I switched to another, more urgent, card. I've seen the bug you filed, thank you. lxc should workaround that issue
[09:15] <frankban> fwereade: how many reviews are required for juju-core? and does "LGTM with changes" means we can just follow suggestions and the "lbox submit"? it's re https://codereview.appspot.com/7398044
[09:15] <frankban> s/and the/and then/
[09:17] <mgz> jtv: you want test suite run on that branch?
[09:18] <fwereade> frankban, please wait for two of those without dissenting opinions
[09:19] <frankban> fwereade: ack, thanks
[09:19] <fwereade> frankban, the second of which has just arrived, LGTM
[09:19] <frankban> fwereade: :-) great!
[09:39] <frankban> fwereade: submitted
[09:43] <fwereade> frankban, cheers
[09:43] <fwereade> dimitern, heyhey
[09:43] <dimitern> fwereade: hiya
[09:54] <dimitern> fwereade: I have 2 CLs for you :)
[09:54] <fwereade> dimitern, cool
[09:55] <dimitern> fwereade:  https://codereview.appspot.com/7373046/ and https://codereview.appspot.com/7385049/ (WIP still, tests fail and I'm not sure what i'm doing wrong)
[09:55] <fwereade> dimitern, I have one too I'm about to push, then I need to finish up TheMue's (hmm, he has one that you could look at too)
[09:55] <dimitern> fwereade: I'll take a look
[09:59] <TheMue> fwereade: Thx for the +1 btw. Even if I'm after our talk yesterday not sure if we really should use it.
[10:00] <fwereade> TheMue, we've already paid for it, and there's no compelling reason not to use it IMO
[10:01] <TheMue> fwereade: Yeah, that's reasonable.
[10:01] <fwereade> TheMue, I hope we will be able to swap it out before too long, but I don't think it's a serious enough issue to be worth blocking on
[10:04] <fwereade> TheMue, dimitern: https://codereview.appspot.com/7399049
[10:04] <TheMue> fwereade: *click*
[10:04] <dimitern> fwereade: on it, as soon as i finish with TheMue's
[10:09] <fwereade> TheMue, storage LGTM
[10:10] <TheMue> fwereade: Thx
[10:17] <fwereade> dimitern, dude, tests ;p
[10:18] <fwereade> dimitern, but I have a suggestion that might make the first a bit simpler
[10:18] <TheMue> fwereade: You've got a review.
[10:18] <dimitern> fwereade: that's what I was asking about yesterday before it was too late i guess
[10:19] <fwereade> dimitern, if we add an explicit WantAllRelationsEvents method to filter, that directly restarts relationsw, I think that maybe everything is easier to express
[10:19] <dimitern> fwereade: not sure how to check if the watcher is restarted (or better still, how to check if we handle the changes before/after the upgrade)
[10:19] <fwereade> dimitern, sorry, I must have been very unclear, I thought I was handwaving at the existing ones in a helpful way :)
[10:21] <dimitern> fwereade: :) still at a loss though.. how to inject a change in the chan and check i get it after the restart of the watcher
[10:21] <fwereade> dimitern, start a filter; add a couple of relations; check you get events for them; receive an upgrade event (or call WanttAllRelationsEvents or whatever we do); check we get the same relations again
[10:21] <fwereade> dimitern, I'm not sure what we need to inject
[10:22] <fwereade> dimitern, at the moment it's written so that when someone reads an upgrade event the magic happens; so, to test it, read an upgrade event and check the magic
[10:22] <dimitern> fwereade: aah - so we'll still get the same changes before/after restarting
[10:22] <fwereade> dimitern, I would favour decoupling the magic, though, so you can just tack a trivial WantAllRelationsEvents on
[10:22] <fwereade> dimitern, yeah, I think that's enough
[10:22] <dimitern> fwereade: ok, i'll look into it some more before bugging you :)
[10:23] <fwereade> dimitern, sure, but I am always happy to be bugged :)
[10:24] <fwereade> dimitern, I *think* the second one has failing tests because you do the wrong thing when handling events from relationsw... consider what happens when the chan is *not* closed
[10:25] <dimitern> fwereade: hmm.. I wasn't sure I'm handling the "does this rel implement the endpoint of the charm of this service" right
[10:26] <dimitern> TheMue: reviewed
[10:27] <TheMue> dimitern: Thx
[10:31] <dimitern> fwereade: reviewed yours
[10:33] <fwereade> dimitern, TheMue: thanks for the reviews
[10:33] <TheMue> fwereade: yw
[10:33] <fwereade> dimitern, "series" is a fundamental concept in juju that it seems like we didn't really bother to implement
[10:33] <fwereade> dimitern, charms are specific to series: they are tuned to run on particular operating systems
[10:34] <fwereade> dimitern, we are meant to guarantee that we run (say) precise charms on precise systems, and quantal charms on quantal systems
[10:34] <fwereade> dimitern, in practice, not so much
[10:35] <dimitern> I've never been called "Dear Constituent" before :D
[10:35] <fwereade> dimitern, our current approach is "force everything to run on the same arch/series as the provisioner"
[10:35] <fwereade> dimitern, I am not especially pleased by this discovery ;)
[10:36] <dimitern> fwereade: ok, got it, 10x :)
[10:36] <fwereade> dimitern, np, dear constituent
[10:37] <dimitern> fwereade: :) i got one of the junk election papers just now, before I threw it away I saw that
[10:41] <dimitern> fwereade: so, instead of restarting the watcher on outUpgrade <-, implement and call WantAllRelationsEvents as needed (not there) ?
[10:46] <fwereade> dimitern, yeah, I think so
[10:46] <fwereade> dimitern, use a want channel as we do for the other control methods
[10:46] <dimitern> fwereade: but still keep the restarting when x, ok <-Changes; !ok, right?
[10:47] <fwereade> dimitern, nah, just do the stop/start in response to the want channel I think -- you can keep the MustErr
[10:47] <dimitern> fwereade: ok
[10:54] <dimitern> fwereade: am I getting this right: (assuming WantAllRelationsEvents and wantAllRelations chan), when we get <-f.wantAllRelations, we log and restart relationsw ?
[10:54] <fwereade> dimitern, yeah, I think that gets us what we need
[10:55] <fwereade> dimitern, then you can just tack a couple of extra lines onto TestRelationsEvents and you're good
[10:55] <dimitern> fwereade: so we still need the modified defer and don't want MustErr
[10:55] <fwereade> dimitern, hmm, I think we keep the modified defer
[10:55] <fwereade> dimitern, but I'm not so sure about MustErr
[10:55] <fwereade> dimitern, when will we see it?
[10:56] <dimitern> fwereade: but MustErr will fire once we stop relationsw
[10:56] <fwereade> dimitern, only if we don't start them again
[10:56] <dimitern> fwereade: ah, I'll try it
[11:01] <dimitern> fwereade: got it :) because the MustErr and the restart happen in the same select, they won't interfere
[11:23] <dimitern> fwereade: fixed https://codereview.appspot.com/7373046/
[11:25] <fwereade> dimitern, lovely, LGTM
[11:25] <dimitern> fwereade: tyvm
[11:26] <dimitern> fwereade: so I need one more LGTM to submit it now..\
[11:26] <fwereade> TheMue, dimitern's got an easy review up
[11:35] <TheMue> *click*
[11:41] <dimitern> fwereade: wrt the other CL - u.charm is the currently installed charm or the charm just deployed and about to have its relations added?
[11:41] <TheMue> dimitern: 2nd LGTM is in.
[11:42] <fwereade> dimitern, u.charm is a uniter/charm.GitDir, but it has a Path() you can use to construct an actual *corecharm.Dir to pass into ImplementedBy
[11:43] <dimitern> fwereade: but how is this charm different from u.unit.Service().Charm() ?
[11:44] <fwereade> dimitern, that's the state charm we'd be upgrading to, which definitely always implements those endpoints, otherwise the relation couldn't have been created in the first place
[11:44] <fwereade> dimitern, the charm a unit is running is not necessarily the same as the charm the service wants it to run ;)
[11:44] <dimitern> fwereade: ah, so the u.charm is not yet in state?
[11:44] <fwereade> dimitern, mu
[11:44] <fwereade> dimitern, g+?
[11:45] <dimitern> fwereade: ok, just a sec
[11:45] <fwereade> dimitern, starting one now
[11:45] <fwereade> dimitern, https://plus.google.com/hangouts/_/b4c971e8d459c1b323cf87a088c920c785acb054?authuser=0&hl=en
[11:45] <dimitern> TheMue: thanks for the review, btw - is your comment about proper capitalization of the comment?
[11:46] <TheMue> dimitern: That and punctuation, yes. ;)
[12:08] <dimitern> TheMue: cheers
[12:54] <dimitern> fwereade: moving the dir.Ensure into PrepareHook seems to cause problems with not finding the dir
[12:54] <fwereade> dimitern, what's looking for it?
[12:55] <dimitern> fwereade: i'm having trouble pasting the log
[12:56] <fwereade> dimitern, interpretive dance? ;p
[12:56] <dimitern> fwereade: :) just a sec
[12:56] <fwereade> dimitern, brb
[12:57] <dimitern> fwereade:  http://pastebin.com/1XfyiMFk
[12:57] <dimitern> fwereade: both p.u.c and pb.c.c do not work
[13:06] <fwereade> dimitern, ok here now
[13:09] <dimitern> fwereade: did you see it?
[13:09] <dimitern> fwereade: i'm trying to figure out why it happens
[13:10] <fwereade> dimitern, it doesn't look all that bad -- just that it's not following the path it takes when called by the uniter, so we don't get the PrepareHook calls
[13:11] <fwereade> dimitern, I'd probably be fine with Ensure()ing the dirs directly in the test
[13:12] <dimitern> fwereade: that somehow seems wrong
[13:13] <dimitern> fwereade: maybe because the test is doing things out of sequence as a shortcut?
[13:13] <fwereade> dimitern, Relationer is a weird type, it's the nexus that connects all the various representations of relations
[13:14] <fwereade> dimitern, the only reason it's doing a Write there in the first place is so that the Validate on write works -- it's a hack to maintain correct dir state anyway afair
[13:15] <dimitern> fwereade: i see, ok then I'll add Ensure in these 3 failing tests
[13:39] <dimitern> fwereade: 2 simple fixes really - in assertHook and the one that checks Join creates the dir (no longer so)
[13:39] <fwereade> dimitern, great
[13:39] <fwereade> dimitern, tyvm
[13:40] <fwereade> dimitern, I guess you're somewhat familiar with the whole livetests gubbins?
[13:40] <dimitern> fwereade: somewhat yes
[13:40] <fwereade> dimitern, is there some magic happening re bootstrap in those tests? like, we're running them without bootstrapping, or something? this is ec2 in particular...
[13:41] <dimitern> fwereade: i think most of them do BootstrapOnce and go with it
[13:41] <dimitern> fwereade: anyone in particular you have in mind?
[13:42] <fwereade> dimitern, TestGlobalPorts looks like it doesn't bother
[13:42] <dimitern> fwereade: lemme see
[13:42] <fwereade> dimitern, there are 4 calls in total to BootstrapOnce AFAICS
[13:42] <fwereade> oh what the FUCK
[13:43] <fwereade> who wrote TestGlobalPorts?
[13:43] <dimitern> fwereade: no idea :)
[13:43]  * fwereade sighs dramatically
[13:43] <dimitern> fwereade: it seems TestGlobalPorts is one of those which do not bother bootstrapping - just uses the config
[13:43]  * fwereade does not approve of writing tests that depend on obvious bugs
[13:43] <dimitern> fwereade: +1 :)
[13:44] <fwereade> dimitern, ok, it looks like I can probably just make all the tests bootstrap
[13:44]  * fwereade remains baffled as to how a test against an environment that doesn't exist is meaningful
[13:45] <dimitern> fwereade: not all, some of them test behaviour at or before bootstrap
[13:45] <fwereade> dimitern, yeah, just the ones that start instances
[13:45] <fwereade> dimitern, I'm trying to hack as little as possible here ;p
[13:45] <dimitern> fwereade: yeah, makes sense
[13:45] <dimitern> fwereade: try openstack's after
[13:46] <fwereade> dimitern, I would avoid it if I could, but I can't
[13:46] <fwereade> dimitern, I'm having to change Environ :/
[13:47] <fwereade> dimitern, apart from machineId, Environ.StartInstance's params are -- I think -- total crack
[13:47] <dimitern> fwereade: which ones?
[13:47] <fwereade> dimitern, tools, api info, state info
[13:47] <fwereade> dimitern, the env should choose the tools
[13:47] <fwereade> dimitern, and it already knows -- or should -- the state/api info
[13:48] <fwereade> dimitern, Environ has a frickin' `StateInfo() (*state.Info, *api.Info, error)` method
[13:48] <dimitern> fwereade: yeah it does
[13:49] <dimitern> fwereade: hmm seems a bit crackful indeed
[13:50] <fwereade> dimitern, behold the fruits of detailed academic discussion: the perfect API
[13:51] <dimitern> :)
[13:56] <dimitern> fwereade: assuming i check relationer.Join does not create the dir, I should check also PrepareHook does it, right?
[13:56] <fwereade> dimitern, +1
[13:57] <fwereade> dimitern, after validating please :)
[13:57] <dimitern> fwereade: the problem is I have no access to the actual path from the uniter module (it's in uniter/relation)
[13:57] <dimitern> fwereade: preparehook already validates
[13:57] <fwereade> dimitern, yep, I'm just saying create the dir after the validation
[13:58] <dimitern> fwereade: yeah, sure - done that
[13:58] <fwereade> dimitern, you know the relations dir, though, and you know the relation id, you can probably figure something out ;p
[13:58] <dimitern> fwereade: but i need a way to access the private path of statedir
[13:59] <fwereade> dimitern, you had to create a state dir with a known id in a known relations dir to begin with, though, right?
[13:59] <dimitern> fwereade: or add a method on statedir Exists() or something?
[13:59] <fwereade> dimitern, -1 unless you can think of a non-test use case for it
[14:00] <dimitern> fwereade: ah, you mean in the suite, sure i can export that to the suite
[14:00] <fwereade> dimitern, sgtm
[14:13] <niemeyer> Hi all
[14:13] <TheMue> niemeyer: Heyhey
[14:13] <dimitern> niemeyer: hey
[14:23] <niemeyer> TheMue, dimitern: Hey folks!
[14:24] <niemeyer> Huh.. so wikimedia runs a public ganglia server.. that's quite awesome
[14:24] <niemeyer> http://ganglia.wikimedia.org/
[14:25] <dimitern> niemeyer: really cool :) you can see the whole infrastructure
[14:27] <dimitern> fwereade: a bit of help with uniter tests? not sure where to test the changes to updateRelations - it's in the modeAbideAliveLoop only, and I suppose the test has to go somewhere around "steady state changes" steps
[14:27] <fwereade> dimitern, hmm, that is an interesting one
[14:28] <dimitern> fwereade: maybe even in upgrade scenarios
[14:29] <fwereade> dimitern, for now, I think it is sufficient to check that the uniter does not respond to relations it can't handle
[14:29] <dimitern> fwereade: like: quickstart, createcharm, upgradecharm(to a different, faulty one), wait the log message for ignoring the non implemented relation
[14:30] <fwereade> dimitern, please, no log checking
[14:30] <dimitern> fwereade: ok, how then?
[14:30] <fwereade> dimitern, the fact that we indulged it out of desperation does not mean the bar for it should be lowered ;)
[14:31] <dimitern> fwereade: :) sure
[14:31] <fwereade> dimitern, but, yeah, it is a tricky question, and I am still thinking
[14:32] <dimitern> fwereade: we can check the relation is not added
[14:32] <dimitern> fwereade: like no relationer for that relation or something?
[14:33] <fwereade> dimitern, yeah, we certainly can check that the unit doesn't enter scope in that relation
[14:33] <fwereade> dimitern, and that's something we can do now
[14:33] <fwereade> dimitern, g+ quickly?
[14:34] <dimitern> fwereade: ok, i'll send you a link this time\
[14:34] <fwereade> dimitern, cheers :)
[14:34] <dimitern> fwereade: https://plus.google.com/hangouts/_/b8e9e83fe6e47838019383106994c2dcca14363f?authuser=0&hl=en
[15:46] <dimitern> fwereade: in order to add the incompatible relation to the wp charm, i have to overwrite the metadata, right?
[15:47] <dimitern> fwereade: in createCharm{customize:..}
[16:14] <fwereade> dimitern, yeah, think so
[16:15] <fwereade> dimitern, sorry I missed you
[16:15] <fwereade> dimitern, did you do bootstrappy stuff in openstack?
[16:15] <dimitern> fwereade: I'm half way there already - will paste what I got
[16:15] <dimitern> fwereade: yes
[16:16] <fwereade> dimitern, do you know if there's any distinction between the CACert in the environ config and the (cert, key) passed into Bootstrap>
[16:16] <fwereade> dimitern, sorry, the *cert* passed into bootstrap
[16:17] <dimitern> fwereade: not really
[16:17] <fwereade> dimitern, ah, wait, I think there is
[16:18] <fwereade> dimitern, the ones passed in are generated from the one in the config
[16:18] <dimitern> fwereade: I mean I don't really know :)
[16:19] <fwereade> dimitern, indeed, sorry, just thinking out loud
[16:23] <dimitern> fwereade: does this look ok to you http://paste.ubuntu.com/5555566/
[16:24] <dimitern> fwereade: it works, i did a small test
[16:24] <fwereade> dimitern, nice, much neater than I would have done it :)
[16:25] <dimitern> fwereade: :) ty
[16:29] <dimitern> fwereade: not sure if i should use only quickStart{} or quickStartRelation{} to setup the test case initial conditions
[16:29] <fwereade> dimitern, quickStart I think
[16:29] <fwereade> dimitern, you want your own funky relation setup using the service's new charm
[16:29] <dimitern> fwereade: and add relation later, immediately after upgradeCharm (or before)
[16:30] <fwereade> dimitern, immediately after
[16:30] <dimitern> fwereade: ok. the funky setup will happen after quickstart in createcharm{customized}
[16:31] <dimitern> fwereade: I need a charm running already ok, then try the upgrade
[16:31] <fwereade> dimitern, yeah; create, add, serve, service.SetCharm()
[16:31] <fwereade> dimitern, and immediately addRelation{}
[16:31] <dimitern> fwereade: yeah, that's it
[16:32] <fwereade> dimitern, in the hope that the scheduler happens to handle the relation change before it does the upgrade
[16:33] <dimitern> fwereade: yeah
[16:34] <dimitern> fwereade: in addition to renameRelation (instead of replace*), I'll need something to call ctx.svc.SetCharm
[16:34] <fwereade> dimitern, I'm sure that already exists, there are other upgrade tests
[16:35] <dimitern> fwereade: yeah, upgradeCharm{} does that in fact
[16:35] <fwereade> dimitern, cool -- and if you need to slice and dice the available primitives, go for it, they arenot meant to be set in stone
[16:36] <dimitern> fwereade: ok, although as I get to know more what each one does they're pretty comprehensive already
[16:37] <fwereade> dimitern, cool
[16:50] <arosales> gary_poster: is there a " Juju GUI user guide" that briefly explains how to work with the GUI (ie what yellow circles on a service in the canvase mean. How to deploy, relate, etc. ?
[16:51] <arosales> perhaps that is all pretty straight forward though
[16:52] <dimitern> fwereade: hmm.. how to wait for a hook which shouldn't happen?
[16:52] <fwereade> dimitern, waitHooks{}
[16:52] <fwereade> dimitern,  :)
[16:53] <fwereade> dimitern, but... when do you need to do that?
[16:53] <dimitern> fwereade: this is a positive check, i think I need a negative one
[16:53] <dimitern> fwereade: http://paste.ubuntu.com/5555636/ that's the test case so far
[16:53] <fwereade> dimitern, I *think* you need a single positive check for the appropriate joined hook running, don't you?
[16:54] <dimitern> fwereade: and it fails with "never got expected hooks"
[16:54] <fwereade> dimitern, I think verifyRunning may have tripped you up -- don;t think you need that one
[16:55] <dimitern> fwereade: ah, waitHooks{} (empty) ensures no hooks run
[16:55] <fwereade> dimitern, what happens if you just check the one hook and verifyCharm{revision:2} immediately afterwards?
[16:56] <dimitern> fwereade: i'm trying this now
[16:58] <dimitern> fwereade: so the new charm is created with rev 2, and then upgradeCharm{rev 2} as well, verifyCharm{rev 2} at the end
[16:58] <fwereade> dimitern, +1
[16:58] <fwereade> dimitern, hey, even better
[16:59] <dimitern> fwereade: still fails with never got expected hooks, this time only with: 	waitHooks{"db-relation-joined mysql/1 db:0"}
[16:59] <fwereade> dimitern, add some stuff to the db2-relation-joined hook created by the charm to write something unambiguous to the charm dir
[16:59] <fwereade> dimitern, interesting, what's the actual?
[17:00] <fwereade> dimitern, actually paste me the log please
[17:00] <dimitern> fwereade: aw fuck - it should be wait for db2, right?
[17:00] <fwereade> dimitern, lol yes
[17:00] <dimitern> :D
[17:00] <fwereade> dimitern, well spotted
[17:00] <dimitern> fwereade: running now
[17:01] <dimitern> fwereade: even if it passes, would it be enough?
[17:01] <dimitern> fwereade: i mean that scheduler cases..
[17:02] <fwereade> dimitern, well, the trouble is, I don't see a way to goose the scheduler into jumping the wrong way even if I were convinced I could force that particular loop to be in that particular state at a particular time
[17:03] <fwereade> dimitern, I think the best we can do is write the test that has the best possible change of inducing the race
[17:03] <fwereade> dimitern, and maybe tweak the summary so it's clear that failures here are to be taken v seriously
[17:04] <dimitern> fwereade: it didn't pass, but now I see the db2-relation-joined happens in the log before
[17:04] <dimitern> fwereade: the trouble with fmt.Printf and log.Printf is they're out of sync
[17:05] <fwereade> dimitern, use c.Logf() in tests
[17:05] <dimitern> fwereade: yeah, just did
[17:05] <dimitern> fwereade: wanna see the log?
[17:05] <fwereade> dimitern, yeah, please
[17:06] <dimitern> fwereade: running cleanly one more time, just a sec
[17:09] <dimitern> fwereade: http://paste.ubuntu.com/5555673/
[17:11] <dimitern> fwereade: i suspect something might be wrong here again: waitHooks{"db2-relation-joined mysql/1 db:0"},
[17:11] <fwereade> dimitern, ah-ha
[17:11] <fwereade> dimitern, db2:0
[17:11] <dimitern> :) yeah
[17:11] <dimitern> it's getting late and I'm getting sloppy
[17:11] <dimitern> sorry
[17:12] <fwereade> dimitern, sorry, createCharm is more subtle than I made clear
[17:13] <dimitern> fwereade: how?
[17:14] <fwereade> dimitern, actually not that
[17:14] <fwereade> dimitern, well kinda
[17:14] <fwereade> dimitern, it creates the hook files that dump to the log for detection later
[17:14] <fwereade> dimitern, they're still called db-relation-joined
[17:14] <dimitern> fwereade: aha!
[17:15] <dimitern> fwereade: so var goodHook2 or something inline in customize?
[17:16] <dimitern> fwereade: no, actually I just need to call writeHook again
[17:16] <fwereade> dimitern, can yu just call writeHook in cus... yeah :)
[17:16] <dimitern> :)
[17:19] <gary_poster> arosales there is not
[17:20] <dimitern> fwereade: to do that though, I have to change createCharm's customize to accept ctx *context instead of path string
[17:21] <fwereade> dimitern, sounds sane
[17:21] <arosales> gary_poster: ok, thanks
[17:26] <dimitern> fwereade: btw it would be nice to have some extra \n\n between each ut() case in the verbose log somehow :)
[17:27] <fwereade> dimitern, sorry, I should have said, ffs comment out the earlier tests when you're developing
[17:27] <fwereade> dimitern, while the steps are quite nice it really should not be a table-based test IMO
[17:27] <fwereade> dimitern, hindsight, eh
[17:28] <dimitern> fwereade: or at least a bit more granular perhaps, while still benefiting from tbt
[17:30] <dimitern> fwereade:  [LOG] 6.56912 JUJU u/0 db2:0: UniterSuite-29 db2-relation-joined mysql/0
[17:31]  * fwereade cheers
[17:31] <dimitern> fwereade: this tells me that I should probably wait for "db2-relation-joined mysql/0 db2:0"
[17:31] <fwereade> dimitern, +1
[17:32] <dimitern> fwereade: alright :) the logs now seem less cryptic indeed
[17:32] <fwereade> dimitern, cool :)
[17:32] <dimitern> fwereade: once I start understanding the state/watcher and collections stuff.. who knows :)
[17:33] <fwereade> dimitern, heh, I really ought to turn of the logspam in the watchers
[17:35] <dimitern> fwereade: still no cigar though
[17:35] <dimitern> fwereade: same error
[17:35] <fwereade> dimitern, bah
[17:35] <fwereade> dimitern, paste again maybe?
[17:36] <dimitern> fwereade: http://paste.ubuntu.com/5555744/ - tail of the log, and the test case http://paste.ubuntu.com/5555746/
[17:41] <fwereade> dimitern, d'oh
[17:41] <fwereade> dimitern, wait for upgrade-charm and config-changed before the relation one
[17:41] <fwereade> dimitern, this makes the followup step redundant
[17:41] <dimitern> fwereade: aha
[17:42] <fwereade> dimitern, however it doesn't explain why the hook is apparantly not being found
[17:42] <fwereade> dimitern, it's clearly being run, but it's not showing up in the log
[17:43] <dimitern> fwereade: so 2 waitHooks in a row - there's also verifyWaiting but i think it's not related
[17:46] <dimitern> fwereade: :) this time the earlier waitHooks bailed with error
[17:47] <dimitern> fwereade: something's fishy here
[17:47] <dimitern> fwereade: because upgrade-charm and config-changed definitely happened
[17:47] <fwereade> dimitern, sorry, I'm confused
[17:48] <dimitern> fwereade: I added waitHooks{"upgrade-charm", "config-changed"}, before waitHooks("db2-relation-changed mysql/0 db2:0"}, and it failed on the first one
[17:49] <dimitern> fwereade: you know, i think it's best to leave it for now - i'll lbox propose -wip
[17:50] <dimitern> fwereade: and start fresh on monday
[17:50] <fwereade> dimitern, sgtm :)
[17:53] <dimitern> fwereade: thanks for all the help, really
[17:53] <dimitern> fwereade: learned a lot today :)
[17:53] <fwereade> dimitern, a pleasure :)
[17:53] <dimitern> i'm off then
[17:53] <dimitern> have a good evening and weekend everyone
[17:57] <TheMue> So, I'm off too. Have a nice weekend everyone.
[17:57] <fwereade> TheMue, hapy weekend
[17:58] <TheMue> fwereade: Thx, also for you.
[17:59] <TheMue> fwereade: Environ w/o Bootstrap looks good so far, Monday morning I'll add the tests.
[19:10] <fss> niemeyer: ping
[19:10] <niemeyer> fss: Hey
[19:12] <fss> niemeyer: can we get those iam patches merged? :-)
[19:12] <niemeyer> fss: Definitely
[19:12] <niemeyer> fss: It is in the queue, promisse
[19:12] <niemeyer> promise
[19:12] <fss> niemeyer: thanks
[19:12] <niemeyer> fss: It isn't the only thing, unfortunately, but it is there
[19:13] <fss> niemeyer: i'm just revisiting some code and noticed the github.com/fsouza/go-iam import path :-(
[19:14] <niemeyer> fss: AW
[19:14] <niemeyer> Aw, that is
[19:14] <niemeyer> :)
[19:23] <fss> niemeyer: regarding the queue, is there anything I could help? :-)
[20:09] <niemeyer> fss: Thanks for the offer, but I'm afraid not.. it's just stuff on my plate