[00:09] <wallyworld_> fwereade__: hey, thanks for the reviews now go to bed!
[00:11] <thumper> fwereade__: are you up again?
[00:31] <thumper> wallyworld_: want to do an old fashioned review? https://code.launchpad.net/~thumper/golxc/mockable/+merge/169317
[00:31] <wallyworld_> sure
[00:31] <thumper> diff still updating
[00:31] <wallyworld_> i really don't like roetveld
[00:31] <thumper> for latest additions
[00:32] <thumper> you're all good now
[00:33] <thumper> wallyworld_: also, can I have a hangout with out to teddy-bear some design ideas?
[00:35] <wallyworld_> sure
[00:41] <thumper> hmm...
[00:42]  * thumper needs a recursive find and replace
[01:07] <thumper> wallyworld_: thanks for the golxc review, will get to those
[01:07] <thumper> just doing a massive move branch
[01:07] <wallyworld_> np
[01:08] <wallyworld_> i wish we used interfaces more in juju
[01:08] <thumper> wallyworld_: fwereade__ asked to have environs.Instance moved to instance.Instance
[01:08] <thumper> so container.Container doesn't need environs.Instance
[01:08] <wallyworld_> ok, sounds good
[01:08]  * thumper goes to make lunch
[01:33] <thumper> wallyworld_: chat?
[01:34] <wallyworld_> sure
[01:34] <thumper> https://plus.google.com/hangouts/_/3fc078d1d8dacd2c85f1f72fb71d3ed67d97b9c1?hl=en
[02:08] <thumper> wallyworld_: you have two reviews
[02:12] <thumper> wallyworld_: trivial review for you Rietveld: https://codereview.appspot.com/10253053
[02:15]  * wallyworld_ looks
[02:18] <thumper> wallyworld_: happy for a trivial on that?
[02:18] <wallyworld_> yep
[02:18]  * wallyworld_ looks for the other review
[02:18]  * thumper woners
[02:18] <thumper> woners
[02:18] <wallyworld_> try again
[02:19] <thumper> wonders?
[02:19] <wallyworld_> wonders perhaps why the D key is broken?
[02:19] <thumper> I typed woners again first tiem
[02:19] <wallyworld_> tiem?
[02:19] <thumper> our tarmac lander checks for two LGTMs
[02:19] <wallyworld_> :-P
[02:19] <thumper> time
[02:19] <thumper> pierce off fuck knuckle
[02:20] <wallyworld_> now, now. public forum :-P
[02:20] <wallyworld_> i forgot about the tarmac thing
[02:20] <wallyworld_> maybe we need to patch it to allow "LGTM trivial" through
[02:21] <thumper> wallyworld_: yeah, or perhaps we should just get people to review in lp :)
[02:21] <thumper> to get the two reviews from the merge propose
[02:21] <wallyworld_> PLEASE YES
[02:21] <thumper> proposal
[02:21] <thumper> that way we can check for a trivial tag
[02:25] <wallyworld_> thumper: i'm sure i didn't merge your branch - only trunk. i last merge late yesterday i think. i normally merge one last time anyway prior to submitting
[02:25] <thumper> wallyworld_: that change wasn't in trunk
[02:25] <wallyworld_> hmmmm.
[02:26]  * wallyworld_ is confused
[02:26] <thumper> however, I have done things like this with this workflow
[02:26] <thumper> switch to someone elses branch to look
[02:26] <thumper> create a new brack with "switch -b new-work" for something new
[02:26] <wallyworld_> nah, didn't do that
[02:26] <thumper> however since I wasn't on trunk, it starts with the last revision of the other branch
[02:26] <wallyworld_> anyways, i'll sort it out
[02:26] <wallyworld_> after lunch :-)
[02:28] <thumper> kk
[04:41]  * thumper off early due to late work last night
[04:41] <thumper> ciao everyone
[07:24] <TheMue> morning
[07:34] <TheMue> fwereade__: thx ;) the resumer is indeed not very complex.
[07:34] <fwereade__> TheMue, haha, yeah :)
[07:38] <TheMue> fwereade__: hmm, somehow rogers and my branch merge proposals of yesterday don't go into trunk but they have status Approved
[07:38] <TheMue> fwereade__: any idea as an old launchpad user?
[07:38] <jam> TheMue: https://code.launchpad.net/~themue/juju-core/025-cleaner-worker/+merge/169228 ?
[07:38] <jam> As I warned, it doesn't have a Commit Message
[07:39] <jam> you can copy the description into "Set Commit Message"
[07:39] <fwereade__> jam, btw, thank you ever so much for doing all that work
[07:39] <jam> (its probably the biggest case where things fail for people with Tarmac, I tried to be upfront that it is a failure mode)
[07:39] <jam> I've had that problem as well
[07:40] <jam> there is a patch somewhere that has tarmac set it back to Needs Review with a note that it needs a commit message, which at least avoids the black-hole of 'why isn't this working'
[07:40] <jam> but I haven't tracked it down yet.
[07:40] <TheMue> jam: Hmm, I thought I have something in the commit message. *wonder*
[07:40] <jam> TheMue: https://code.launchpad.net/~themue/juju-core/025-cleaner-worker/+merge/169228 you have a Description set, but not a Commit Message
[07:40] <jam> separate fields
[07:41] <jam> (Launchpad models it as one is the conversation you want to have, vs the thing you want saved for posterity)
[07:41] <TheMue> jam: *aaargh* have to learn this first, thanks
[07:42] <jam> TheMue: as an added bonus, I believe LP's resubmit actually removes a commit message if it was set in the original proposal. And *that* is pretty stupid. :)
[07:42] <TheMue> *drumroll* will see now
[07:43] <jam> TheMue: no proposals for your prerequisite branch
[07:43] <jam> TheMue: I'm cheating by looking at the tarmac log
[07:44] <jam> your 024-cleanup-watcher is marked as 'this must land before I can land 025' but you don't have '024' proposed for merging (and approved)
[07:44] <TheMue> jam: that is already merged. do i have to resubmit it too?
[07:44] <jam> TheMue: I think it is just tarmac confused because of the resubmit
[07:44]  * TheMue is sometimes really astonished
[07:44] <jam> the old proposal was against a different branch, so it isn't seeing it.
[07:45] <TheMue> jam: yes, it has been before the switch
[07:45] <jam> Because you used 'resubmit' things got copied across that aren't relevant (It is no longer a prerequisit)
[07:45] <jam> TheMue: fortunately most of this irons itself out naturally with time, I'll unstick it in a sec
[07:46] <TheMue> jam: thankfully my next branch is one of the post-switch-era
[07:46] <TheMue> jam: great, thanks. otherwise i would have resubmitted and approved it (with commit message)
[07:47] <jam> TheMue: fortunately for prerequisite requirements, Tarmac *does* post to the request: https://code.launchpad.net/~themue/juju-core/025-cleaner-worker/+merge/169228/comments/376486
[07:48] <jam> TheMue: what other branch is affected?
[07:48] <TheMue> jam: nice guy ;)
[07:49] <jam> TheMue: pre-commit hook is now running. It failed to merge, though.
[07:49] <TheMue> jam: aha?
[07:49] <jam> TheMue: my fault
[07:50] <jam> I made a change which broke the tarmac config
[07:50] <jam> will fix now
[07:51] <TheMue> jam: and i'll change my "Getting started" document with our usage of the tools and the procedures
[07:52] <jam> TheMue: precommit now firing again
[07:52]  * jam crosses fingers
[07:54] <jam> TheMue: it is currently on cmd/juju tests, so looks pretty good. We'll find out in about 15min.
[07:55] <TheMue> jam: great, fantastic work
[07:55] <jam> TheMue: sorry it didn't work first time right away, but thanks for being patient
[07:55] <TheMue> jam: no problem, typical migration time experience
[07:56] <TheMue> jam: i'm more happy about your effort for tarmac
[07:56] <TheMue> hmm, sound somehow wrong
[07:56] <TheMue> sounds
[07:57] <TheMue> jam: happy about the work you did :)
[07:57] <jam> thanks
[07:58] <TheMue> jam: so to get sure: if it fails the status will be set to "Needs review" again, but currently no mail notification?
[07:58] <jam> TheMue: it should set the status, and post the failure to the Launchpad proposal, which should generate an email for you
[07:58] <jam> the only thing it doesn't send the email for (but should) is missing a commit message.
[07:59] <TheMue> jam: ok, thanks
[08:00] <jam> TheMue: I certainly see emails from earlier, check if you got them as well
[08:00]  * TheMue now also has an eye on the video stream from Toulouse, where the A350XWB starts for its first flight
[08:01] <TheMue> Ah, just took of, great!
[08:10] <jam> TheMue: and it has landed
[08:12] <TheMue> jam: yep, just seen, fantastic. great job!
[10:26]  * TheMue is at lunch
[12:15] <mgz> danilo, laaaging, you take over for a sec :)
[12:15] <mgz> you can also install a different editor if you  like :P
[12:46] <danilos> mgz, I just tried '-not -name' on find and it works (though -exec seems harder since it doesn't return the subprocess return code, so I am leaving that as xargs :))
[13:43] <TheMue> *pinDrop*
[13:44] <mgz> ping drop? :)
[13:45] <TheMue> mgz: no, just a pin drop, it's so quiet here
[13:46] <TheMue> mgz: but ping drop sound better on irc, indeed
[13:46] <TheMue> sounds
[15:05] <Makyo> fwereade__, chance I could get another look at https://codereview.appspot.com/10237043/ SetCharm soon?
[15:06] <fwereade__> Makyo, sorry, ofc
[15:06] <Makyo> fwereade__, thanks, much appreciated :)
[15:21] <fwereade__> Makyo, LGTM, someone else review it too please :)
[15:21] <Makyo> fwereade__, thanks.
[15:29] <TheMue> Makyo: 2nd LGTM ;)
[15:29] <Makyo> TheMue, Thanks \o/
[15:29] <TheMue> Makyo: yw
[15:46] <rogpeppe1> TheMue: you have a review
[15:47] <TheMue> rogpeppe1: yust seen the mail, thanks
[15:50] <TheMue> rogpeppe1: the non-fatal error is simply due to the fact that it may happen during a short network problem but shall be automatically retried later (currently each minute).
[15:51] <rogpeppe1> TheMue: how is that different from any other error we encounter in the other workers when talking to the state?
[15:51] <TheMue> rogpeppe1: if the resume fails what would we win if we let the worker crash?
[15:51] <TheMue> rogpeppe1: the cleaner also only logs and doesn't crash
[15:51] <rogpeppe1> TheMue: if the state is borked because its connection is broken, won't we need to reconnect to it?
[15:52]  * rogpeppe1 wishes he had a better understanding of mgo failure-modes
[15:52] <TheMue> rogpeppe1: me too
[15:53] <TheMue> rogpeppe1: imo both, cleaner and resumer, don't have an own state that me be confused by an error beside their connection to mongo
[15:54] <TheMue> rogpeppe1: so assuming that the connection is able to reconnect they can repeat their work
[15:54] <TheMue> rogpeppe1: but indeed, i'm right now not sure with this connection
[15:55] <rogpeppe1> TheMue: yeah, i dunno
[15:55] <rogpeppe1> niemeyer: ping
[15:57] <niemeyer> rogpeppe1: Hea
[15:57] <niemeyer> heya
[15:58] <rogpeppe1> niemeyer: yo!
[15:58] <rogpeppe1> niemeyer: how's tricks?
[15:59] <niemeyer> rogpeppe1: Going :)
[15:59] <rogpeppe1> niemeyer: a couple of questions
[16:00] <niemeyer> rogpeppe1: Shoot.. I may not be able to answer them right now because lunch is waiting for me, but perhaps I can think over lunch.
[16:00] <rogpeppe1> niemeyer: just hoping to avoid delving into the source of mgo and wondering: if you get an error, is it necessary to reconnect to mongo, or will it happen automatically?
[16:01] <niemeyer> rogpeppe1: It will reconnect by itself, but!
[16:01] <niemeyer> rogpeppe1: The error on a session, after a connection is abruptly broken, won't go away until you either: 1) discard the session and create a new one; or 2) call Refresh on it
[16:01] <rogpeppe1> niemeyer: second: how easy would it be to add non-authorized s3 access to public-access buckets to goamz? and would you accept a patch that does that?
[16:02] <niemeyer> rogpeppe1: Can't parse the second question
[16:02] <niemeyer> rogpeppe1: I'd be very much against adding non-authorized access to public buckets.. (!? :-)
[16:02] <rogpeppe1> niemeyer: ok. even though they're open access?
[16:03] <niemeyer> rogpeppe1: Sorry, I jokingly meant the question makes no sense
[16:03] <TheMue> niemeyer: open read access, to be more specific
[16:03] <rogpeppe1> niemeyer: currently you need amazon credentials to access them even though amazon doesn't require them, i think
[16:03] <rogpeppe1> niemeyer: when using goamz, that is
[16:04] <rogpeppe1> niemeyer: so... when does mgo reconnect by itself?
[16:04] <rogpeppe1> niemeyer: i'm not helping here by mixing the two questions up together :-) let's deal with the first one first, shall we?
[16:04] <niemeyer> rogpeppe1: I think it'd be okay to accept empty credentials for s3, yeah
[16:05] <niemeyer> rogpeppe1: I haven't thought about the implications of that in the code base, but I'd be happy to analyze with you a patch that does that
[16:05] <niemeyer> rogpeppe1: mgo reconnects whenever necessary
[16:06] <rogpeppe1> niemeyer: our existing plan was to just talk directly to s3 and parse the xml ourselves, but i thought that if it's easy to do in goamz we should probably do that
[16:06] <niemeyer> rogpeppe1: and once every few seconds either way, to keep the cluster state up-to-date
[16:06] <rogpeppe1> niemeyer: but "after a connection is abruptly broken" it's not necessary?
[16:07] <rogpeppe1> niemeyer: maybe i'm not getting the terminology - a "session" is a single connection? or a set of connections?
[16:07] <niemeyer> rogpeppe1: A session is an *mgo.Session
[16:07] <niemeyer> rogpeppe1: If you see a connection error on a session, that error doesn't go away until (1) or (2), as stated
[16:08] <niemeyer> rogpeppe1: You don't have to reconnect manually, you just need to ack the error via closing and recreating, or via the Refresh method
[16:08] <niemeyer> rogpeppe1: This is just because Bad Stuff could happen if a connection was recreated behind your bakc
[16:08] <niemeyer> back
[16:10] <rogpeppe1> niemeyer: i think i need to be refreshed on the terminology here.
[16:10] <rogpeppe1> niemeyer: a Session corresponds to... a single TCP connection?
[16:11] <niemeyer> rogpeppe1: http://godoc.org/labix.org/v2/mgo#Session.SetMode
[16:11] <niemeyer> I'll have lunch while you read this
[16:11] <niemeyer> biab
[16:12] <rogpeppe1> niemeyer: ah, perhaps you mean that once you've got a *Session it always automatically reconnects?
[16:13] <rogpeppe1> niemeyer: enjoy
[16:14] <TheMue> rogpeppe1: btw, List() and URL() already work of the reader, have been trivial, like Get() will be too ;)
[16:15] <rogpeppe1> TheMue: ok, cool
[16:16] <TheMue> rogpeppe1: http get, unmarshalling the two nested structs, iterate of contents, fetch key field, strings.HasPrefix(), simple
[16:16] <rogpeppe1> niemeyer: for when you come back: when can you see a connection error on a session? only at Dial time? or can you get a connection error at any later point? (in which case, how can you tell if it's a connection error so you know to call Refresh or discard the session?)
[16:17] <TheMue> so, me has to leave for today, we'll continue on Monday morning
[16:17] <TheMue> have a nice weekend
[16:34] <rogpeppe1> niemeyer: i've also got to go unfortunately. i'd like to continue the conversation though, as my understanding of this area is lamentably poor and it affects how we will approach some things.
[16:34] <rogpeppe1> niemeyer: have a great weekend
[16:34] <rogpeppe1> and good weekends to all!
[16:40] <niemeyer> rogpeppe1: You can get a socket error at any point
[16:40] <niemeyer> rogpeppe1: It's a normal network connection we're talking about
[16:41] <niemeyer> rogpeppe1: Supposedly, you won't want to continue doing whatever was being done on any unknown error
[16:41] <niemeyer> rogpeppe1: Re-establishing a connection may happen to a different primary, and a pretty different state from what was being accessed before
[16:42] <niemeyer> rogpeppe1: That's why we cannot simply transparently re-establish the connection
[19:13] <FunnyLookinHat> So - I think this might be one of the last few issues barring Rackspace OpenStack support for JUJU: https://bugs.launchpad.net/goose/+bug/1124561
[19:13] <_mup_> Bug #1124561: the Content-Length header is missing <Go OpenStack Exchange:Invalid> <https://launchpad.net/bugs/1124561>
[19:14] <FunnyLookinHat> I can't imagine why the requests wouldn't have the correct Content-Length value
[19:14] <FunnyLookinHat> Even adding Content-Length: 0 seems to be a fix ?