[07:19] <fwereade_> if anyone who knows this is around, I would very much appreciate a brief state of the union on the initial-password thing
[07:20] <fwereade_> ISTM that as it stands we could lose passwords and thereby end up with broken agents
[08:53] <TheMue> Howdy
[09:05] <rogpeppe> davecheney, fwereade_, TheMue: mornin' all
[09:06] <TheMue> rogpeppe: Hiya
[09:10] <davecheney> rogpeppe: morning
[09:11] <davecheney> rogpeppe: i think i got through all of your reviews
[09:11] <rogpeppe> davecheney: thank you!
[09:11] <rogpeppe> davecheney: there are still more branches pending, but i couldn't propose them because they depended on more than one other branch
[09:11] <davecheney> no, thank you, it is looking good
[09:12] <rogpeppe> davecheney: yeah, it's come together ok i think
[09:13] <TheMue> *: anyone interested in reviewing https://codereview.appspot.com/6853075/ and https://codereview.appspot.com/6849102/? Both simple and small, the first is a prerequisite for the second.
[09:16]  * davecheney has a look
[09:19] <TheMue> davecheney: Thx for the first one. ;)
[09:23] <fwereade_> rogpeppe, TheMue, davecheney, dimitern: hey all
[09:23] <rogpeppe> fwereade_: yo!
[09:23] <dimitern> fwereade_: hey
[09:24] <dimitern> I have a question about the http module and httptest
[09:24] <TheMue> fwereade_: Hi.
[09:24] <fwereade_> dimitern, oh yes?
[09:24]  * fwereade_ tries to load state...
[09:25] <dimitern> there is a mentioning of "patterns" and I initially thought I could set up a Mux.Handle("/urlroot/", handler) and it'll handle also urls like /urlroot/somepath, but apparently not
[09:25] <dimitern> it seems there has to be a separate handler for each unique url
[09:26] <fwereade_> dimitern, is there a HandleRegex or something?
[09:26] <dimitern> fwereade_: not that I see - there is Handle and HandleFunc
[09:26] <fwereade_> dimitern, yeah, you're right, not sure where I got that from
[09:27] <fwereade_> dimitern, I guess it's a write-your-own situation then (but if you're doing unit testing, won't the paths be predictable anyway?)
[09:27] <dimitern> fwereade_: so my initial understanding is correct then - I need to have a master handler and attach others as containers/objects are created on separate urls
[09:28] <fwereade_> dimitern, well, it doesn't have to be so complex, this looks sane: http://stackoverflow.com/questions/6564558/wildcards-in-the-pattern-for-http-handlefunc
[09:29] <fwereade_> dimitern, but I guess it depends on what you're actually implementing, so I'm not sure whether that will be helpful
[09:29] <dimitern> fwereade_: 10x, I'll take a look
[09:30] <rogpeppe> dimitern: you can do that
[09:31] <dimitern> rogpeppe: can you give me an example?
[09:32] <rogpeppe> dimitern: perhaps you could give me an example that fails
[09:32] <rogpeppe> dimitern: you're right that ServeMux should let /urlroot/ handle everything under /urlroot
[09:32] <rogpeppe> dimitern: as the documentation says at http://golang.org/pkg/net/http/#ServeMux
[09:33] <dimitern> rogpeppe: hmm, I could not see how this works somehow - my handler is called only when the url matches exactly what was passed to Handle
[09:35] <dimitern> rogpeppe: ah, it seems I'm wrong it does handle subpaths, but the root has to be a dir with / at the end
[09:35] <rogpeppe> dimitern: ah, i wondered if that was the problem
[09:35] <rogpeppe> dimitern: (i thought it probably wasn't because your snippet above *did* have the trailing slash)
[09:36] <dimitern> rogpeppe: yeah, I though it will work in the morning :) after trying a bunch of things yesterday
[10:05] <TheMue> So, both CLs are in for review again.
[10:16] <mramm> TheMue: Great
[10:17] <TheMue> mramm: So far only a package for LXC, not yet the local provider. ;)
[10:23] <mramm> TheMue: understood
[10:26] <TheMue> mramm: But step by step I'm coming nearer.
[10:42] <dimitern> wallyworld, jam, mgz: https://codereview.appspot.com/6851112 - this is the swift double
[10:42] <jam> dimitern: no mp for it?
[10:43] <dimitern> jam: there is one in the mail - https://code.launchpad.net/~dimitern/goose/swift-testing-service/+merge/136362
[10:48] <dimitern> it's not perfect yet, some more testing with canonistack is needed to verify the responses/codes match every time
[10:48] <jam> d
[10:48] <jam> dimitern: do we actually get 501 Not Implemented when doing a GET on a container?
[10:48] <dimitern> jam: no, but we don't have that API implemented in the client
[10:49] <jam> dimitern: so looking a "swiftservice/service_test.go" it seems a bit confused as to whether it is testing the HTTP api or the direct function calls on the service. I would probably try to tease those apart a bit more.
[10:49]  * mgz has a look as well
[10:49] <jam> You can set things up with direct calls, and then have a single HTTP request with asserts on the results, for example.
[10:50] <dimitern> jam: I originally wanted to test them separately, but it took so much time to figure out how to do the server right, so i kinda mixed them together so I can have something to show
[10:51] <dimitern> jam: yeah, the problem is not all of the direct calls have implemented API calls to test
[10:51] <jam> dimitern: is there a reason to check HasSuffix before calling TrimRight? It seems like just calling TrimRight will always be correct (if it doesn't have the suffix, nothing gets trimmed)
[10:52] <dimitern> jam: after spending a couple of hours struggling, i tend to get very picky about what to check :) but I suppose you're right - it can be simpler
[10:57] <mgz> jam: any idea why passing -gocheck.v when running tests makes it so no tests are run?
[10:57] <jam> mgz: because "go test" isn't very good?
[10:57] <jam> ./... is incompatible with passing argument
[10:57] <jam> arguments
[10:57] <mgz> >_<
[10:57] <jam> so '-gocheck.v' must be run in a package one-by-one
[10:58] <jam> mgz: what you are missing is that it *is* running the 'goose' test suite, which doesn't have any actual test cases.
[10:58] <mgz> (cd http && go test -gocheck.v) style thing?
[10:58] <jam> mgz: correct.
[10:58] <mgz> ta.
[10:58] <jam> I'm very ready to add a Makefile
[10:58] <jam> to work around this sort of thing.
[10:58] <jam> -live has the same problem.
[10:59] <mgz> ah, I'd not connected up that issue with this one
[11:04] <jam> mgz: -live *also* has the problem that not every test suite supports -live, so 'go test -live ./...' is trying to pass it to every sub suite. But there are some weird things about "go test ./... -gocheck.v" not acting the same as "go test -gocheck.v ./..." etc.
[11:14] <niemeyer> Gooood mornings/evenings
[11:14] <fss> niemeyer: morning :-)
[11:15] <fwereade_> niemeyer, heyhey
[11:15] <davecheney> morning/evening
[11:16] <fwereade_> niemeyer, I have a thought re Container, and our shared discomfort yesterday -- I'm getting surer and surer that the existing Container is not Container at all, but something more like Deployer (notwithstanding the confusion with the mooted worker of the same name)
[11:16] <fwereade_> niemeyer, the existing one deploys units onto the local system; one day there will be one that deploys units into isolated containers
[11:17] <fwereade_> niemeyer, either way we're interested in a <thing> with Add/Remove/List functionality
[11:17] <niemeyer> fwereade_: Agreed on the latter.. I think the former is a red herring at this point
[11:18] <fwereade_> niemeyer, the name, you mean?
[11:18] <niemeyer> fwereade_: I'd be happy to rename if it feels better to you
[11:18] <fwereade_> niemeyer, I'm ok with keeping it Container but only because I want to call the worker Deployer
[11:18] <fwereade_> niemeyer, I'd be happiest if we could come up with clear independent names
[11:18] <niemeyer> fwereade_: Actually, no, you're right.. Container is wrong
[11:19] <niemeyer> fwereade_: It doesn't really deploy a new container when we're deploying a subordinate
[11:19] <fwereade_> niemeyer, exactly
[11:20] <fwereade_> niemeyer, I've consider variations on Placer, Deployer, etc, nothing has really made me happy
[11:21] <mgz> wallyworld: eg:
[11:21] <mgz>         // Ensure that it conforms to the interface
[11:21] <mgz>         var _ IdentityService = identity
[11:22] <niemeyer> fwereade_: Installer?
[11:22] <davecheney> i prefer deployer
[11:22]  * davecheney isn't helping
[11:23] <niemeyer> mgz: Although, that's rarely really necessary, since you'll end up using the interface somewhere in the code
[11:23] <niemeyer> mgz: An exception would be cases where you the interface is purely for the benefit of outsiders
[11:23] <niemeyer> s/you//
[11:27] <fwereade_> niemeyer, yeah, I'll try that
[11:41] <niemeyer> davecheney: https://codereview.appspot.com/6854098/ seems to have the same testing issue of the previous change
[11:41] <niemeyer> davecheney: Maybe we should talk about this in the meeting
[11:42] <dimitern> jam, davecheney: thanks for the review
[11:42] <niemeyer> davecheney: I think the agenda is locked up for writing
[11:43] <mramm> is there an agenda google doc?
[11:45] <niemeyer> mramm: davecheney sent one to c-juju
[11:46] <mramm> got it
[11:46] <mramm> but yea, it's locked for me
[11:57] <davecheney> ffs, google docs is supposed to be easy
[11:57] <davecheney> fixed
[11:59] <niemeyer> davecheney: Good trick to define an agenda, though.. I'll keep that on the sleeve :_0
[11:59] <niemeyer> :-)
[12:01] <niemeyer> fwereade_, rogpeppe, davecheney: Meeting time
[12:03] <niemeyer> jam: Meeting?
[12:03] <jam> niemeyer: I didn't get the invite, I think
[12:04] <niemeyer> jam: https://plus.google.com/hangouts/_/6bf74b0f9014d194ecf62a78f75351a1876c5490?authuser=0&hl=en
[12:40] <davecheney> this hangout is full
[12:40] <davecheney> niemeyer: can you kick my ghost if he is still in the chat ?
[12:41] <niemeyer> davecheney: Can't, but it just went away
[12:41] <davecheney> did everyone get kicket ?
[12:41] <niemeyer> davecheney: Nope, just your connection dropped
[12:46] <davecheney> mramm2: common back buddy
[12:46] <mramm2> trying
[12:47] <mramm2> getting hangout full message when I try to reconnect
[12:47] <davecheney> try again
[12:47] <mramm2> so that answers the 15 person limit question...
[12:47] <davecheney> your doppleganger has left
[12:49] <jam> mramm2: do you want to give an overview of what you wanted for Juju 2.0 release plans?
[12:50] <mramm2> Dave, can you talk people through the document we created?
[12:50] <mramm2> I will keep trying to rejoin the meeting
[12:55] <dimitern> I got kicked out as well and now it's saying hangout full
[12:55] <davecheney> dimitern: wait a few mins
[12:55] <davecheney> maybe 2
[12:55] <jam> probably it has to timeout the connection
[12:55] <dimitern> davecheney: ok
[12:55] <davecheney> then you're shadow leaves
[12:55] <jam> dimitern: try now
[12:55] <jam> it just dinged you leaving
[12:55] <davecheney> dimitern: that is what happened to me
[12:58] <rogpeppe> mramm2: you're frozen
[12:59] <davecheney> mramm2: you can now get back in
[12:59] <davecheney> your guy has left
[13:01] <niemeyer_> My connection died..
[13:01] <niemeyer_> Perfect timing
[13:02] <niemeyer_> davecheney: ping
[13:02] <mramm> We can pick up that discussion next week
[13:02] <fwereade_> lunch, bbiab
[13:02] <mramm> nothing particularly urgent about it
[13:02] <mramm> 0:01 mramm: flipping wifi
[13:02] <mramm> 20:02 mramm: sorry, the wifi dropped
[13:02] <mramm> 20:02 mramm: We can pick up that discussion next week
[13:03] <mramm> I tried switching over to my cell phone and 3g
[13:03] <mramm> but that took forever, and didn't work very well anyway
[13:03] <mramm> so sorry about all that
[13:03] <dimitern> mramm: you're still in thailand?
[13:04] <mramm> yea
[13:04] <mramm> for another week
[13:04] <mramm> I will be on vacation tomorrow through friday again
[13:04]  * dimitern lunch as well
[13:10] <niemeyer> Mr. Ramm³
[13:35] <mramm> and now my wifi signal is back to zero packet loss
[13:35] <mramm> (spoke too soon, now back to loosing packets like mad) :(
[13:35] <rogpeppe> mramm: G+ scorched the airwaves
[13:36] <mramm> yea
[13:36] <mramm> anyway, thanks everybody
[13:39] <fss> niemeyer: ping
[13:42] <fss> niemeyer: I've sent two news CLs for goamz regarding iam support
[13:42] <fss> niemeyer: https://codereview.appspot.com/6858081/
[13:42] <fss> niemeyer: and https://codereview.appspot.com/6855104/
[13:42] <fss> niemeyer: have fun :-P
[13:47] <niemeyer> fss: Brilliant, thanks :)
[13:52] <hazmat> niemeyer, got time to meetup today re charm collection? i had scheduled a meeting for a few minutes from now, but happy to relocate if you'd prefer
[13:53] <niemeyer> hazmat: It's about noon local time
[13:55] <hazmat> niemeyer, meaning lunch time? would +1 hr work better?
[13:57] <niemeyer> hazmat: We can do it at 16UTC if that works for you
[13:59] <hazmat> niemeyer, sounds good, thanks
[13:59] <niemeyer> hazmat: np
[14:20] <rogpeppe> niemeyer: --ca-cert flag branch might be ready to roll now: https://codereview.appspot.com/6842088/
[14:21] <niemeyer> rogpeppe: "the branch that adds that field has only just landed, and i've been trying to minimise prereqs."
[14:21] <niemeyer> rogpeppe: Ah, nevermind
[14:22] <rogpeppe> niemeyer: it seemed a reasonable compromise because that was the only dependency.
[14:23] <niemeyer> rogpeppe: What about cmd/filevar.go?
[14:23] <rogpeppe> niemeyer: i replied about that
[14:23] <rogpeppe> niemeyer: it actually makes things harder
[14:23] <niemeyer> rogpeppe: Sorry, I've missed the comment when going through the review
[14:23] <niemeyer> rogpeppe: I see it now.. just a sec
[14:24] <niemeyer> rogpeppe: LGTM, thanks for the changes
[14:24] <rogpeppe> niemeyer: cool, thanks. my only blocker to proposing the rest of the changes is now https://codereview.appspot.com/6782119/
[14:24] <niemeyer> rogpeppe: Woot
[14:24] <niemeyer> rogpeppe: I'll get to that after lunch
[14:25] <rogpeppe> niemeyer: that would be ace, thanks
[14:36] <niemeyer> Lunch, biab
[15:22] <fwereade_> rogpeppe, btw, I was meaning to ask
[15:22] <fwereade_> rogpeppe, what's the roadmap wrt --initial-password?
[15:23] <rogpeppe> fwereade_: how do you mean?
[15:23] <fwereade_> rogpeppe, I can't see anywhere that the new password is stored -- how do we reconnect after we bounce?
[15:23] <rogpeppe> fwereade_: ISTR it is stored, let me check.
[15:24] <fwereade_> rogpeppe, I'm probably just being dense then
[15:24] <rogpeppe> fwereade_: oh i remember
[15:24] <rogpeppe> fwereade_: it is stored, but not explcitly
[15:24] <fwereade_> rogpeppe, it is stored in the state, it is true, but AIUI one needs the password to access the state to read the password, IYSWIM
[15:24] <fwereade_> rogpeppe, ah go on
[15:25] <rogpeppe> fwereade_: it's in the command line arguments stored in the upstart file
[15:25] <rogpeppe> maybe
[15:25] <fwereade_> rogpeppe, I'm not sure I approve of agents rewriting their own upstart files
[15:25] <rogpeppe> fwereade_: they don't need to
[15:25] <fwereade_> rogpeppe, I think that's their installer's responsibility alone
[15:25] <rogpeppe> fwereade_: the initial password is just that - the initial password
[15:26] <rogpeppe> fwereade_: when they start up, the agents create a new random password and save that
[15:26] <fwereade_> rogpeppe, where is it saved?
[15:26] <rogpeppe> fwereade_: (check out openState in jujud/agent.go)
[15:27] <fwereade_> rogpeppe, GAH thank you
[15:27]  * fwereade_ is unsure how he missed that
[15:27] <rogpeppe> fwereade_: a quick grep for WriteFile reminded me
[15:28] <fwereade_> rogpeppe, that file totally addresses all the things I've been confused about
[15:28] <fwereade_> rogpeppe, tyvm
[15:28] <rogpeppe> fwereade_: np
[15:28] <rogpeppe> fwereade_: i'd like a chat about some aspects of the transition to the API at some point
[15:29] <rogpeppe> fwereade_: if you've a moment, perhaps we could do a G+
[15:29] <fwereade_> rogpeppe, sure, just a mo
[15:30] <fwereade_> rogpeppe, invite away, I won't be more than a couple of mins
[15:31] <rogpeppe> fwereade_: done
[16:04] <niemeyer> hazmat: ping
[16:09] <hazmat> niemeyer, pong
[16:10] <hazmat> niemeyer, need 5m.. in team meeting
[16:10] <niemeyer> hazmat: 'k
[16:15] <hazmat> niemeyer, https://plus.google.com/hangouts/_/db47985b7be28b5f158ccd0912e0df10e7aa029f
[16:16] <niemeyer> hazmat: Just finishing a review
[16:21] <niemeyer> rogpeppe: Review mostly done
[16:21] <niemeyer> rogpeppe: Sent a few comments that need action
[16:21] <niemeyer> rogpeppe: Skimmed through the rest as hazmat wants to talk
[16:22] <niemeyer> rogpeppe: Will re-review once you repush
[16:22] <niemeyer> hazmat?
[16:23] <rogpeppe> niemeyer: thanks!
[16:24] <hazmat> niemeyer, ready.. at hangout url above
[16:24] <hazmat> oh..
[16:24] <niemeyer> hazmat: That's where I am
[16:24] <hazmat> i guess i killed it
[16:50] <rogpeppe> niemeyer: all done, i think. https://codereview.appspot.com/6782119
[16:51] <niemeyer> rogpeppe: Checking
[17:01] <niemeyer> rogpeppe: That's done
[17:01] <niemeyer> rogpeppe: Very nice
[17:01] <rogpeppe> niemeyer: cool!
[17:02] <rogpeppe> niemeyer: thanks a lot. prepare for a few more CLs...
[17:03] <rogpeppe> niemeyer: BTW the zero-case in your suggestion could never happen, because X509KeyPair would return an error in that case.
[17:03] <rogpeppe> niemeyer: perhaps i should just change the check to >1
[17:03] <rogpeppe> niemeyer: because that case can actually happen, potentially.
[17:04] <rogpeppe> niemeyer: although... your suggested error message is fine too. i'll just use that.
[17:19]  * TheMue also has the two CLs https://codereview.appspot.com/6853075/ and https://codereview.appspot.com/6849102/ open for further reviews, first feedback has been entered.
[17:21] <TheMue> And tomorrow I'll start outlining the local provider. But until then have a nice evening.
[17:47] <rogpeppe> 1 conflict resolved, 15 remaining
[17:49] <rogpeppe> i just love it when a file looks like this: http://paste.ubuntu.com/1392259/
[17:50] <rogpeppe> and i need to choose bits from both source and tree
[17:54] <fwereade_> rogpeppe, oh, fun
[17:55] <rogpeppe> fwereade_: i'm getting through it. "tree for this, source for that, ooh, a bit of source needed in that tree, ah, a bit of tree needed in that source." it's not too bad really, just a pain
[17:57] <dimitern> I'm getting &http.badStringError{what:"malformed HTTP response", str:"0"} ("malformed HTTP response \"0\"") from the client, when the test server sends a perfectly valid HTTP 204 No Content response with no body
[17:58] <dimitern> the "0" str is the end of the body (0\r\n delimiter, as per the transfer-encoding - chunked)
[17:59] <dimitern> rogpeppe, niemeyer: any idea what I'm doing wrong?  ^^
[18:00] <rogpeppe> dimitern: can you narrow the code down to a small test case?
[18:00] <dimitern> there are no errors on the server part - did logging, sniffing with wireshark - all looks fine, just the client part is not liking what it's own server module serialized..
[18:01] <dimitern> rogpeppe:  well, I'll try and post a paste
[18:13] <dimitern> rogpeppe: I got it!
[18:13] <rogpeppe> dimitern: often happens that way :-)
[18:13] <rogpeppe> dimitern: what was the problem?
[18:13] <dimitern> rogpeppe: http://paste.ubuntu.com/1392332/
[18:13] <dimitern> rogpeppe: don't know yet, but managed to isolate it - it happens every odd request
[18:14] <rogpeppe> dimitern: cool
[18:14] <rogpeppe> dimitern: i have a call to go down to eat - will take a look after food
[18:15] <dimitern> rogpeppe: cool, 10x
[18:21] <dimitern> niemeyer: ping
[18:21] <niemeyer> dimitern: Yo
[18:22] <dimitern> niemeyer: hey, are you aware of some weird issues with sending responses with no body multiple times in a row ? see the paste ^^ and run it, if you have 5 mins
[18:23] <niemeyer> dimitern: Hmm
[18:23] <niemeyer> dimitern: I'm not aware, looking
[18:23] <dimitern> niemeyer: that's an example of the error i'm getting in my module, stripped down
[18:23] <dimitern> niemeyer: if you run it, every odd request ends in an error, but the even ones pass - wierd
[18:24] <niemeyer> dimitern: Interesting, let me understand what this is doing
[18:25] <dimitern> niemeyer: not much, it seems sending no body in the handler is enough to trigger this on the client side
[18:27] <dimitern> niemeyer: it seems related to the fix proposed here: http://code.google.com/p/go/issues/detail?id=1388 - I get the error exactly on the line "if len(f) < 2"
[18:30] <niemeyer> dimitern: Interesting
[18:31] <dimitern> niemeyer: it also happens with go-tip, just checked
[18:31] <niemeyer> dimitern: This is what goes in the wire, and why you see the odd/even behavior: http://pastebin.ubuntu.com/1392393/
[18:32] <niemeyer> dimitern: That "0" shouldn't be there
[18:32] <dimitern> niemeyer: yes, that 0 looked weird to me, until I checked the HTTP Transfer-Encoding header: http://en.wikipedia.org/wiki/Chunked_transfer_encoding
[18:33] <dimitern> niemeyer: and it seems 0\r\n should be there when no body exists, in addition no Content-Length header is present - HTTP/1.1 stuff
[18:34] <dimitern> niemeyer: what puzzles me is why it happens only every other request, if it's malformed - it should either pass or fail always
[18:34] <niemeyer> dimitern: Due to the 0
[18:35] <dimitern> niemeyer: maybe if I somehow force HTTP/1.0 with Content-Length - that's a possible workaround
[18:35] <dimitern> niemeyer: yeah, the 0 borks it, but you see my point, right?
[18:36] <niemeyer> dimitern: Which of them?
[18:37] <dimitern> niemeyer: the inconsistent result - it fails every second request, when the code is doing the same
[18:37] <niemeyer> dimitern: Because of the ero
[18:37] <niemeyer> zero
[18:37] <niemeyer> dimitern: it's being observed as a response
[18:37] <dimitern> niemeyer: this looks like a bug in net/http for me
[18:38] <niemeyer> dimitern: It definitely is
[18:38] <niemeyer> dimitern: The example is trivial
[18:39] <rogpeppe> dimitern: yeah, definitely looks like a bug
[18:39] <rogpeppe> dimitern: you should raise an issue
[18:40] <rogpeppe> dimitern: in the meantime, i guess the fix is just don't use that http status...
[18:41] <dimitern> rogpeppe: or maybe using HTTP/1.0 instead?
[18:41] <niemeyer> dimitern: Just send a 200 status without content
[18:42] <niemeyer> dimitern: I'm pretty sure the bug is related to the 204 result
[18:42] <niemeyer> dimitern: Or do you need the 204 for some reason?
[18:42] <dimitern> niemeyer: well, yes I need it - i'm trying to mimic Swift as much as possible, including response codes
[18:42] <niemeyer> dimitern: Cool, give me a moment then
[18:43] <niemeyer> dimitern: Write this before the WriteHeader line:
[18:43] <niemeyer> w.Header()["Content-Length"] = []string{"0"}
[18:44] <dimitern> niemeyer: ok, I'll try that
[18:45] <dimitern> niemeyer: works
[18:45] <niemeyer> dimitern: Super
[18:45] <dimitern> niemeyer: so I'll file a bug in go then
[18:45] <niemeyer> dimitern: Thanks
[18:46] <niemeyer> dimitern: That disables chunked encoding, avoiding the code path
[18:46] <niemeyer> dimitern: It feels like the bug is in the reading side
[18:46] <niemeyer> dimitern: And it's not entirely surprising.. using chunked encoding with a zero length content is a bit weird
[18:46] <dimitern> niemeyer: yeah, exactly my point
[18:47] <niemeyer> dimitern: So I honestly can't tell whose fault it is without diving in the spec..
[18:47] <niemeyer> dimitern: Either way, the http package should be resilient to such mistreating
[18:48] <dimitern> niemeyer: I expected so yeah, anyway - I'll do my good deed for the day filing the issue
[18:52] <rogpeppe> niemeyer, dimitern: presumably: w.Header().Set("Content-Length", "0") would be an equivalent (and slightly nicer looking) workaround?
[18:54] <dimitern> rogpeppe: indeed - works like that and looks better
[18:57] <dimitern> niemeyer, rogpeppe: thanks for your help, I'm off
[18:57] <rogpeppe> dimitern: np. have fun.
[19:22] <rogpeppe> niemeyer: fairly trivial: https://codereview.appspot.com/6847114/
[19:27] <niemeyer> rogpeppe: Looking
[19:29] <rogpeppe> niemeyer: and this is the last significant step before actually enabling TLS: https://codereview.appspot.com/6854107/
[19:35] <niemeyer> rogpeppe: Done
[19:35] <rogpeppe> niemeyer: thanks
[19:42] <niemeyer> I'll step out for a while.. will be back later to tame the review queue a bit further
[20:04] <rogpeppe> niemeyer: the final step: https://codereview.appspot.com/6856105/
[20:05] <rogpeppe> niemeyer: one issue that occurs to me: perhaps we should bump the major version number with this CL, because it's incompatible with the previous version.
[20:06] <rogpeppe> niemeyer: it would give us a chance to see what it's like to bump the major version too
[20:06] <rogpeppe> right, that's me for the night, a good place to stop i think
[22:10] <fwereade_> yay! the Installer does the Right Thing, and the machine can now clean up after its units
[22:11] <fwereade_> on a sour note, I suspect the mysql charm of pooing a "mysql.passwd" file into /var/lib/juju
[22:11] <fwereade_> hey ho
[22:43] <niemeyer> fwereade_: Woohay!
[22:44] <fwereade_> niemeyer, I have noticed a couple of minor stupidities in the branches still in the queue, but I think nothing unfixable; I'll updat ethem tomorrow
[22:44] <niemeyer> fwereade_: Sounds good
[22:45] <fwereade_> niemeyer, and will be able to propose this as well; assuming you feel the series is sane enough, I can start merging through from machine-string-ids onwards
[22:46] <niemeyer> fwereade_: Superb
[22:52] <niemeyer> fwereade_: What are the details you'd like to fix about?
[22:52] <niemeyer> fwereade_: Just so I know once I go over them
[23:40] <niemeyer> fwereade_: You've got a review..
[23:40] <niemeyer> fwereade_: Great stuff