00:07:39  * xaqquit (Remote host closed the connection)
00:09:29  * mjr_joined
00:13:45  * c4milo|bblquit (Ping timeout: 240 seconds)
00:14:44  * theColequit (Quit: theCole)
00:40:39  * orlandovftwquit (Ping timeout: 245 seconds)
00:44:57  * irajoined
00:47:45  * piscisaureus_quit (Ping timeout: 240 seconds)
00:52:53  * ericktquit (Ping timeout: 252 seconds)
00:57:54  * dapquit (Quit: Leaving.)
01:05:14  * mikealquit (Quit: Leaving.)
01:26:25  * orlandovftwjoined
01:30:08  * brsonquit (Ping timeout: 265 seconds)
01:34:02  * mikealjoined
01:36:47  * arlolraquit (Quit: Linkinus - http://linkinus.com)
01:40:02  * mikealquit (Quit: Leaving.)
01:43:22  * mikealjoined
01:44:47  * iraquit (Quit: Computer has gone to sleep.)
01:56:10  * orlandovftwquit (Ping timeout: 250 seconds)
01:56:30  * isaacsquit (Remote host closed the connection)
01:59:55  * isaacsjoined
02:16:01  * mjr_quit (Quit: mjr_)
02:18:54  * mikealquit (Quit: Leaving.)
02:27:37  * orlandovftwjoined
02:30:16  <isaacs>TooTallNate: no.de isn't going away
02:30:27  <isaacs>TooTallNate: it will be taken over by the jitsu folks soonish, though.
02:30:30  <TooTallNate>:) glad to hear it
02:30:36  <TooTallNate>as long as i can keep ssh access
02:59:55  * mjr_joined
03:01:49  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
03:25:02  * orlandovftwquit (Ping timeout: 272 seconds)
03:37:09  * orlandovftwjoined
03:38:51  * hij1nxquit (Quit: hij1nx)
03:43:01  * orlandovftwquit (Ping timeout: 252 seconds)
03:46:03  * mjr_quit (Quit: mjr_)
04:14:36  * pfox___joined
04:25:05  * loladiroquit (Quit: loladiro)
04:32:23  * orlandovftwjoined
04:39:29  * xaqjoined
04:40:24  * orlandovftwquit (Ping timeout: 272 seconds)
05:02:22  * mikealjoined
05:08:16  * ericktjoined
05:14:34  * isaacsquit (Remote host closed the connection)
05:21:37  * ericktquit (Quit: erickt)
05:25:52  * paddybyersjoined
05:38:36  * AvianFluquit (Remote host closed the connection)
06:12:43  * paddybyersquit (Quit: paddybyers)
06:22:06  * xaqquit (Remote host closed the connection)
06:22:29  * paddybyersjoined
06:26:24  * orlandovftwjoined
06:56:02  * stephankquit (Quit: *Poof!*)
07:11:26  * paddybyersquit (Ping timeout: 276 seconds)
07:17:49  * rendarjoined
07:24:02  * theColejoined
08:34:57  * irajoined
08:57:22  * orlandovftwquit (Ping timeout: 252 seconds)
09:25:58  * theColequit (Quit: theCole)
10:18:53  <CIA-155>node: ANDO Takahiro v0.6 * rebd0f98 / doc/api/child_process.markdown :
10:18:53  <CIA-155>node: doc: fix callback argument of child_process.exec, execFile
10:18:53  <CIA-155>node: Fixes #3196. - http://git.io/FQjxCQ
12:00:30  * mmaleckichanged nick to mmalecki[away]
12:33:40  * bnoordhuisjoined
12:55:18  <saghul>bnoordhuis yt?
12:56:20  <bnoordhuis>saghul: yes. you?
12:57:07  <saghul>yep :-) quick question: I'm getting some weird crashes on pyuv when deleting a loop
12:57:38  <bnoordhuis>saghul: define weird?
12:57:44  <saghul>setting loop->channel = NULL in uv_loop_new fixed it, but I don't get it on a test in plain C
12:58:01  <bnoordhuis>is that on windows?
12:58:11  <bnoordhuis>if so, it's a fixed bug
12:58:14  <saghul>nope, unix
12:58:19  <bnoordhuis>oh, damn
12:58:57  <saghul>should channel be set to NULL here? https://github.com/joyent/libuv/blob/master/src/unix/loop.c#L30
12:59:06  <bnoordhuis>yes, it should be nulled
12:59:10  <bnoordhuis>i'll fix it
12:59:18  <saghul>great!
12:59:42  <saghul>I wasn't sure, since I couldn't reproduce it with a libuv test but i could with a pyuv one
13:03:39  <CIA-155>libuv: Ben Noordhuis master * r6037684 / src/unix/loop.c :
13:03:39  <CIA-155>libuv: unix: zero out new loop struct
13:03:39  <CIA-155>libuv: Fixes spurious segfaults in pyuv. - http://git.io/ddEBvA
13:03:40  <bnoordhuis>saghul: ^
13:04:11  <saghul>that was quick! :-)
13:04:23  <saghul>bnoordhuis thanks!
13:05:05  <bnoordhuis>my pleasure :)
13:05:31  * travis-cijoined
13:05:31  <travis-ci>[travis-ci] joyent/libuv#260 (master - 6037684 : Ben Noordhuis): The build is still failing.
13:05:31  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/ce129ac...6037684
13:05:31  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1244529
13:05:31  * travis-cipart
13:07:10  <saghul>works like a charm :-)
13:13:41  <indutny>bnoordhuis: heya
13:17:44  * piscisaureus_joined
13:21:23  <bnoordhuis>indutny: hoya
13:21:38  <indutny>bnoordhuis: about that pipe thing
13:21:51  <indutny>bnoordhuis: stream will become non-readable after applying it, right?
13:21:59  <indutny>I mean it'll be impossible to read anything from it
13:22:37  <bnoordhuis>you mean the source stream?
13:22:46  <piscisaureus_>bnoordhuis: hey. Did you have a chance to look at the packager "refcount" woes?
13:22:48  <indutny>yep
13:22:54  <bnoordhuis>piscisaureus_: no
13:23:07  <bnoordhuis>piscisaureus_: but i'll back-port the handle walker thingy
13:23:19  <bnoordhuis>indutny: yes, i suppose so
13:23:43  <indutny>so I'm proposing adding uv_stream_t* pipe_to field to stream's private fields
13:23:47  <indutny>and checking it in uv__read
13:24:16  <bnoordhuis>indutny: i would rather not extend uv_stream_t
13:24:26  <indutny>bnoordhuis: and how would you do so?
13:24:32  <piscisaureus_>indutny: for what ?
13:24:34  <bnoordhuis>maybe have uv_pipe() create a req
13:24:55  <bnoordhuis>indutny: but uv_pipe() is only of secondary importance
13:25:32  <piscisaureus_>indutny: yeah don't care about createPipe / uv_pipe at the moment
13:26:29  <bnoordhuis>off to do the groceries, back in a bit
13:26:36  <indutny>piscisaureus_: what to care about then?
13:26:40  <indutny>sorry, I'm quite confused :P
13:26:45  <piscisaureus_>indutny: hehe
13:27:01  <piscisaureus_>indutny: well make it possible to supply an array of stdio FDs to a child process
13:27:01  <indutny>piscisaureus_: do I just need to expose fds somehow?
13:27:07  <indutny>piscisaureus_: aaaah
13:27:20  <indutny>haha
13:27:33  <piscisaureus_>indutny: for each fd the libuv user should have one of these options
13:27:56  <piscisaureus_>* set an existing uv_stream object as the stdio fd
13:28:03  <piscisaureus_>* use a raw FD
13:29:12  <piscisaureus_>* create a pipe (configurable with some flags) and send one end to the child and initialize an uv_pipe_t for the parent end
13:29:25  <piscisaureus_>* use NULL
13:29:31  <piscisaureus_>(dev/null or NUL)
13:29:46  <piscisaureus_>indutny: right now we only support FDs 0, 1, and 2
13:30:00  <piscisaureus_>indutny: and we only support option 3 (create a pipe (configurable with some flags) and send one end to the child and initialize an uv_pipe_t for the parent end)
13:30:00  <indutny>yes, I seen it
13:31:22  <piscisaureus_>indutny: so probably you want to set an array and a length in the uv_process_options struct
13:32:36  <piscisaureus_>and each element should look something like this:
13:32:36  <piscisaureus_>{
13:32:36  <piscisaureus_> .flags: CREATE_NEW_PIPE | PIPE_DUPLEX | PIPE_IPC,
13:32:36  <piscisaureus_> .new_pipe: &new_pipe_t_object
13:32:36  <piscisaureus_>}
13:32:40  <piscisaureus_>indutny: ... or
13:32:41  * c4milojoined
13:33:11  <piscisaureus_>{ .flags: PIPE_USE_RAW_FD,
13:33:12  <piscisaureus_> .fd: 92 }
13:33:25  <indutny>yep, unions
13:33:33  <piscisaureus_>indutny: obviously the API should be nicer, namespaced, blabla
13:33:37  <indutny>hahaha
13:33:38  <piscisaureus_>indutny: but you get the idea :-)
13:33:43  <indutny>yep, now I get the idea
13:33:48  <indutny>:)
13:33:50  <indutny>piscisaureus_: thank you
13:34:09  <piscisaureus_>indutny: np. Thank you !
14:02:17  * c4milochanged nick to c4milo|brb
14:08:15  <piscisaureus_>bnoordhuis: I backported the walker and it seems to work
14:08:23  <piscisaureus_>so I am going to look into packager now
14:13:42  * c4milo|brbchanged nick to c4milo
15:03:14  * TheJH_joined
15:09:58  * isaacsjoined
15:12:08  * benvie_joined
15:18:16  * isaacsquit (Remote host closed the connection)
15:24:53  * benvie_quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
15:25:09  * benvie_joined
15:28:11  <bnoordhuis>piscisaureus_: okay, good
15:32:24  * dapjoined
15:46:06  * mikealquit (Quit: Leaving.)
15:49:49  * mikealjoined
15:50:22  * stephankjoined
16:00:51  * iraquit (Quit: Leaving...)
16:01:12  * loladirojoined
16:05:22  * ericktjoined
16:06:22  * orlandovftwjoined
16:07:26  * ericktquit (Client Quit)
16:11:24  <piscisaureus_>bnoordhuis: btw - your walk branch applies cleanly to 0.6
16:11:32  <piscisaureus_>bnoordhuis: but it's not useful for timers./
16:12:05  <piscisaureus_>bnoordhuis: git subtree is kinda nice
16:12:21  * mmalecki[away]changed nick to mmalecki
16:12:22  <piscisaureus_>bnoordhuis: admittedly, it also doesn't work on windows so far
16:12:27  <piscisaureus_>but I can probably make it work
16:12:36  <piscisaureus_>it lives in contrib/subtree in the git repo
16:13:28  <piscisaureus_>bnoordhuis: I think it requires some work to set up (e.g. "bootstrap" it once and reapply all the patches we are floating on top of v8)
16:13:36  <piscisaureus_>but after that it should all be automagical
16:18:37  * loladiroquit (Quit: loladiro)
16:24:14  * TheJH_changed nick to TheJH
16:24:44  * loladirojoined
16:28:37  <txdv>is it possible to output something in the tests?
16:28:47  <txdv>it is freaking impossible to debug if I can't see shit
16:30:45  <piscisaureus_>txdv: which test?
16:30:56  <piscisaureus_>txdv: libuv tests?
16:31:09  <indutny>txdv: test/run-tests pipe_streams pipe_streams
16:31:16  <indutny>txdv: dublicate test name to output things
16:31:16  <txdv>http://is.gd/hxLyKi
16:31:22  <txdv>o ok
16:31:53  <indutny>at least, it works for me
16:31:59  <indutny>piscisaureus_: is it expected? :)
16:32:12  <piscisaureus_>indutny: oh no
16:32:25  <piscisaureus_>indutny: we recently landed a change to dlopen/dlerror
16:32:29  * pieternjoined
16:32:40  <piscisaureus_>indutny: so if a test fails, it could be a bug
16:32:43  <indutny>piscisaureus_: how's that related?
16:33:01  <indutny>piscisaureus_: txdv put printf at the top of test source
16:33:08  <piscisaureus_>indutny: dunno. It just means it could be a bug :-)
16:33:13  <txdv>yeah, double name
16:33:15  <piscisaureus_>indutny: or the test wasn't updated properly
16:33:27  <indutny>piscisaureus_: we don't understand each other
16:33:38  <indutny>:)
16:33:41  <piscisaureus_>indutny: aha
16:33:57  <piscisaureus_>indutny: can you phrase your question more explicitly then. Is <<what>> expected?
16:34:17  <indutny>piscisaureus_: Is running test/run-tests %testname %testname expected to enable output
16:34:19  <indutny>stdout/stderr
16:34:22  <piscisaureus_>indutny: yeah
16:34:28  <indutny>piscisaureus_: k
16:34:30  <indutny>:D
16:35:14  <piscisaureus_>indutny: tests run in a separate process. Normally the test runner captures output and only displays it when the test fails (or when output is enabled for that test in test-list.h)
16:35:28  <piscisaureus_>indutny: but run-tests <name> <name> just runs the child
16:35:32  <piscisaureus_>so the output goes to the tty
16:49:56  * isaacsjoined
16:55:19  <indutny>isaacs: hey! good morning, SF!
16:55:32  <isaacs>indutny: hello!
16:56:04  <isaacs>bnoordhuis: review/feedback on http-memleak?
16:56:20  <isaacs>bnoordhuis: i saw vvo's response about it failing sometimes
16:56:29  <isaacs>but it seems to work 100% of the time on my machine, even with 500 requests
16:56:37  <isaacs>sorry, s/500/5000/
16:56:46  <isaacs>just ran it 100 times with 5000 request. 100% success
16:57:27  * arlolrajoined
16:57:50  * mikealquit (Quit: Leaving.)
17:00:15  <isaacs>ha, spoke too soon :)
17:02:20  <txdv>indutny: how do I enable the output for ALL the tests?
17:02:27  <indutny>txdv: djnnl
17:02:33  <indutny>dunno* ask piscisaureus_ ;)
17:06:01  * loladiroquit (Quit: loladiro)
17:07:10  <txdv>some weired shit happening on my C# wrapper
17:11:05  * mikealjoined
17:20:28  * irajoined
17:20:36  <txdv>I'm getting AccessViolations (reading or writing invalid memory) when I us dlopen/dlsym with not existing files/symbols on the windows .net framework
17:20:40  <txdv>I can't figure out why
17:23:01  * orlandovftwquit (Ping timeout: 244 seconds)
17:31:55  * theColejoined
17:37:59  * ericktjoined
17:41:26  * mikealquit (Quit: Leaving.)
17:41:39  <CIA-155>node: isaacs http-memleak * r62c12d2 / (5 files):
17:41:39  <CIA-155>node: Clean up gc tests
17:41:39  <CIA-155>node: This fixes the additional issues brought up in #3179. - http://git.io/FfkOCg
17:41:42  <CIA-155>node: isaacs http-memleak * r2fc528c / lib/http.js : (log message trimmed)
17:41:42  <CIA-155>node: http: Clean up parser usage
17:41:42  <CIA-155>node: Move parsers.free(parser) to a single function, which also
17:41:42  <CIA-155>node: nulls all of the various references we hang on them.
17:41:42  <CIA-155>node: Also, move the parser.on* methods out of the closure, so that
17:41:43  <CIA-155>node: there's one shared definition of each, instead of re-defining
17:41:43  <CIA-155>node: for each parser in a spot where they can close over references
17:47:01  * TooTallNatejoined
17:52:51  <isaacs>piscisaureus_: TooTallNate: bnoordhuis: Can you review http-memleak?
17:53:02  <isaacs>i'd like to get 0.6.17 out asap. natives are hollaring.
17:53:34  * xaqjoined
17:53:45  <TooTallNate>isaacs: i've mostly looked it over; i'll pull and try it out
17:54:03  <isaacs>great, thanks
17:58:31  * brsonjoined
18:03:22  <TooTallNate>isaacs: i should add a development mode to node-gyp, so you can specifiy which headers to use
18:03:34  <TooTallNate>isaacs: that way you could do that in the repo when downloading node-weak
18:05:45  * orlandovftwjoined
18:08:31  * AvianFlujoined
18:09:35  <isaacs>TooTallNate: oh, yeah, that'd be good.
18:09:47  <isaacs>TooTallNate: maybe even just "don't fetch stuff, i have the headers right here, please use them"
18:09:59  <TooTallNate>right, that's what i mean
18:10:00  <isaacs>it's a bit silly to download headers when you're sitting right in the nodejs source tree :)
18:10:04  <isaacs>yeah
18:10:04  <TooTallNate>:p
18:10:15  <isaacs>but whatevs, it works, surprisingly well, in fact.
18:10:27  <TooTallNate>:) yaya
18:10:30  <TooTallNate>i mean "yay"
18:13:20  * loladirojoined
18:21:44  * `3rdEdenjoined
18:22:15  <CIA-155>node: isaacs v0.6.17-release * rd1effbb / (10 files in 4 dirs): Merge branch 'http-memleak' into v0.6 - http://git.io/QbOCKw
18:22:15  <CIA-155>node: isaacs v0.6.17-release * rab60efb / AUTHORS : Update Authors - http://git.io/R-dGEQ
18:22:15  <CIA-155>node: isaacs v0.6.17-release * r719cd46 / (4 files in 4 dirs): Upgrade uv to 936795a2c - http://git.io/WpbrWg
18:22:15  <CIA-155>node: isaacs v0.6.17-release * rc036b15 / (190 files in 6 dirs): Upgrade npm to 1.1.20 - http://git.io/mFioDg
18:22:16  <CIA-155>node: isaacs v0.6.17-release * r7de2d29 / (ChangeLog src/node_version.h): (log message trimmed)
18:22:16  <CIA-155>node: 2012.05.04 Version 0.6.17 (stable)
18:22:17  <CIA-155>node: * Upgrade npm to 1.1.20
18:22:17  <CIA-155>node: * uv: Add support for EROFS errors (Ben Noordhuis, Maciej Małecki)
18:22:17  <CIA-155>node: * uv: Add support for EIO and ENOSPC errors (Fedor Indutny)
18:22:18  <CIA-155>node: * windows: Add support for EXDEV errors (Bert Belder)
18:22:18  <CIA-155>node: * http: Fix client memory leaks (isaacs, Vincent Voyer)
18:22:36  <indutny>oh, interesting
18:23:12  <indutny>building
18:25:03  <isaacs>if there's any problems with the http-memleak branch, then this whole release branch will have to change,of course :)
18:25:26  * mikealjoined
18:25:27  <TooTallNate>well the tests pass for me
18:25:30  <tjfontaine>people are running it in production now though, right?
18:26:00  <isaacs>tjfontaine: yes.
18:26:06  <isaacs>tjfontaine: several people run node 0.6 in production
18:26:17  <isaacs>voxer runs it like crazy madmen, floating patches and testing out bugs and craziness
18:26:20  <tjfontaine>I meant the http-memleak stuff you've been working on
18:26:40  <isaacs>tjfontaine: well, voxer's taken a few of the patches, and it definitely fixed their issue
18:26:42  <tjfontaine>I thought you mentioned jitsu trying it out as well
18:26:47  <isaacs>yeah, true that
18:26:50  <isaacs>mmalecki: you around?
18:26:54  <isaacs>mmalecki: how's http-memleak working for you?
18:27:13  <isaacs>tjfontaine: in the meantime, though, we found a few other leaks, and i built some tests to actually verify them.
18:27:45  <isaacs>test/gc/test-net-timeout gets a ECONNRESET occasionally.
18:27:56  <isaacs>I think it might just be running out of resources or something.
18:28:01  <TooTallNate>isaacs: i'll assume that the testcfg file is good (i've never messed with that before)
18:28:03  <TooTallNate>isaacs: but lgtm
18:28:20  <isaacs>TooTallNate: yah, it works, that's what matters :)
18:28:38  <isaacs>it'd be nice to replace all that bs with a node test runner.
18:28:55  <TooTallNate>i like the moving of functions to outer scopes
18:28:58  <TooTallNate>like freeParser()
18:29:00  <mmalecki>isaacs: it still leaks, but appears to leak less
18:29:11  <isaacs>mmalecki: what commit are you up to?
18:29:19  <mmalecki>so these leaks can be us, actually :)
18:29:30  <mmalecki>c9be1d5
18:29:33  <isaacs>mmalecki: that's wonderful. i love it when its your problem :)
18:29:55  <isaacs>mmalecki: ah, ok, there's been a bunch more fixes since then.
18:29:56  <tjfontaine>mmalecki: do have any numbers on how much the leak slowed?
18:30:11  <isaacs>mmalecki: if you would be so kind, and have a moment, can you try out the v0.6.17-release branch, just pushed?
18:30:19  <mmalecki>tjfontaine: I wanted to write a daemon but I got drunk
18:30:22  <mmalecki>I'll do it now
18:30:23  <tjfontaine>heh
18:30:24  <mmalecki>isaacs: sure
18:30:47  <tjfontaine>hmm I'm curious
18:31:09  <isaacs>tjfontaine: the worst offender was leaks that occur sporadically on ECONNABORTED and ECONNRESET and other socket errors.
18:31:40  <tjfontaine>nod
18:31:49  <isaacs>tjfontaine: because the refs go: parser->req->buffer. the buffer is like 2 bytes, but it is a slice of a SlowBuffer which is much larger.
18:32:05  <isaacs>since it happened sporadically, each tiny fast buffer would be attached to a *different* slowbuffer
18:32:15  <isaacs>which drastically magnifies the problem.
18:32:21  <tjfontaine>indeed
18:32:30  <tjfontaine>I'm also curious to see if anyone has a node module for interpreting /proc/<process.pid>/smaps
18:32:54  <mmalecki>AvianFlu: 0.9.0 has daemon-patch in?
18:33:10  <indutny>interesting
18:33:14  <indutny>make -j4 test hangs for me
18:33:45  <indutny>and now it seems to work fine
18:34:15  <indutny>oh, nvm
18:34:17  <indutny>it works now
18:34:28  <tjfontaine>oh hey look mmalecki just uploaded meminfo, this is the perfect place for smaps type inspection
18:34:50  * loladiroquit (Quit: loladiro)
18:35:15  <mmalecki>tjfontaine: wanna pull request?
18:35:20  <indutny>https://gist.github.com/579ff86495eb709e71ee
18:35:23  <indutny>build results ^
18:35:25  <tjfontaine>mmalecki: I probably will
18:35:26  <indutny>1 test is failing
18:37:06  <mmalecki>isaacs: one LB is now running this branch
18:38:05  * `3rdEdenquit (Quit: Leaving...)
18:38:22  <mmalecki>hah, it's the fastest LB now
18:40:28  <indutny>haha
18:40:30  <indutny>nice
18:41:00  <isaacs>indutny: that's weird.
18:41:07  <isaacs>indutny: does it fail consistently?
18:41:12  <indutny>isaacs: rerunning atm
18:41:14  <isaacs>indutny: we didn't touch any code around that, afaik
18:41:31  <indutny>idk, have you tested on osx 10.6.8?
18:41:53  <indutny>and debugger repl timeouts
18:41:58  <indutny>sometimes
18:43:07  <isaacs>indutny: yeah, the debugger tests fail every time.
18:43:15  <isaacs>indutny: we fixed that on master, but didn't bother to backport.
18:43:18  <indutny>aah
18:43:19  <isaacs>indutny: i'm not worried about it
18:43:21  <indutny>right
18:43:30  <isaacs>also, AssertionError: "rename" == "change" on SunOS
18:43:31  <indutny>well, tls-server-verify fails for me
18:43:36  <isaacs>again, meh.
18:43:49  <isaacs>indutny: weird. what's `process.versions`? maybe there's an openssl mismatch?
18:43:54  <indutny>one sec
18:44:03  <indutny>openssl: '1.0.1'
18:44:22  <isaacs>i've got this:
18:44:24  <isaacs>$ ./node -pe process.versions
18:44:24  <isaacs>{ node: '0.6.17',
18:44:24  <isaacs> v8: '',
18:44:26  <isaacs> ares: '1.7.5-DEV',
18:44:28  <isaacs> uv: '0.6',
18:44:30  <isaacs> openssl: '0.9.8r' }
18:44:41  <txdv>can windows create name pipes?
18:44:47  <txdv>i got a permission denied
18:44:52  <indutny>everything else, except openssl is the same for me
18:44:58  <txdv>when I wanted to create a named pipe listener
18:45:17  <indutny>I wonder how pipes works on windows
18:45:30  <indutny>oh, I see now
18:46:24  <indutny>gtg
18:46:32  <indutny>should be back in 2 hours
18:47:36  <isaacs>indutny: yeah, openssl is the culprit in this case.
18:47:54  <isaacs>indutny: i think version 1.0.1 maybe we're not compatible with for some reason
18:48:22  * arlolraquit (Quit: Linkinus - http://linkinus.com)
18:48:38  * theColequit (Quit: theCole)
18:49:25  * TheJHquit (Ping timeout: 252 seconds)
19:03:57  <txdv>I get a permission denied EACCESS when trying to create a pipe listener while binding to a specific file name
19:04:05  <txdv>do i need to do something special?
19:07:44  <txdv>I bet nobody ever knew
19:07:57  * paddybyersjoined
19:10:05  <saghul>txdv what name do you use for the pipe?
19:10:49  <txdv>PipeTestSimple
19:11:02  <saghul>that won't work on Windows
19:11:15  <txdv>what will?
19:11:29  <saghul>try this: '\\\\.\\pipe\\test-pipe'
19:11:41  <saghul>don't ask why, I don't know either :-)
19:12:03  <txdv>dafuq
19:12:12  <txdv>now I unerstand why it aint working
19:12:48  <saghul>apparently you need those weird names on windows
19:13:01  <txdv>works perfectly now
19:13:17  <txdv>now I only have to fix ipv6 tcp
19:13:45  <piscisaureus_>txdv: are you fixing libuv bugs?
19:14:23  <txdv>I think it is a bug in my wrapper
19:14:35  <piscisaureus_>txdv: ah ok.
19:18:31  * theColejoined
19:18:52  * xaqquit (Remote host closed the connection)
19:22:51  <txdv>http://is.gd/YolKio this is beauty in my eyes
19:23:25  <txdv>O only 1 test ran on linux
19:24:21  * mjr_joined
19:25:06  <mmalecki>isaacs: interesting, memory usage is *much* less
19:25:15  <mmalecki>or much lower? not sure.
19:26:19  * mikealquit (Quit: Leaving.)
19:28:13  * paddybyersquit (Ping timeout: 250 seconds)
19:31:28  * TheJHjoined
19:36:52  <piscisaureus_>txdv: hey
19:36:59  <txdv>hey
19:37:05  <piscisaureus_>txdv: I just ran the libuv tests on xp
19:37:18  <txdv>no arrows in the knee?
19:37:19  <piscisaureus_>txdv: all the failures I can find are related to either symlinks or ipv6
19:37:25  <piscisaureus_>txdv: which is expected
19:37:35  <txdv>why ivp6?
19:37:47  <piscisaureus_>txdv: windows XP (by default) does not support IPv6
19:38:17  <piscisaureus_>txdv: it is possible to install an experimental and incomplete ipv6 implementation, but you would have to do that manually
19:38:22  <txdv>well at least ::1 will work if you install the component
19:38:42  <piscisaureus_>txdv: yeah well I just didn't install the ipv6 stack yet.
19:38:54  <piscisaureus_>txdv: but let's just say that libuv does not support ipv6 on xp
19:40:17  <txdv>don't make me install win7 in a VM oO
19:40:36  <txdv>http://paste.ubuntu.com/967378/ this is how many errors I get
19:40:39  <txdv>can you take a look on it?
19:40:41  <piscisaureus_>txdv: some tests will pass but others (like udp dualstack) won't because xp just lacks support for it
19:41:32  <piscisaureus_>txdv: I can take a loot
19:41:45  <piscisaureus_>txdv: with ipv6 installed I get -8
19:42:25  <piscisaureus_>txdv: I don't think there are 8 symlink tests so there may be a couple of genuine failures. I will look into that.
19:46:10  * mattstevensjoined
19:47:07  * xaqjoined
19:54:32  <CIA-155>node: isaacs v0.6.17-release * r33bfc9b / (ChangeLog src/node_version.h): (log message trimmed)
19:54:32  <CIA-155>node: 2012.05.04 Version 0.6.17 (stable)
19:54:32  <CIA-155>node: * Upgrade npm to 1.1.21
19:54:32  <CIA-155>node: * uv: Add support for EROFS errors (Ben Noordhuis, Maciej Małecki)
19:54:32  <CIA-155>node: * uv: Add support for EIO and ENOSPC errors (Fedor Indutny)
19:54:32  <CIA-155>node: * windows: Add support for EXDEV errors (Bert Belder)
19:54:33  <CIA-155>node: * http: Fix client memory leaks (isaacs, Vincent Voyer)
19:54:34  <CIA-155>node: isaacs v0.6.17-release * raaf0453 / (191 files in 6 dirs): Upgrade npm to 1.1.21 - http://git.io/JEPx5Q
19:54:35  <CIA-155>node: isaacs v0.6.17-release * r711ecdd / Makefile :
19:54:35  <CIA-155>node: test: Run weak install with --unsafe-perm
19:54:35  <CIA-155>node: This way it doesn't die when running as root. - http://git.io/6tU9lw
19:55:53  <isaacs>piscisaureus_: care to test? ^
19:58:40  <piscisaureus_>isaacs: it's a little inconvenient now. Do you think I should.
19:58:42  <piscisaureus_>?
19:58:53  <isaacs>piscisaureus_: no, it's fine :)
19:59:01  <piscisaureus_>isaacs: thnks :-)
19:59:02  <isaacs>piscisaureus_: i'm testing on windows. seems pretty reasonable.
19:59:14  <isaacs>about to drop it.
19:59:15  <piscisaureus_>kewl
20:00:32  * ericktquit (Quit: erickt)
20:00:53  <mmalecki>isaacs: dude, these patches are awesome
20:01:03  <isaacs>mmalecki: oh?
20:01:34  <mmalecki>working great for us, I don't think I've seen a balancer using so low amount of memory after some time
20:02:10  <isaacs>nice!
20:04:07  <mmalecki>isaacs: I will continue to monitor it, but it seems pretty clear already
20:04:11  * mikealjoined
20:04:16  <piscisaureus_>mmalecki: the http leak fixes?
20:04:19  <isaacs>mmalecki: great.
20:04:20  <mmalecki>piscisaureus_: yeah
20:04:25  <piscisaureus_>mmalecki: kewl
20:04:38  <isaacs>mmalecki: btw, it's really nice having production systems testing out new releases. i don't know why we didn't do this more in the past.
20:04:42  <isaacs>thanks
20:04:55  <mmalecki>isaacs: pleasure
20:05:47  <CIA-155>libuv: Bert Belder master * ref9a9f1 / test/test-tcp-write-error.c : Tests: make test-tcp-write-error pass on XP - http://git.io/OJrrJA
20:07:50  * travis-cijoined
20:07:50  <travis-ci>[travis-ci] joyent/libuv#261 (master - ef9a9f1 : Bert Belder): The build is still failing.
20:07:50  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/6037684...ef9a9f1
20:07:50  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1248094
20:07:50  * travis-cipart
20:14:41  <CIA-155>node: isaacs v0.6.17-release * r4ced23d / (ChangeLog src/node_version.h): (log message trimmed)
20:14:41  <CIA-155>node: 2012.05.04 Version 0.6.17 (stable)
20:14:41  <CIA-155>node: * Upgrade npm to 1.1.21
20:14:41  <CIA-155>node: * uv: Add support for EROFS errors (Ben Noordhuis, Maciej Małecki)
20:14:41  <CIA-155>node: * uv: Add support for EIO and ENOSPC errors (Fedor Indutny)
20:14:41  <CIA-155>node: * windows: Add support for EXDEV errors (Bert Belder)
20:14:42  <CIA-155>node: * http: Fix client memory leaks (isaacs, Vincent Voyer)
20:16:07  * paddybyersjoined
20:21:28  * theColequit (Quit: theCole)
20:28:35  * c4milochanged nick to c4milo|bbl
20:30:07  * piscisaureus_part
20:32:12  <mmalecki>tjfontaine: nice one, https://github.com/tjfontaine/meminfo/commit/c7f633817b4b246e8d6bfcafb63de81a3535eb98
20:32:40  <mmalecki>but I'm wondering if it shouldn't go into its own tiny module
20:33:45  <tjfontaine>doh
20:33:51  <tjfontaine>I just submitted the pullreq :)
20:34:26  <mmalecki>okay, will review, busy with some other stuff now
20:34:55  <tjfontaine>take your time, I can make it a module on its own certainly
20:35:19  <CIA-155>node: isaacs v0.6 * r992e346 / src/node_version.h : Now working on 0.6.18 (+16 more commits...) - http://git.io/YLt9pg
20:35:20  <mmalecki>well, great way to increase your npm rank!
20:35:34  <tjfontaine>heh
20:35:42  <mmalecki>I'm on 52 now
20:35:45  <mmalecki>http://npmtop.com/
20:41:53  <benvie>shit
20:41:56  <benvie>I'm 54
20:41:59  <benvie>the race is on
20:42:06  <mmalecki>:D
20:42:34  <benvie>actually I'm about to remove a couple that I consolidated
20:42:41  <benvie>next time gadget, next time
20:43:48  <isaacs>mmalecki: i think that site is broken or stopped updating or something
20:43:54  <isaacs>$ npm search =isaacs -q | wc -l
20:43:54  <isaacs> 61
20:44:05  <isaacs>mmalecki: it says that i only have 52, though
20:44:42  <mmalecki>oh, hm
20:45:29  <benvie>mine's accurate
20:45:32  * piscisaureus_joined
20:45:44  <tjfontaine>1 of those lines is the header :)
20:45:45  <mmalecki>mine is "npm WARN Building the local index for the first time, please be patient" :)
20:45:55  <benvie>I don't think the number has changed in a few weeks but I imagine you didn't publish like 10 modules last week
20:46:03  <isaacs>mmalecki: it'll show that for a while
20:46:15  <isaacs>benvie: i did publish about 10 modules in the last few weeks, yes
20:46:19  * isaacshas been busy
20:46:20  <benvie>haha there ya go
20:46:32  <mmalecki>hotel wifi doesn't help much
20:47:34  <isaacs>judging by http://registry.npmjs.org/-/by-user/isaacs, there should be 60
20:47:42  <isaacs>unless maybe it's filtering out deprecated ones?
20:47:46  <isaacs>i have a few that are old and busted.
20:48:16  <mmalecki>mine is 24
20:48:44  <benvie>10 modules in a few weeks is pretty damn busy unless they're all tiny
20:48:57  <benvie>even then it is
20:49:30  <mmalecki>I bet isaacs writes quite a bunch of code
20:49:50  <isaacs>benvie: they are all quite tiny
20:50:05  <isaacs>oh, also a few of these are tests that should be unpublished.
20:50:12  * isaacsgoes off to reduce his score a bit..
20:50:24  <benvie>see
20:50:30  <benvie>I think that should GIVE you points
20:50:40  <benvie>being a good npm repo citizen and cleaning your shit up
20:51:36  <benvie>speaking of, I'm going to unpublish a couple right now
20:51:54  <mmalecki>I don't think my modules get old
20:52:09  <mmalecki>on the other hand, I don't know my modules well
20:52:37  <benvie>I had three that I started separately but ended up in similar areas so I merged in the worthwhile parts to the main one
20:53:13  <mmalecki>oh! I even have one for mounting devices
20:53:24  <mmalecki>https://github.com/mmalecki/node-mount, pretty awesome
20:54:12  <benvie>I have one of those for windows
20:54:36  <benvie>https://github.com/Benvie/node-Windows/blob/master/lib/driveAlias.js'
20:54:42  * c4milo|bblchanged nick to c4milo
20:54:49  <CIA-155>libuv: Bert Belder master * rb750dec / src/win/tcp.c :
20:54:49  <CIA-155>libuv: Windows: fix iocp emulation bugs for tcp handles
20:54:49  <CIA-155>libuv: Makes ipc_tcp_connection pass on Windows XP - http://git.io/b49Zmg
20:54:49  <benvie>with our powers combined
20:54:50  <mmalecki>windows has mount?
20:55:07  <benvie>sure does, it's just a simple interface for the built in command line utility
20:55:12  <benvie>subst
20:55:17  <benvie>maps folders to drives
20:55:20  <piscisaureus_>it also has mount
20:55:23  <piscisaureus_>:-)
20:56:13  <piscisaureus_>It's called "mountvol"
20:56:27  <benvie>I was trying to find it in fsutil
20:56:40  <benvie>I surely found dismount in itr
20:56:43  * travis-cijoined
20:56:44  <travis-ci>[travis-ci] joyent/libuv#262 (master - b750dec : Bert Belder): The build is still failing.
20:56:44  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/ef9a9f1...b750dec
20:56:44  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1248496
20:56:44  * travis-cipart
20:57:13  <piscisaureus_>benvie_: I suppose "join" is closer to mount than "subst" tho
20:57:33  <benvie>wait
20:57:35  <piscisaureus_>Oh wait that no longer exists :-p
20:57:38  <benvie>are we talking about like
20:57:43  <benvie>fuse?
20:58:00  <mmalecki><obvious comment about windows being a mess>
20:58:05  <tjfontaine>ifs!
20:58:06  <benvie>http://dokan-dev.net/en/download/ I want to make bindings for node for that
20:58:16  <benvie>but it doesn't look super easy
20:58:43  <piscisaureus_>txdv: [% 100|+ 136|- 6]: Done. <-- getting there :-p
20:59:10  <benvie>being a handler for the filesystem callback stuff blocks and looks pretty fidgity
20:59:14  <tjfontaine>benvie: certainly not as easy as fuse
20:59:46  <benvie>but it does work, so it's possible in theory which is better than it was a few years ago
21:00:37  <mmalecki>I wonder if there's a way to make asynchronous mount
21:00:47  <mmalecki>uv_work probably would help
21:00:52  <tjfontaine>indeed
21:01:13  <benvie>yeah from my reading of the udnerlying apis, there's no way to not have something there sitting blocked
21:01:35  <benvie>but it's way more feasible now using uv's apis than when i first checked into it
21:02:03  <benvie>er utilizing them vs. just making up my own shit which I wouldbn't have been able to do
21:02:17  <txdv>piscisaureus_: can you show me the entire log? to get an idea on what you are working
21:03:02  <piscisaureus_>txdv: sure https://gist.github.com/2597711
21:03:31  <txdv>you got 142 tests at all?
21:03:44  <txdv>can you give me the sha of your commit
21:03:50  <piscisaureus_>txdv: master, latest
21:04:03  <piscisaureus_>txdv: make sure to run as admin an not use luser
21:04:10  <piscisaureus_>txdv: also install ipv6!
21:04:20  <txdv>well i think i am the administrator on windows
21:04:29  <piscisaureus_>txdv: that should be good enough on xp
21:05:04  <txdv>im installing windows 7 in a wm right now
21:05:51  <piscisaureus_>txdv: I ticked 1 pretty serious bug already so keep on stressing xp
21:05:53  <piscisaureus_>:-p
21:08:24  <txdv>i want to know if the ipv6 stuff works on windows7
21:08:38  <mmalecki>"execvp(): Permission denied" - is there any way this could be more descriptive?
21:11:11  * xaqquit (Remote host closed the connection)
21:11:53  <piscisaureus_>txdv: it should
21:14:35  <mmalecki>isaacs: fyi, 0.6.17 is on all balancers now
21:14:45  <mmalecki>we'll see how it works out
21:14:50  <isaacs>mmalecki: sweet
21:20:13  <txdv>that awkward moment when W7 hogs 100% of the virtual cpu during the update DOWNLOAD
21:26:49  * c4miloquit (Ping timeout: 260 seconds)
21:28:05  <piscisaureus_>bnoordhuis: hey. Windows XP doesn't give a specific error when the filename is too long (it just reports ERROR_FILE_NOT_FOUND, even when specifying the O_CREAT flag)
21:28:05  <piscisaureus_>bnoordhuis: do you mind if I make the test pass when the reported error is ENOENT ?
21:32:27  * theColejoined
21:32:37  <CIA-155>libuv: Bert Belder master * r4365896 / src/win/fs.c :
21:32:37  <CIA-155>libuv: Windows: skip GetFileAttributes call when opening a file
21:32:37  <CIA-155>libuv: It wasn't working, and everything seemed to work fine nonetheless. Removing it just saves a syscall. - http://git.io/3Bcaxg
21:35:11  <txdv>now I unerstand why i would want to have a quad core :|
21:38:19  <isaacs>i'm merging 0.6 into master.
21:38:41  <isaacs>if you have anything to push to ry/master in the next few minutes, please lmk. it's a bit of a gory merge, with the http refactoring
21:40:32  * rendarquit
21:43:09  * theColequit (Quit: theCole)
21:46:29  <piscisaureus_>isaacs: it would be nice to get the aggressive GC out of node for 0.6.next too
21:47:05  <piscisaureus_>isaacs: the thing that makes it spin when the heap exceeds 128M
21:47:06  <isaacs>piscisaureus_: yeah, matt said the same thing
21:47:15  <piscisaureus_>isaacs: he's right
21:47:17  <isaacs>the --no-idle-notification flag
21:47:18  <kohai>the has -2 beers
21:47:47  <piscisaureus_>isaacs: well the 128M thing is bullshit imho, we should just rip that out anyway
21:47:49  <isaacs>https://gist.github.com/2165201
21:47:58  <isaacs>piscisaureus_: be my guest :)
21:48:01  <piscisaureus_>isaacs: I am unsure about idle notifications in general
21:48:07  <isaacs>just dont' land it in master right now :)
21:48:33  <piscisaureus_>isaacs: maybe we should call it --no-idle-gc
21:48:41  <piscisaureus_>isaacs: GC is all that it does anyway I think
21:49:27  <benvie>hmm is there like an automated converter for wscript to bindings.gyp so I can be lazy
21:49:29  <benvie>that'd be awesome
21:50:26  * theColejoined
21:52:28  <TooTallNate>benvie: write one :)
21:53:24  <piscisaureus_>isaacs: can I land it on 0.6 ?
21:53:28  <benvie>I'm porting node-canvas first
21:53:32  <saghul>piscisaureus_ got a compilation failure on Win7 with MinGW32, this symbol is apparently missing: https://github.com/joyent/libuv/blob/master/src/win/poll.c#L492
21:53:55  <TooTallNate>benvie: ohhh, thats a good one
21:54:02  <TooTallNate>benvie: are you aiming for windows support?
21:54:26  <benvie>yeah, libuv supported landed in it 2 days ago apparnently
21:54:31  <benvie>so it's ripe for the picking
21:54:42  <TooTallNate>landed what?
21:54:46  <benvie>in node-canvas
21:54:56  <TooTallNate>oh, for sure
21:54:57  <benvie>switch to libuv
21:55:18  <TooTallNate>benvie: all the deps are going to be the hardest part
21:55:36  <benvie>cairo actually isn't too bad
21:55:45  <TooTallNate>precompiled dlls?
21:55:52  <benvie>yeah
21:56:05  <TooTallNate>ya, that seems like the easiest way to go on windows
21:56:05  <benvie>and the development stuff is all neatly packaged up
21:56:08  <benvie>with a bow on top
21:56:14  <TooTallNate>nice
21:56:36  <TooTallNate>well ideally you can get a full build with all the options (like JPEG support ;) )
21:56:37  * paddybyersquit (Quit: paddybyers)
21:56:53  <benvie>yeah that'd be the goal, it shou;dn'
21:57:04  <benvie>shouldn't be too hard once the initial build works
21:57:12  <isaacs>piscisaureus_: sure
21:57:31  <benvie>I was looking the other day to see if anyone had done work on a skia backed graphics lib for node
21:57:34  <benvie>that'd be idea
21:57:41  <benvie>iodeal
21:59:21  <txdv>node canvas is ancient
21:59:54  * mikealquit (Quit: Leaving.)
22:00:31  * AlbireoXquit (Read error: Connection reset by peer)
22:00:34  * AlbireoX_joined
22:00:43  * AlbireoX_quit (Client Quit)
22:01:00  <saghul>piscisaureus_ FWIW, same on XP
22:03:14  <bnoordhuis>piscisaureus_: i think you already did?
22:03:27  <piscisaureus_>bnoordhuis: already did what?
22:03:40  <bnoordhuis>piscisaureus_: "do you mind if I make the test pass when the reported error is ENOENT ?"
22:03:59  <piscisaureus_>bnoordhuis: not yet. Do you mind?
22:04:49  <bnoordhuis>piscisaureus_: oh, okay. which test is it?
22:04:57  <piscisaureus_>bnoordhuis: enametoolong tests
22:05:01  <piscisaureus_>test-fs.c
22:05:04  <bnoordhuis>fs_file_nametoolong?
22:05:39  <piscisaureus_>bnoordhuis: yup
22:06:32  <bnoordhuis>piscisaureus_: (it just reports ERROR_FILE_NOT_FOUND, even when specifying the O_CREAT flag) <- doesn't that mean that you *can* tell if the path is too long?
22:07:01  <piscisaureus_>bnoordhuis: well it *also* reports that if invalid characters appear in the path
22:07:07  <piscisaureus_>bnoordhuis: and maybe for whatnot other reasons
22:07:18  <piscisaureus_>bnoordhuis: potentially also when the path does not exist :-)
22:08:30  <CIA-155>node: Bert Belder v0.6 * r09bbe4b / src/node.cc : Don't garbage collect aggressively when heap usage exceeds 128M - http://git.io/S9B37g
22:08:50  <bnoordhuis>piscisaureus_: hm, okay. i guess if there's no other way around it...
22:09:21  <piscisaureus_>bnoordhuis: ok
22:09:23  <CIA-155>libuv: Bert Belder master * r1d24c76 / src/win/winsock.h :
22:09:23  <CIA-155>libuv: Windows: fix MinGW
22:09:23  <CIA-155>libuv: MinGW's headers are missing a definition for SIO_BASE_HANDLE - http://git.io/Z9Y-JQ
22:09:53  <piscisaureus_>bnoordhuis: I will add a comment. I don't think it's a big issue. The most important thing is it's not mapped to EUNKNOWN.
22:09:58  <isaacs>piscisaureus_, bnoordhuis: Hey, i have these two untracked files in deps/uv. i think probably just old garbage, any comment?
22:10:00  <isaacs># deps/uv/src/unix/linux.c
22:10:00  <isaacs># deps/uv/src/win/threads.c
22:10:00  <piscisaureus_>saghul: try again
22:10:13  <isaacs>can i delete those?
22:10:29  <bnoordhuis>isaacs: is that in master or v0.6?
22:10:36  <isaacs>bnoordhuis: on master.
22:10:46  <isaacs>they've been sitting there for a while
22:10:50  <bnoordhuis>isaacs: linux.c is old
22:10:53  <isaacs>i think probably a mistaken import or something.
22:10:55  <isaacs>ok, kewl.
22:10:56  <piscisaureus_>isaacs: threads.c should be there
22:11:09  <isaacs>piscisaureus_: it's untracked in master
22:11:13  <bnoordhuis>piscisaureus_: i think it's thread.c (singular) nowadays, isn't it?
22:11:19  <piscisaureus_>in 0.6
22:11:22  <piscisaureus_>check github...
22:11:39  <bnoordhuis>yeah, it's src/win/thread.c now
22:11:50  <isaacs>$ echo deps/uv/src/win/thread*
22:11:51  <isaacs>deps/uv/src/win/thread.c deps/uv/src/win/threadpool.c deps/uv/src/win/threads.c
22:11:53  <isaacs>yeah, it's thread.c now
22:11:59  <saghul>piscisaureus_ ++ you're the man!
22:11:59  <piscisaureus_>huh
22:12:00  <piscisaureus_>https://github.com/joyent/libuv/tree/v0.6/src/win
22:12:00  <isaacs>k, it's bogus. thanks :)
22:12:01  <kohai>piscisaureus_ has 9 beers
22:12:12  <piscisaureus_>bnoordhuis,isaacs: check https://github.com/joyent/libuv/tree/v0.6/src/win
22:12:17  <isaacs>piscisaureus_: this is in master.
22:12:23  <piscisaureus_>isaacs: aah ok
22:12:27  <piscisaureus_>isaacs: yeah sure
22:12:36  <isaacs>piscisaureus_: i think i accidentally imported 0.6 uv in there a while ago, and then did a git checkout to replace it, but it left garbage behind.
22:12:36  <piscisaureus_>isaacs: are you going to roll a new 0.7 ?
22:12:41  <isaacs>piscisaureus_: not right this second.
22:12:42  <isaacs>but soon.
22:12:45  <piscisaureus_>ah ok
22:12:48  <isaacs>monday?
22:12:55  <piscisaureus_>*shrug*
22:12:56  <isaacs>we could do another one today if you want.
22:13:06  <piscisaureus_>isaacs: I don't really care right now
22:13:08  <isaacs>heh
22:14:24  <piscisaureus_>isaacs, bnoordhuis: ^-- ok with https://github.com/joyent/node/commit/09bbe4b6714d149d126de3cb9e3db3e8b2cc69e4 ?
22:15:00  <piscisaureus_>I meant that -----------------^
22:15:03  <bnoordhuis>piscisaureus_: you want to remove it altogether?
22:15:12  <piscisaureus_>bnoordhuis: well look at it
22:15:16  <bnoordhuis>i agree the 128M limit is pretty arbitrary
22:15:33  <piscisaureus_>bnoordhuis: when heapsize exceeds 128M it starts GC-in in a check callback
22:15:42  <piscisaureus_>bnoordhuis: effectively that is every loop iteration
22:15:44  <piscisaureus_>that's really bad
22:15:57  <piscisaureus_>bnoordhuis: the normal idle gc thing is still in
22:17:16  <piscisaureus_>bnoordhuis: the patch was very effictive in keeping the heap size down tho. Because it just grinds node to a halt as soon as you cross the magic barrier.
22:17:26  <isaacs>piscisaureus_: so... if i'm reading this, effectively when you hit 128M, it starts ignoring GC_WAIT_TIME
22:17:32  <bnoordhuis>piscisaureus_: gc_idle is not a uv_check_t, it's a uv_idle_t
22:17:45  <bnoordhuis>i smiled at that last comment :)
22:17:51  <piscisaureus_>bnoordhuis: CheckStatus is an uv_check_t
22:18:02  <piscisaureus_>bnoordhuis: look closely https://github.com/joyent/node/commit/09bbe4b6714d149d126de3cb9e3db3e8b2cc69e4
22:18:47  <bnoordhuis>piscisaureus_: that's Check(), CheckStatus() is a timer callback
22:19:24  <piscisaureus_>rly
22:19:27  <piscisaureus_>how retarded is that
22:20:39  <bnoordhuis>i don't know. how retarded?
22:20:55  <piscisaureus_>node::GCTimerCallback please
22:21:08  <piscisaureus_>bnoordhuis: but you're right
22:22:14  <piscisaureus_>bnoordhuis: so this one is probably not that bad
22:22:40  <piscisaureus_>bnoordhuis: what is bad though is that it keeps running the gc in an idle callback until v8 says it's done
22:22:48  <bnoordhuis>yeah
22:23:04  <piscisaureus_>bnoordhuis: that is potentially the worst we can do if the loop is busy
22:23:06  <bnoordhuis>well... ideally, that means the gc only runs when node is otherwise idle
22:23:23  <piscisaureus_>bnoordhuis: well.. yeah, when it is idle for a split second
22:23:38  <piscisaureus_>bnoordhuis: but it also means that right after the gc it has something to do, v8 probably gets some more work
22:23:51  <piscisaureus_>s/more work/more garbage to collect
22:24:26  <bnoordhuis>piscisaureus_: you mean *if* right after the gc? difficult sentence to parse
22:24:43  <piscisaureus_>bnoordhuis: yeah. Sorry, I'm getting tired.
22:25:06  <bnoordhuis>piscisaureus_: i don't see how that follows
22:27:08  * paddybyersjoined
22:27:30  <piscisaureus_>bnoordhuis: think about the following sequence
22:27:31  <piscisaureus_>1. Idle: v8::IdleNotification returns false because there was some more stuff to do.
22:27:31  <piscisaureus_>2. Some work arrives in the meantime. It is picked up by poll() and some callbacks are dispatched, garbage is created.
22:27:31  <piscisaureus_>3. (2) happens a couple of times until there are no events for a split second
22:27:31  <piscisaureus_>4. goto 1
22:27:50  <piscisaureus_>bnoordhuis: the issue is that the idle spinner never stops until v8 really has nothing more to do
22:27:57  <bnoordhuis>oh right
22:27:59  <piscisaureus_>but otherwise it keeps spinning
22:28:07  <bnoordhuis>i see what you mean
22:28:59  <piscisaureus_>but let me back that last commit out for a second
22:29:09  <piscisaureus_>done
22:29:17  <CIA-155>node: Bert Belder reviewme * r09bbe4b / src/node.cc : Don't garbage collect aggressively when heap usage exceeds 128M (+201 more commits...) - http://git.io/S9B37g
22:29:59  <bnoordhuis>piscisaureus_: V8::IdleNotifcation() takes an optional hint
22:30:17  <bnoordhuis>if you set it to kMaxHint, it will do a global gc
22:30:46  <bnoordhuis>so we'd need to make sure that yes, node is really idle now and there is time to do a full sweep
22:31:00  <bnoordhuis>and disable the idle watcher afterwards
22:31:05  <piscisaureus_>yeah
22:31:07  <piscisaureus_>that's probably better
22:31:25  <piscisaureus_>bnoordhuis: and doing a full gc every 5 seconds seems somewhat weird anyway
22:31:40  <piscisaureus_>bnoordhuis: if you have a busy server then probably people are not going to care
22:31:51  <bnoordhuis>yeah
22:32:10  <piscisaureus_>bnoordhuis: what could work is ask the OS if it memory pressure is high
22:32:24  <piscisaureus_>bnoordhuis: there are callbacks for that in windows but I don't know about unix
22:32:46  <piscisaureus_>bnoordhuis: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366541%28v=vs.85%29.aspx <-- that
22:33:09  * mikealjoined
22:33:21  <bnoordhuis>there's not really anything like that
22:33:35  * seebeesquit (Read error: Connection reset by peer)
22:34:59  <piscisaureus_>bnoordhuis: it would also work if we could just reset the idle ticker ]
22:35:11  <piscisaureus_>bnoordhuis: but I agree that kMaxHint is probably what we want
22:35:26  <piscisaureus_>bnoordhuis: since doing a mark-sweep first and a mark-compact right after is just a waste of time
22:35:33  <bnoordhuis>exactly
22:37:22  <bnoordhuis>reading the code in heap.cc, i guess we could just call it with V8::IdleNotification(INT_MAX) and it'll do the right thing
22:37:31  <piscisaureus_>bnoordhuis: wrt to the 128M thing - I think it should go. In the absence of an OS notification we could also replace it by some ratio thing, so only if HeapSize:HeapUsed exceeds 2 or so
22:38:18  <bnoordhuis>piscisaureus_: agreed
22:38:35  <piscisaureus_>er, when it is lower than 2 I probably mean]
22:39:19  * brsonquit (Ping timeout: 252 seconds)
22:39:24  <bnoordhuis>piscisaureus_: what are the characteristics of the heap? it grows dynamically but when does v8 start mapping in new pages?
22:39:57  <piscisaureus_>bnoordhuis: I don't know. mraleph?
22:40:14  <piscisaureus_>mraleph when the way of the ryah's
22:44:45  <bnoordhuis>maybe V8::IdleNotification(INT_MAX) is not all there is to it
22:45:24  <bnoordhuis>piscisaureus_: look up Heap::IdleGlobalGC()
22:46:10  * loladirojoined
22:46:20  * brsonjoined
22:47:39  <piscisaureus_>bnoordhuis: idle watchers also get kinda unreliable btw
22:48:04  <piscisaureus_>bnoordhuis: especially if we do the restart-accept-when-idle thing for clusten
22:48:08  <piscisaureus_>*cluster
22:48:44  <piscisaureus_>bnoordhuis: it would be nice if we could stop the idle if there *is* work to do
22:49:02  <piscisaureus_>uv_notidle_t :-p
22:49:07  <bnoordhuis>piscisaureus_: what about a combination of uv_check and uv_timer?
22:49:17  <piscisaureus_>bnoordhuis: can you elaborate?
22:50:01  <bnoordhuis>increment a counter in the check cb. in the timer cb check if counter < some_low_value
22:50:12  <bnoordhuis>if true, we've been mostly idle since the last time the timer ran
22:50:37  <bnoordhuis>the timer should run at intervals of a few seconds
22:50:42  <bnoordhuis>and reset the counter obviously
22:50:43  <piscisaureus_>bnoordhuis: that works but you should be aware that the number of events per loop iteration varies wildly between backends
22:51:05  <piscisaureus_>bnoordhuis: also nextTick runs in a prepare/check so these would not be taken into consideration
22:51:26  <piscisaureus_>bnoordhuis: I mean, there could be a lot of callbacks made in one iteration, or there could be just one
22:51:55  <piscisaureus_>bnoordhuis: maybe just have a timer and reset it in a check
22:52:03  <bnoordhuis>or that
22:52:07  <bnoordhuis>same principle really
22:52:17  <piscisaureus_>bnoordhuis: if the timer expires then we've been idle for a while
22:53:10  <bnoordhuis>piscisaureus_, isaacs: https://github.com/joyent/node/pull/3220 <- opinions on this?
22:54:36  <isaacs>bnoordhuis: i'm ok with it. we landed marcel's other vm cleanup thing, right?
22:54:47  <isaacs>bnoordhuis: and by "we", i mean "you" :)
22:54:51  <piscisaureus_>I am also ok with it.
22:54:53  <bnoordhuis>yeah :)
22:54:57  <bnoordhuis>cool, i'll land it
22:57:37  <CIA-155>node: Marcel Laverdet master * rc33d317 / src/node.cc : (log message trimmed)
22:57:37  <CIA-155>node: node: un-revert 9a6012e
22:57:37  <CIA-155>node: The crashes in debug mode after adding Locker are *not* caused by
22:57:37  <CIA-155>node: Locker. Locker is merely exposing issues that already existed. Some of
22:57:37  <CIA-155>node: these issues have since been fixed in 70635753.
22:57:37  <CIA-155>node: This reverts commit 407181538b5193f6810bf06a2056a200265c0e93.
22:57:38  <CIA-155>node: This reapplies commit 9a6012edd9330296b7476bc6b7fbda2cd5c8165d.
22:59:47  * mikealquit (Quit: Leaving.)
22:59:47  * paddybyersquit (Quit: paddybyers)
23:03:38  <piscisaureus_>bnoordhuis: my v8 doesn't take a hint...
23:04:37  <bnoordhuis>piscisaureus_: it does in node master
23:05:19  * iraquit (Quit: Leaving...)
23:05:21  <bnoordhuis>actually... it defaults to kMaxHint
23:06:44  <CIA-155>node: Bert Belder reviewme * r26fcb44 / src/node.cc : Make GC less aggressive for big heaps - http://git.io/xjkGCw
23:06:45  <piscisaureus_>^-- bnoordhuis ?
23:07:59  <piscisaureus_>maybe we should do 90%
23:08:13  <piscisaureus_>it would also be nice if we could have info about the garbage size in there
23:08:22  <piscisaureus_>but that probably requires gc
23:09:01  <bnoordhuis>but, but... what if someone has a heap > 163 petabytes?
23:09:11  <piscisaureus_>bnoordhuis: oh shit I forgot
23:09:22  * mattstevensquit (Quit: mattstevens)
23:11:18  <bnoordhuis>piscisaureus_: all kidding aside, (heap_size * 100) / heap_used doesn't look like it's correct
23:11:32  <piscisaureus_>bnoordhuis: I agree.
23:11:37  <piscisaureus_>I should go sleep
23:13:27  <CIA-155>node: Bert Belder reviewme * r92afcaa / src/node.cc : Make GC less aggressive for big heaps - http://git.io/VmaR3w
23:14:14  * xaqjoined
23:16:21  <bnoordhuis>piscisaureus_: heap_total - heap_used < heap_total / 4?
23:16:34  <bnoordhuis>i.e. if less than 25% free heap space
23:16:37  <piscisaureus_>bnoordhuis: go ahead :-)
23:19:55  <bnoordhuis>damn, now i messed up my master tree...
23:19:57  * mmaleckichanged nick to mmalecki[away]
23:21:40  <txdv>you are right, the ipv6 tests pass on windows7, even the stuff in my wrapper
23:22:35  <CIA-155>node: Ben Noordhuis reviewme * r375b41c / src/node.cc : gc: fix up 'should gc?' check - http://git.io/T_lHEw
23:22:50  <bnoordhuis>piscisaureus_: ^ bonus, it actually compiles now :)
23:25:36  <piscisaureus_>bnoordhuis: ++
23:25:38  <kohai>bnoordhuis has 15 beers
23:25:39  <CIA-155>node: Bert Belder reviewme * r9d6c13a / benchmark/http_simple.js : http_simple benchmark: add --garbage option to benchmark with large heap sizes - http://git.io/NFxvaA
23:25:46  <piscisaureus_>bnoordhuis: ^-- now we can benchmark it ... a little
23:26:39  <CIA-155>node: Bert Belder reviewme * re72420a / benchmark/http_simple.js : http_simple benchmark: add --garbage option to benchmark with large heap sizes - http://git.io/nf2GMQ
23:26:52  <piscisaureus_>bnoordhuis: btw - I am really to tired and I am making mistakes. I am calling it a day.
23:27:01  <bnoordhuis>piscisaureus_: sure. sleep tight, bertje
23:27:46  * theColequit (Quit: theCole)
23:27:54  <isaacs>g'nite piscisaureus_
23:28:07  <piscisaureus_>you guys should try out the --garbage option :-)
23:29:51  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:31:16  * xaqquit (Remote host closed the connection)
23:33:24  * mmalecki[away]changed nick to mmalecki
23:34:58  <CIA-155>node: Brian Schroeder master * r436a9b6 / (3 files in 2 dirs): net: signal localAddress bind failure in connect - http://git.io/RO8Mug
23:35:18  * xaqjoined
23:48:02  * brsonquit (Ping timeout: 260 seconds)
23:53:48  <isaacs>So, this is really weird...
23:54:04  <isaacs>those gc tests? one of them is failing in master.
23:54:16  <isaacs>but if i up the number to 550, or drop it to 447, it works.
23:54:22  <isaacs>but 500 requests fails.
23:54:32  <isaacs>549 fails
23:54:35  <isaacs>448 fails
23:54:40  <isaacs>anything else seems fine