--- Log opened Tue Dec 11 00:00:54 2012 00:03 < TooTallNate> isaacs: wat!? 00:03 < TooTallNate> isaacs: so you got stdin figured out then? 00:03 < sblom> isaacs: congrats 00:15 <@piscisaureus_> isaacs: nice! 00:22 <@piscisaureus_> ircretary: tell bnoordhuis It seems that your linger patch actually makes TCP connections be reset 00:22 < ircretary> piscisaureus_: I'll be sure to tell bnoordhuis 00:46 <@isaacs> TooTallNate: yeah 00:46 <@isaacs> TooTallNate: it needs a bit of cleanup. 00:46 <@isaacs> and the last libuv update breaks it 00:47 <@isaacs> so, still some work to be done 00:47 < TooTallNate> how did libuv break it? 00:47 < dscape> indutny: gtalk is dead today 00:47 <@isaacs> TooTallNate: doesn't break stdin, but broke large tcp writes, only on streams2-net 00:47 < dscape> im here 00:53 <@isaacs> dscape: thanks :) 00:53 <@isaacs> dscape: (for the kind tweet) 00:54 < dscape> well earned isaacs 00:54 < dscape> its been impressive, both quantitively and qualitatively 00:54 < dscape> even if you are not shipping every 6 days (yet) :P 00:55 <@isaacs> haha 00:55 <@isaacs> onec 0.10 lands, we'll have weeklies. 00:56 <@isaacs> or if i can convince tjfontaine to set up a CI thing for weekly unstables, as well 00:56 < mjr_> Once we get indutny's last openssl fix in, I think we can finally upgrade to node 0.8. 00:56 < mjr_> Hope that happens before 0.10 00:59 < MI6> joyent/node: isaacs v0.8 * 92e92b0 : doc: Add nodejstr to community page - http://git.io/uD6-6A 01:00 <@piscisaureus_> mjr_: you are corporate, why not just skip 0.8 :-) 01:01 <@piscisaureus_> node can be like window 01:01 <@piscisaureus_> s 01:02 < mjr_> It makes me sad to not be running the latest release 01:02 < mjr_> Feels like somebody is doing it wrong. 01:03 <@piscisaureus_> Ah, I don't know 01:03 <@piscisaureus_> if you had asked me a year ago I'd have wholeheartedly agreed 01:04 <@piscisaureus_> But this is not a browser, we can't do silent upgrades 03:28 <@isaacs> piscisaureus_: unless.... 08:44 < roxlu> hi 08:53 < roxlu> indutny: do you have a sec for a ssl/libuv question? I've got a almost complete ssl buffer setup that i use with libuv, though I'm getting a wierd error: https://gist.github.com/8e95ec4a125058207f24 09:35 * benoitc wish there would be an ssl watcher 10:23 < roxlu> me too :) 10:49 < bnoordhuis> morning 10:59 < bnoordhuis> is googlegroups broken at the moment? it tells me i need to be a manager when i try to open the moderation queue 10:59 < roxlu> bnoordhuis: I can see my groups 11:01 <@piscisaureus_> hello 11:03 < bnoordhuis> piscisaureus_: sup bertje? coming to the office today? 11:03 <@piscisaureus_> bnoordhuis: ehhhh. Are you? 11:03 < bnoordhuis> piscisaureus_: not are. am 11:03 <@piscisaureus_> bnoordhuis: well, in that case, ok 11:04 <@piscisaureus_> bnoordhuis: are you the ony one? or is Ruben there? 11:04 < bnoordhuis> piscisaureus_: ruben's also here 11:04 <@piscisaureus_> ok 11:04 <@piscisaureus_> I will come 11:04 < bnoordhuis> roxlu: 'my groups' is groups you moderate? 11:04 < roxlu> yes 11:04 <@piscisaureus_> bnoordhuis: be there is 30 to 45 minutes 11:04 < bnoordhuis> hm, must be something on my side then 11:04 < bnoordhuis> piscisaureus_: don't forget to shower 11:05 <@piscisaureus_> That was exactly the point actually ;-) 11:05 <@piscisaureus_> bnoordhuis: good that you are there, btw 11:05 < bnoordhuis> yes? 11:10 <@piscisaureus_> yes 11:11 < bnoordhuis> roxlu: thanks, turned out the issue was indeed on my side (stale cookies) 11:11 < roxlu> np 11:25 < roxlu> benoitc: I've got a SSLbuffer which works with libuv to create a https connection 11:26 < roxlu> benoitc: I can paste it if you'd like 12:00 < bnoordhuis> ircretary: tell isaacs re test-https-drain, bufSize=130773 works, 130774 hangs - but it's not the event loop itself that stalls. maybe you're forgetting to resume() the stream somewhere? 12:00 < ircretary> bnoordhuis: I'll be sure to tell isaacs 12:00 < bnoordhuis> ircretary: tell isaacs another thing that's fishy is that the test in the streams2-stdin-wip branch doesn't write nearly as much data as in master 12:00 < ircretary> bnoordhuis: I'll be sure to tell isaacs 12:12 < bnoordhuis> ircretary: tell isaacs btw, here's a test that demonstrates the brokenness must be in the streams2 branch somewhere: https://gist.github.com/c9c968b1d8c7579bdff6 - works with master, hangs at n=0 with streams2 12:12 < ircretary> bnoordhuis: I'll be sure to tell isaacs 12:13 < bnoordhuis> piscisaureus_: 45 minutes eh? 12:14 <@piscisaureus_> time warp 12:14 <@piscisaureus_> when I take a shower time slows down 12:14 <@piscisaureus_> no worries its speedy again 12:14 <@piscisaureus_> leaving the house now 13:18 < benoitc> roxlu: i can be interrested yes 13:18 <@piscisaureus_> https://github.com/wehu/mo 14:13 <@indutny> roxlu: heya 14:13 <@indutny> just came back from groceries 17:02 < bnoordhuis> isaacs: any luck with streams? 17:02 < bnoordhuis> *streams2 17:02 < TooTallNate> i think achieved 0 failing tests last night 17:03 < TooTallNate> stick a "he" in there somewhere… 17:04 < bnoordhuis> okay, good. is that with or without libuv reverts? 17:06 < TooTallNate> he said uv-HEAD caused some failures 17:06 < TooTallNate> if that's what you're talking about 17:07 < bnoordhuis> that's what i'm talking about 17:10 < TooTallNate> i'm not sure if he got that figured out or not 17:11 < bnoordhuis> i did some experiments this morning but it looks like the issue is more with streams2 than libuv 17:19 <@indutny> we should call it libuv2 17:56 < TooTallNate> isaacs: is there a way to make Readable's do a _read() *before* the user calls .read() 17:59 <@isaacs> TooTallNate: set the lowWaterMark to something higher than 0 18:00 < TooTallNate> isaacs: ok, that's what i thought… didn't seem to be working. let me try again 18:00 <@isaacs> TooTallNate: this should do it: new ReadableBlah({lowWaterMark:1024}) 18:00 <@isaacs> TooTallNate: if it's not working, then.. hm. maybe it doesn't do that. but i think it should :) 18:00 <@isaacs> TooTallNate: patch welcome :) 18:01 < TooTallNate> isaacs: is readable-stream@0.0.4 up-to-date? 18:02 <@isaacs> TooTallNate: hmm.. not quite. i just landed some fixes in streams2-stdin-wip that haven't made it back yet. 18:03 <@isaacs> ircretary: tell bnoordhuis that was with the libuv reverts. but that doens't mean that net.js in streams2 impl isn't the culprit. 18:03 < ircretary> isaacs: I'll be sure to tell bnoordhuis 18:03 <@isaacs> ircretary: tell bnoordhuis Any pointers would be very helpful. 18:03 < ircretary> isaacs: I'll be sure to tell bnoordhuis 18:04 < TooTallNate> isaacs: hmm, ya, i don't think lowWaterMark is working as expected 18:05 <@isaacs> TooTallNate: i'd have the ctor make a check but then you couldn't do var r = new Readable(); r._read = function(...) 18:05 <@isaacs> TooTallNate: because it'd throw 18:05 < TooTallNate> hmmmm 18:05 < TooTallNate> good point 18:05 < TooTallNate> here's my test case https://gist.github.com/ded5ae3e335d0c487895 18:06 < TooTallNate> can't we just nextTick that first one? 18:06 <@isaacs> TooTallNate: yeah, i guess os 18:06 <@isaacs> Readable could do process.nextTick(function() { check if it needs a read, and isn't already reading, and if so this._read() }) 18:07 < TooTallNate> sgtm i think 18:07 <@isaacs> basically, it'd probably be as simple as: process.nextTick(function(){ if (state.length < state.lowWaterMark) self.read(0) }) 18:07 <@isaacs> i have concerns about that doing weird things to stdin, but it shouldn't because stdin has a lwm=0 18:08 <@isaacs> in fact, lwm=0 is the default everywhere, so it'd only be in cases where we've explicitly set the default higher (like fs streams) or if you've explicitly made the lwm higher 18:09 < TooTallNate> right, only for streams that need to consume some data before .read(), in order to emit some useful event 18:09 < TooTallNate> like the "format" at the beginning of the stream 18:15 <@isaacs> i'm definitely a bit wary of putting stuff in the Readable ctor 18:15 <@isaacs> this is still scaring me a little bit 18:16 <@isaacs> i mean, that's a LOT of extra nextTicks that we'll be adding... 18:16 <@isaacs> we could do the check before scheduling the nextTick, but the problem there is that it wouldn't work if a child class changes the default *after* calling Readable.call(this, options) 18:16 <@isaacs> TooTallNate: ^ 18:17 <@isaacs> TooTallNate: i think the best solution is to require that the consumer either call read() or resume() or on('data',fn) to indicate interest 18:17 <@isaacs> TooTallNate: though it is a bit silly that the first read() will *always* be null 18:19 <@indutny> shit 18:20 < TooTallNate> isaacs: i guess i can call .read(0) once before returning the stream :\ 18:20 <@indutny> this ssl shutdown thing is so complicated :) 18:20 < TooTallNate> isaacs: which is the "hack" i currently have in place 18:20 <@isaacs> TooTallNate: sure. you could also just return the stream, and let the user decide when to start reading 18:20 < TooTallNate> isaacs: the problem is I need to consume some of the stream and emit an event with useful information *before* the user would even want to read from the stream 18:21 < TooTallNate> i.e. the user needs this "format" information before consuming the PCM data 18:22 <@isaacs> TooTallNate: oh, ok 18:29 < TooTallNate> isaacs: we could also only nextTick in Readable ctor *iff* lwm!=0 18:29 < TooTallNate> isaacs: cause my test case should work IMO 18:37 <@isaacs> TooTallNate: right, i guess you have to set the default options before calling Readable.call(this, opt) anyway 18:54 <@isaacs> oh, you know what's awesome about streams2? now we can do cat[1] in 1 line instead of 2 18:54 <@isaacs> process.stdin.pipe(process.stdout) is enough 18:54 <@isaacs> no need to add process.stdin.resume() 19:00 < TooTallNate> isaacs: so this seems to work https://gist.github.com/7ddb4551bd941e84b104 19:01 < TooTallNate> isaacs: oh wait, it's not "this.lowWaterMark" 19:01 < TooTallNate> damn 19:01 < TooTallNate> ok updated :) 20:20 < roxlu> hey! 20:21 <@indutny> рун 20:21 <@indutny> hey 20:21 < roxlu> I'm using the http_parser and wondering if it's possible to use it w/o specifiying all the callbacks? 20:23 < roxlu> oh hang on... that works.. just need to '0' all others 20:23 < roxlu> sorry 20:34 <@indutny> ok 20:34 <@indutny> np 20:37 < roxlu> does http_parser_settings.on_body returns clean "data" when the response is chunked? Or does it contains the size of the chunk too? 20:46 <@indutny> hm... 21:09 < roxlu> hehe 21:10 < roxlu> indutny: it looks like it gives me the [chunk_size][chunk_data] 21:12 < roxlu> I'm downloading a complete (chunked) response then sending it to http_parser_execute(). 21:51 < roxlu> I looks like http_parser fails on this one: https://gist.github.com/f233a281d25aa5055f61 22:38 <@isaacs> i'm writing a tcp client/server test using just process.binding('tcp_wrap') to try to suss out why the libuv change messes up streams2 22:38 <@isaacs> boy oh boy, this api is pretty obtuse 22:40 < mmalecki> let's all write things using wraps for a day 23:08 < TooTallNate> isaacs: thoughts on my patch? 23:09 <@isaacs> TooTallNate: seems right 23:22 <@isaacs> fastest node echo server EVAR https://gist.github.com/4263245 23:24 < mmalecki> thanks to the new gist design I thought it's a repo 23:24 < mmalecki> and I was like 23:24 < mmalecki> WAT IS THIS A MODULE 23:24 < LOUDBOT> CLICK FURIOUSLY AT THE SAME SPOT 23:24 < mmalecki> ...will do, LOUDBOT 23:37 <@isaacs> oh k, i think i might have found that there is an issue in the streams2-net client. 23:38 <@isaacs> but i get the *same* behavior both with the libuv changes and without them. 23:39 <@isaacs> so... i don't think its THE problem. 23:41 <@isaacs> ok, no, that's definitely not the real problem. 23:43 <@piscisaureus_> isaacs: so did or did you not figure out the stdin problem? 23:44 <@piscisaureus_> isaacs: *argh* now people will be using tcp_wrap. Nooooooo --- Log closed Wed Dec 12 00:00:01 2012