00:01:35  * piscisaureus_quit (Ping timeout: 240 seconds)
00:32:06  * piscisaureus_joined
00:36:55  * piscisaureus_quit (Ping timeout: 240 seconds)
00:48:04  * piscisaureus_joined
00:49:20  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:52:21  * piscisaureus__joined
00:53:58  * piscisaureus__part
00:55:59  * piscisaureus__joined
00:58:25  * piscisaureus__quit (Client Quit)
00:59:49  * piscisaureus__joined
01:07:46  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:13:16  * AvianFlujoined
01:22:18  * mralephquit (Quit: Leaving.)
01:30:15  * bnoordhuisjoined
01:42:44  * benviequit
01:43:45  <bnoordhuis>ryah: around?
01:48:17  * benviejoined
01:50:40  * piscisaureus__joined
01:53:36  * piscisaureus__quit (Read error: Connection reset by peer)
01:54:00  * piscisaureus__joined
01:59:27  <ryah>bnoordhuis: kind of
01:59:40  <ryah>bnoordhuis: on my cellphone - bad connection
01:59:45  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
02:00:30  <bnoordhuis>ryah: hey, what are the important things to work on right now?
02:01:12  * piscisaureus__joined
02:01:29  <ryah>bnoordhuis: let me email you. i can't irc
02:01:37  <ryah>sorry
02:01:42  <bnoordhuis>sure, no problem
02:05:13  * mikealquit (Quit: Leaving.)
02:08:12  * mikealjoined
02:08:42  <CIA-111>node: Ryan Dahl isolates2 * r036e593 / src/node.cc : Add process.features.isolates (+25 more commits...) - http://git.io/5Jl3Mg
02:11:38  * mikealquit (Client Quit)
02:18:36  <CIA-111>node: Ryan Dahl isolates2 * rb319699 / (3 files in 2 dirs): Add isolate version of test-child-process-fork - http://git.io/1OagHA
02:20:10  * travis-cijoined
02:20:10  <travis-ci>[travis-ci] joyent/node#150 (isolates2 - 036e593 : Ryan Dahl): The build is still failing.
02:20:10  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/1a3b283...036e593
02:20:10  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/453304
02:20:10  * travis-cipart
02:24:42  * ericktquit (Ping timeout: 240 seconds)
02:30:02  * travis-cijoined
02:30:02  <travis-ci>[travis-ci] joyent/node#151 (isolates2 - b319699 : Ryan Dahl): The build is still failing.
02:30:02  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/036e593...b319699
02:30:02  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/453339
02:30:02  * travis-cipart
02:34:56  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
03:30:09  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
03:31:56  * sh1mmerquit (Quit: sh1mmer)
03:40:28  * piscisaureus_joined
03:48:11  * bnoordhuisquit (Ping timeout: 248 seconds)
04:13:13  * sh1mmerjoined
04:42:28  * sh1mmerquit (Quit: sh1mmer)
04:46:16  * mikealjoined
05:00:23  * mikealquit (Quit: Leaving.)
05:04:16  * mikealjoined
05:13:42  * piscisaureus_quit (Ping timeout: 240 seconds)
05:27:14  * piscisaureus_joined
05:49:17  * mikealquit (Quit: Leaving.)
05:52:14  * piscisaureus_quit (Ping timeout: 240 seconds)
06:14:48  <CIA-111>node: koichik v0.6 * ra848a3e / (lib/net.js test/simple/test-net-after-close.js):
06:14:48  <CIA-111>node: net: fix Socket.pause null reference when called on a closed Stream
06:14:48  <CIA-111>node: Fixes #1980. - http://git.io/Kd0FLQ
06:19:24  <CIA-111>node: koichik master * rb037c16 / test/simple/test-sys.js :
06:19:25  <CIA-111>node: test: fix test-sys.js fails if the time zone is not CET
06:19:25  <CIA-111>node: Fixes #2423. - http://git.io/J39z5Q
06:19:49  * mikealjoined
06:22:26  * travis-cijoined
06:22:27  <travis-ci>[travis-ci] joyent/node#152 (v0.6 - a848a3e : koichik): The build passed.
06:22:27  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/e1c043f...a848a3e
06:22:27  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/453708
06:22:27  * travis-cipart
06:30:45  * travis-cijoined
06:30:45  <travis-ci>[travis-ci] joyent/node#153 (master - b037c16 : koichik): The build was fixed.
06:30:45  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b962ff3...b037c16
06:30:45  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/453711
06:30:45  * travis-cipart
06:44:58  * mikealquit (Quit: Leaving.)
07:02:04  * ericktjoined
07:52:31  * mikealjoined
08:12:01  * mikealquit (Quit: Leaving.)
08:35:13  * ericktquit (Quit: erickt)
08:36:57  * ericktjoined
08:44:06  * mralephjoined
08:51:08  * ericktquit (Quit: erickt)
09:28:01  * mikealjoined
09:29:35  * mikealquit (Client Quit)
13:31:24  * bnoordhuisjoined
13:43:28  <CIA-111>libuv: Ben Noordhuis master * r85f6b79 / (include/uv-private/uv-unix.h include/uv.h): Fix Windows build, uv_eio_channel is Unix only. - http://git.io/wxeBOA
13:45:00  * travis-cijoined
13:45:00  <travis-ci>[travis-ci] joyent/libuv#16 (master - 85f6b79 : Ben Noordhuis): The build is still failing.
13:45:00  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/d6a06b8...85f6b79
13:45:00  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/454622
13:45:00  * travis-cipart
14:18:18  * piscisaureus_joined
14:22:42  <bnoordhuis>piscisaureus_: ping
14:43:19  <piscisaureus_>bnoordhuis: phong
14:43:35  <bnoordhuis>piscisaureus_: sup homie, what are you up to?
14:43:59  <piscisaureus_>bnoordhuis: phone update?
14:44:23  <indutny>bnoordhuis: _lgammaf_r$fenv_access_off
14:44:26  <indutny>hi
14:44:31  <indutny>have you seen this before?
14:44:50  <indutny>just got it when I was profiling my node.js code
14:44:57  <bnoordhuis>indutny: depends on where you're seeing it
14:45:10  <indutny>bnoordhuis: C++ ticks
14:45:13  <indutny>at the top
14:45:20  <bnoordhuis>indutny: what os?
14:45:29  <indutny>bnoordhuis: osx
14:45:47  <piscisaureus_>it's libm
14:46:16  <bnoordhuis>yes
14:46:23  <indutny>oh, great
14:46:58  <indutny>thank you
15:39:51  <bnoordhuis>piscisaureus_: unix lets you share memory between processes with mmap(), does windows have something similar?
15:42:28  <raggi_>it has MapViewOfFile
15:43:23  <bnoordhuis>raggi_: cool, thanks. is the mapping inherited by child processes?
15:43:29  <bnoordhuis>(i suspect the answer is 'no')
15:45:18  <piscisaureus_>bnoordhuis: yes
15:45:27  <piscisaureus_>bnoordhuis: named shared memory
15:45:40  <piscisaureus_>bnoordhuis: the mechanism is really similar
15:46:34  <bnoordhuis>piscisaureus_: good to know (playing around with shared memory, trying to create a uniform interface for both threads and processes)
15:47:17  <piscisaureus_>bnoordhuis: file mapping objects (CreateFileMapping) can be inherited. They can also be sent over the ipc channel if we add support for them.
15:50:12  * AndreasMadsenjoined
15:55:51  <AndreasMadsen>ryah: I have not yet rewrote the IPC architecture to work without a wrapper. Because there is a unstable testcase after removing callbacks from public API. But I want to ask you: how will user land isolate internal messages from there own, since they will now use process.on('message'), and we can not modify that. I don't like if (cluster.isInternalMessage(msg)) thats a nightmare to remember too?
15:58:46  <AndreasMadsen>ryah: The question was: " how will user land isolate internal messages from there own" not about if cluster.isInternalMessage is bad.
16:23:19  <CIA-111>node: Andreas Madsen v0.6 * rd483acc / test/simple/test-c-ares.js : test: remove internet test from test/simple/ - http://git.io/wBbvAA
16:29:23  <AndreasMadsen>bnoordhuis: --^ thanks
16:30:58  * travis-cijoined
16:30:58  <travis-ci>[travis-ci] joyent/node#154 (v0.6 - d483acc : Andreas Madsen): The build passed.
16:30:58  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/a848a3e...d483acc
16:30:58  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/455089
16:30:58  * travis-cipart
16:31:08  <AndreasMadsen>bnoordhuis : If you could merge this down too master today I would be very happy :)
16:45:35  <AndreasMadsen>How do one debug a issue there depend on 3 testcases in a row, but not of them?
16:49:35  * AndreasMadsen_joined
17:10:50  * ericktjoined
17:17:58  <AndreasMadsen>Okay issue fixed will work on the IPC architecture rewrite
17:25:30  <txdv>does there exist a cpp wrapper for libuv?
17:46:26  * ericktquit (Quit: erickt)
17:52:27  <bnoordhuis>txdv: extern "C" { #include "uv.h" }
17:55:59  <indutny>bnoordhuis: hehe :)
17:56:08  <indutny>that made my day
17:56:12  <indutny>few months ago
17:56:44  <indutny>struggling with exponential parse time in ometajs parser right now... :(
17:56:44  <indutny>oh
17:56:51  <txdv>bnoordhuis: lql
18:08:34  <indutny>oh, looks like time is linear
18:11:46  <bnoordhuis>einstein disagrees
18:13:52  <indutny>bnoordhuis: lol
18:58:24  <AndreasMadsen>ryah: I have done the IPC rewrite, but how will user land detect internal messages?
18:58:30  <AndreasMadsen>changes here: https://github.com/AndreasMadsen/node-1/commit/04fa43c73e1d42ce440e24f316059e6bf2bc68ec
18:59:13  <txdv>http://paste.ubuntu.com/786037/
18:59:43  <AndreasMadsen>I will not merge the changes with step 4 before that issue has been resolved.
19:01:07  <AndreasMadsen>Ryah: I have thought about filtering messages with a "NODE_" prefix in the process.on('message') core, but I'm not sure about it.
19:01:35  <AndreasMadsen>And then emit them in an internal event.
19:01:54  <AndreasMadsen>ryah: ^
19:02:24  * ericktjoined
19:04:47  <AndreasMadsen>bnoordhuis: will guys have a call today it looks like ryah sleeps ?
19:05:16  <bnoordhuis>AndreasMadsen: i think ryah's on holiday again
19:05:27  <bnoordhuis>or at least somewhere where he has no decent internet connection
19:05:34  <bnoordhuis>probably amounts to the same thing
19:06:47  <AndreasMadsen>bnoordhuis: okay that is weird, please tell him to ping me if I gets online.
19:15:22  <AndreasMadsen>ryah: I have wrote you an letter: https://github.com/joyent/node/pull/2388#issuecomment-3294080 you can just reply on that :)
19:15:29  * AndreasMadsenquit (Remote host closed the connection)
19:16:00  * piscisaureus__joined
19:18:46  * piscisaureus_quit (Ping timeout: 255 seconds)
19:33:20  <txdv>http://paste.ubuntu.com/786076/ <-- what do you think of C++11?
20:36:37  <DrPizza>txdv: mostly awesome
20:40:53  <piscisaureus__>http://permalink.gmane.org/gmane.comp.security.full-disclosure/83694 <-- bnoordhuis, mraleph, you guys understand what this is about?
20:43:22  <mraleph>piscisaureus__: yes I understand
20:45:11  <piscisaureus__>mraleph: So I understand they propose to send a "list of stuff" that has a lot of collisions in it, when hashed with the hashing algorithm that the target server uses? And that will make the target server go down?
20:45:15  <mraleph>piscisaureus__: you craft a set of names that all go to the same bucket in hashtable. consequently addition and lookup of those names take more and more time which goes above the roof if you have bazillion names
20:45:16  <piscisaureus__>is that correct?
20:45:34  <piscisaureus__>How serious is that?
20:45:46  <piscisaureus__>do we need to do anything about it?
20:46:08  <mraleph>well you need yes.
20:47:29  <piscisaureus__>you could do the same with http headers right?
20:48:03  <mraleph>if you can send bazillion of custom headers than yes
20:48:07  <mraleph>then yes
20:48:51  <piscisaureus__>hmm
20:50:03  * bradleymeckjoined
20:50:03  * bradleymeckquit (Read error: Connection reset by peer)
20:50:26  * bradleymeckjoined
20:50:27  * bradleymeckquit (Read error: Connection reset by peer)
20:50:44  * bradleymeckjoined
20:50:44  * bradleymeckquit (Read error: Connection reset by peer)
20:50:52  * nathanpalmerjoined
20:51:03  <piscisaureus__>even better: in memory session IDs are also vulnerable
20:51:15  <piscisaureus__>I wonder whether it could affect socket.io w/ redis backend
20:51:59  <mmalecki>piscisaureus__: it can affect pretty much everything which stores user-supplied data in hashes
20:52:17  <mraleph>I don't know whether we are going to change our hash function to mitigate it or not. Did not talk to anyone about it as I am on vacation.
20:52:22  <mmalecki>I'm pretty sure socket.io stores a hash of clients, but it gives them names by itself
20:52:43  <piscisaureus__>oh, that's good
20:53:15  <mmalecki>looking it up now. or I can summon 3rdEden here
20:54:29  <mraleph>piscisaureus__: in memory session ids "vulnerable"? what do you mean?
20:54:51  * bradleymeckjoined
20:55:32  <piscisaureus__>mraleph: well I don't know about typical node session managers (connect, socket.io) but often people could just supply a session id by themselves
20:55:38  <piscisaureus__>well, at least its possible in php
20:55:59  <piscisaureus__>so if you make a lot of connections and specify session IDs that collide, you will fill up something
20:56:23  <piscisaureus__>but this is not an attach that can be twarthed by limiting the number of headers, POST fields etc
20:56:26  <piscisaureus__>well nvm
20:56:33  <piscisaureus__>too much detai l
20:56:46  <piscisaureus__>mraleph: you should enjoy your holiday :-)
20:56:57  <mraleph>I am
20:56:58  <mraleph>:-)
20:57:38  <piscisaureus__>mraleph: but changing the hash algoritm will make hashing slower right?
20:58:37  <mraleph>yeah
20:58:39  <mraleph>probably
20:58:45  <mraleph>I don't know
20:58:54  <ryah>yo
20:59:02  <piscisaureus__>maybe you should just provide a SafeObject type
20:59:12  <mjr_>Seems like this is not that big of an issue, just limit the size of qs by default.
20:59:14  <piscisaureus__>that uses a slower but randomize hash function
20:59:31  <piscisaureus__>mjr_: yeah that works
20:59:49  <mjr_>I'm glad I read this. I'm going to go put that qs limit it right now.
21:00:10  <piscisaureus__>mjr_: but often node doesn't have this built in, it's form parsers (e.g. formidable) that are vulnerable
21:00:17  <mmalecki>ryah: morning. you think `hub merge <pull-request-url>` would be a cool thing?
21:00:25  <piscisaureus__>mjr_: node is only vulnerable throurh http header parsing afaict
21:00:39  <mmalecki>ryah: I want to write some ruby and I'm thinking about pull requesting it
21:00:51  <piscisaureus__>oh and qs parsing yeah
21:01:09  <mjr_>But I parse the query string on every request, no matter what. So I could at least refuse to parse a long one.
21:01:13  <ryah>mmalecki: yeah - there should also be an option to squash the commits in the PR branch
21:01:35  <mmalecki>ryah: like hub merge --squash ?
21:01:54  <piscisaureus__>mjr_: that'll fix the qs attack but not the headers attack (which are also parsed on every request)
21:01:57  <ryah>mmalecki: yeah
21:02:01  <mmalecki>hm, that makes a good git pull request
21:02:27  <mmalecki>but contributing to git is a pita :/
21:02:42  <mjr_>piscisaureus__: yeah, there need to be some kind of limits on the parser to really fix that. Even without this hash table thing, those limits are probably necessary to be more resilient to assholes.
21:02:45  <piscisaureus__>mmalecki: I'd like ` hub cherry-pick <pull-request-url>`
21:03:00  <ryah>bnoordhuis: still not done with uv_pipe_pair() but nearly - going to continue on that
21:03:39  <ryah>im actually at my house, not on vacation, but we decided to stop having internet at our house
21:03:41  <mmalecki>piscisaureus__: `hub am <pull-request-url` does the same thing
21:03:46  <ryah>and so i have to use the cellphone
21:03:47  <ryah>:/
21:03:56  <piscisaureus__>ryah: hack some wifi
21:03:59  <ryah>and we hit the 2G limit and now it's badly rate limited
21:04:17  <ryah>and our new office isn't ready until monday - so meh
21:04:32  <piscisaureus__>is the new office nice?
21:04:42  <ryah>yeah more windows
21:04:42  <piscisaureus__>I mean, the old one looked fine to me :-)
21:04:52  <piscisaureus__>oh yeah that's good
21:05:01  <ryah>the new one supports higher person density
21:05:11  <ryah>which is perhaps not so good
21:05:22  <ryah>i dont get an office anymore :~
21:05:25  <piscisaureus__>the old one was kind of desolate
21:05:44  <piscisaureus__>you don't get an office?
21:05:50  <mjr_>The view from your other office was fantastic.
21:06:26  <mmalecki>I like my office how I like my home :)
21:06:39  <piscisaureus__>Yeah I also don't have an office
21:06:59  <piscisaureus__>although if I need silence I'll just stay home
21:07:00  <ryah>does anyone know the rocketpack.fi guy's name?
21:07:12  <mmalecki>tho I'd like to go to nodejitsu office one day
21:08:33  <mmalecki>ryah: hey, hub merge <url> --squash should work, git has it
21:09:06  <mmalecki>ah, wait, hub has no merge, sorry :/
21:09:12  <piscisaureus__>ryah: Jiri Kupiainen ?
21:09:18  <mmalecki>but in general, git has `git merge --squash`
21:09:39  <piscisaureus__>yes that's the one
21:10:18  <ryah>thanks
21:11:53  <bnoordhuis>piscisaureus__: http://permalink.gmane.org/gmane.comp.security.full-disclosure/83694 <- nothing new here
21:12:24  <piscisaureus__>well it was new to me
21:12:48  <bnoordhuis>it's a nice roundup though
21:13:04  <mmalecki>piscisaureus__: it's like, well, it's a known issue. hashing functions aren't perfect
21:13:58  <mjr_>bnoordhuis: speaking of header parsing bugs, your patch has not yet fixed ours: https://gist.github.com/79408b9eb2c3d76a6259
21:14:29  <bnoordhuis>mjr_: thanks for the update. also: damn :(
21:14:32  <mjr_>Although a 53 frame deep stack seems a little suspicious.
21:14:48  <mjr_>I guess that could be some V8 generated code.
21:15:04  <ryah>shit
21:15:05  <bnoordhuis>mjr_: it is
21:15:30  <ryah>mjr_: don't trust the number of frames
21:15:42  <ryah>v8 has its own stack layout that gdb can't read
21:15:52  <mjr_>Oh, OK.
21:17:45  <mjr_>So where does that leave us, efence?
21:18:10  <bnoordhuis>mjr_: can you send over some more core dumps?
21:18:17  <mjr_>oh, sure
21:18:27  <ryah>mjr_: yes please do the efence
21:18:28  * TooTallNatejoined
21:18:33  <mjr_>Let me grab you some that happened with your latest patch.
21:18:35  <ryah>it shouldn't be bad, i think
21:20:53  * igorzijoined
21:21:04  <ryah>let me see if i can bench it on my linux box...
21:21:21  <igorzi>hey
21:21:28  <piscisaureus__>igorzi: hey
21:21:47  <igorzi>piscisaureus__: did you have a chance to review that uv_fs_event patch?
21:22:04  <mjr_>ryah: if you could give it a quick test on linux with the hello world benchmark, that'd help.
21:22:13  <piscisaureus__>igorzi: yes but I had some questions about it that i wanted to discuss with you
21:22:38  <igorzi>piscisaureus__: want to discuss now?
21:22:51  <piscisaureus__>igorzi: if you can wait, let's do it in 10 minutes
21:23:04  <piscisaureus__>I have to re-read the patch so I remember all of it
21:23:04  <igorzi>piscisaureus__: yep, np
21:24:24  <igorzi>ryah bnoordhuis: how's the isolate work going?
21:24:31  <ryah>igorzi: slowly
21:24:40  <bnoordhuis>what ryah said
21:25:14  <ryah>igorzi: we're loading addons from multiple isolates now, uv_fs seems to be working across isolates, currently adding a pipe for IPC
21:25:26  <ryah>I"P"C
21:25:28  <mmalecki>piscisaureus__: I'm going to revisit my tls.connect patch now, want me to patch net.connect in the same way?
21:26:00  <igorzi>ryah: how is IPC pipe going to work? is it going to be shared mem buffer in node? or are you adding a new uv_* type in libuv?
21:28:02  <ryah>igorzi: on unix its going to be a socketpair for starters - https://gist.github.com/1529830
21:28:51  <ryah>igorzi: but we might be able to replace it with some shared memory thing later
21:30:51  <ryah>im not too worried about attaining the maximum throughput possible between isolates
21:31:32  <igorzi>ryah: yep.. the OS pipe should be good enough
21:32:06  <igorzi>ryah: people can implement their own IPC if they want to with native addons, right?
21:32:19  <ryah>igorzi: any idea how you'd do this on win? libev has a duplex pipe using TCP for windows
21:32:23  <ryah>igorzi: yeah
21:33:14  <ryah>https://github.com/joyent/libuv/blob/85f6b7952bfbcf4ac0b7c7a13ef07bfe7d4c94a5/src/unix/ev/ev_win32.c#L51-132
21:33:56  <igorzi>ryah: hmm.. probably named-pipes (same as the current IPC).. piscisaureus__?
21:34:46  <igorzi>unless we're willing to roll some shared memory thing, but that should probably be common between unix and windows?
21:35:36  <ryah>just like \\.\pipe\libuv\{threadid} ? i guess that works
21:38:57  <piscisaureus__>mmalecki: yes
21:39:15  * bradleymeckquit (Ping timeout: 240 seconds)
21:39:29  <igorzi>ryah: \\.\pipe\libuv\{procid}\{threadid} (since pipe names are global).. or we could just create a pipe with some unique name, and pass the handle to the target isolate
21:39:40  <mmalecki>piscisaureus__: ok. maintaining backwards compatibility?
21:39:45  <piscisaureus__>yep
21:40:07  <ryah>i think i like windows pipes better than unix ones
21:40:46  <igorzi>ryah: are you planning to do another v0.6 release any time soon?
21:40:47  <piscisaureus__>ryah: minus the lack of shutdown() support
21:40:52  <piscisaureus__>ryah, igorzi: https://github.com/joyent/libuv/blob/master/src/win/process.c#L758-829
21:41:04  <ryah>igorzi: yes - waiting until we squash mjr_'s bug
21:41:13  <piscisaureus__>make sure to use overlapped pipes
21:41:23  <ryah>actually i take that back
21:41:27  <ryah>i like unix pipes better :)
21:41:34  <ryah>i forgot we can just do socketpair()
21:42:11  <piscisaureus__>igorzi: will have time for you in a minute... having a calll..
21:42:32  <igorzi>piscisaureus__: np.. just let me know
21:51:46  <ryah>at some point we need to try to change the libuv api to make all the different streams a single type
21:52:03  <ryah>so that we can simplify the src/tcp_wrap src/pipe_wrap src/stream_wrap madness
21:52:11  <piscisaureus__>still +1
21:52:14  <piscisaureus__>igorzi: i'm ready
21:52:25  <piscisaureus__>igorzi: want to skype or talk here?
21:52:50  <ryah>the other API thing i want to do is make sure that the platforms share the entry points on each of the functions
21:53:03  <ryah>bnoordhuis: how far did you get on this--^ you were working on that two weeks ago, or?
21:53:29  <ryah>as the first part of the unix ref count fix
21:53:33  <piscisaureus__>it would also be good to add functions to get the size of structs out
21:53:46  <igorzi>piscisaureus__: up to you.. are there a lot of issues? :)
21:53:47  <ryah>size of the structs?
21:53:53  <piscisaureus__>hmm, scrap that, I have to rethink about it
21:54:01  <piscisaureus__>igorzi: I'm going to skype you
21:54:28  <ryah>all our structs are public, or?
21:54:42  <bnoordhuis>ryah: works on unix (the bits i did anyway), got sidetracked when i worked on the windows part
21:55:04  <ryah>bnoordhuis: oh good - we should finish that up at some point
21:55:27  <ryah>bnoordhuis: also - what about merging isoaltes2 ?
21:55:50  <bnoordhuis>ryah: sure, but you said to wait on the ipc thing right?
21:56:35  <ryah>bnoordhuis: are we compiling on windows?
21:57:19  <ryah>yeah - let me finish this damn ipc thing
21:57:46  <bnoordhuis>i don't think we but let me double-check that
21:57:52  * bnoordhuisfires up his mac again
22:01:16  <mjr_> bnoordhuis: latest cores are here: voxer.com/media/cores3.tar.gz
22:02:15  <bnoordhuis>mjr_: thanks
22:03:37  <bnoordhuis>"windows updates 15% complete" - and staying there... :/
22:03:43  <ryah>igorzi: aiming for next monday for v0.6.7 - hopefully we'll have mjr_'s issue worked out by then
22:03:52  * mjr_crosses fingers
22:05:49  <mjr_>ryah: we found a 38GB RSS node process last night. It had gotten a little behind
22:09:16  <ryah>dang
22:09:18  <mjr_>Anyway, this efence man page sounds really scary. If it doesn't slow things down too much, I'll give it a go though.
22:10:46  <mjr_>The 38GB one was writing 4KB buffers out to a log file, but the disk got slow for a bit, and node couldn't catch up, presumably because it was thrashing itself by not running the writes in order.
22:11:37  <mjr_>The disk should have been fast enough, but it seemed like it was seeking like crazy while trying to drain it's thread pool of work.
22:12:52  <CIA-111>node: Ryan Dahl v0.6 * r448c5e0 / src/node_http_parser.cc :
22:12:52  <CIA-111>node: Revert "Add HandleScope to http-parser binding"
22:12:52  <CIA-111>node: This commit did not actually fix the production crashes.
22:12:52  <CIA-111>node: This reverts commit 73cf8e82e768af870964d6f3375ab758e774165c. - http://git.io/jtXrww
22:12:58  <ryah>mjr_: working on the benchmark - give me another 30 minutes
22:13:17  <mjr_>OK, thanks.
22:14:32  <CIA-111>node: Ryan Dahl master * rb7c05e1 / (28 files in 8 dirs): Upgrade V8 to 3.8.3 - http://git.io/AhDBGg
22:15:28  <piscisaureus__>ryah: bnoordhuis: executive summary for you guys: On windows, fs.watch() will no longer report the filename for renames and deletes
22:15:45  <piscisaureus__>because the filenames we get are not reliable
22:16:25  <ryah>ok
22:16:57  * ryahtopic: piscisaureus.no.de
22:20:52  * travis-cijoined
22:20:53  <travis-ci>[travis-ci] joyent/node#155 (v0.6 - 448c5e0 : Ryan Dahl): The build passed.
22:20:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/d483acc...448c5e0
22:20:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/456172
22:20:53  * travis-cipart
22:25:12  * mikealjoined
22:26:09  * travis-cijoined
22:26:09  <travis-ci>[travis-ci] joyent/node#156 (master - b7c05e1 : Ryan Dahl): The build passed.
22:26:09  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b037c16...b7c05e1
22:26:09  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/456179
22:26:09  * travis-cipart
22:32:20  <bnoordhuis>piscisaureus__: how do i get vcbuild.bat to use more than 1 core?
22:34:13  <igorzi>bnoordhuis: pass /m to msbuild in vcbuild.bat
22:36:36  <igorzi>bnoordhuis: https://gist.github.com/1530173
22:36:55  <bnoordhuis>igorzi: thanks, you're an angel
22:37:22  <ryah>mjr_: okay - perf hit is bigger than expected 5000 req/sec -> 1000 req/se
22:37:42  <mjr_>ouch. I don't think we'll keep up then.
22:38:02  <mjr_>We run at about 40% CPU. Maybe I could try at off-peak times.
22:38:03  <ryah>meh, yeah
22:38:16  <mjr_>Seems to only really happen during peak times though.
22:40:39  <ryah>i wish i could open these core files... i guess it's because i dont have a 64bit computer
22:42:35  * CoverSli1echanged nick to CoverSlide
22:44:11  <indutny>mraleph: yt?
22:46:54  <mraleph>indutny: bits and pieces of me, yes
22:48:44  <indutny>mraleph: heh, cool :)
22:49:12  <mraleph>indutny: how can I help you? ;-)
22:50:17  <piscisaureus__>igorzi: ntapi overlapped stat won't save us... it takes a HANDLE and there's no way to do NtCreateFile asynchronously
22:50:19  <indutny>mraleph: I'm profiling my ometajs compiler (actually compiled code) and trying to find `hot-spots`, while I've decreased run time by 5-10 % it's still too slow
22:50:26  <indutny>mraleph: can I IM you or anything?
22:51:51  <mraleph>indutny: yes you can IM me
22:58:43  <bnoordhuis>can macs explode? the fan is going crazy...
22:59:48  <igorzi>piscisaureus__: hmm.. so on to trying to make thread pool behave better
22:59:51  <indutny>bnoordhuis: hope no
23:00:33  <piscisaureus__>igorzi: we should have a benchmark that runs a dummy operation on the thread pool
23:00:39  <piscisaureus__>with and without the long function flag
23:00:48  <piscisaureus__>so we can see what the overhead is
23:01:05  <igorzi>piscisaureus__: yep.. i'll do that in jan
23:01:31  <igorzi>piscisaureus__: btw, with uv_fs_event we can still report filename for renames and deletes if it's the file that's being watched, not the directory
23:03:08  <piscisaureus__>igorzi: yeah we should do that
23:03:37  <piscisaureus__>igorzi: actually for file watches we should store the *short* name on watcher init so we can detect
23:04:36  <igorzi>piscisaureus__: yeah we do that.. we store both short and long
23:04:46  <igorzi>piscisaureus__: and then check for both
23:05:18  <igorzi>piscisaureus__: crap, i just realized that we have a bug where we don't fire a callback for the new name when watching files
23:05:42  <igorzi>piscisaureus__: we just fire a callback for the old name
23:08:18  <piscisaureus__>hehe
23:08:43  <piscisaureus__>well I assume that when you install a single file watch you already know the name
23:08:45  <piscisaureus__>so not a big deal
23:08:51  <piscisaureus__>but yeah, should be fixed
23:09:14  <piscisaureus__>igorzi: the behaviour is also undefined kind of
23:09:50  <piscisaureus__>it's an issue that also needs no be addressed: does a file watch follow a file across renames
23:10:12  <piscisaureus__>or does it keep watching the "old" filename (so a rename is just a delete)
23:10:37  <piscisaureus__>I fear we're utterly inconsistent across platforms
23:11:28  <igorzi>piscisaureus__: yeah, i guess you're right.. this "bug" probably keeps us more consistent across platforms
23:11:38  <piscisaureus__>igorzi: questionable...
23:12:09  <piscisaureus__>igorzi: i think that currently watches that are fd-based (opensolaris / mac) follow across renames
23:12:16  <piscisaureus__>igorzi: but inotify doesn't
23:12:57  <bnoordhuis>piscisaureus__: it's the other way around
23:13:00  <igorzi>piscisaureus__: since we already have platform differences, i think our strategy has been to surface the most info that the underlying OS provides
23:14:56  <bnoordhuis>piscisaureus__: or rather, renames work, moves don't
23:15:12  <piscisaureus__>the situation is pretty fucked up
23:15:15  <bnoordhuis>yes
23:15:27  <piscisaureus__>what about folder renames
23:15:35  <piscisaureus__>on windows the folder is tracked across renames
23:15:44  * mmalecki_joined
23:15:44  <bnoordhuis>that works too
23:15:52  <piscisaureus__>all OSes ?
23:16:06  <bnoordhuis>if it's a rename() syscall, yes
23:16:31  <piscisaureus__>ok well one thing that's consistent at least :-)
23:20:35  * mmaleckiquit (Ping timeout: 240 seconds)
23:20:41  <piscisaureus__>bnoordhuis: how do filesystems that are fd-based watch a file that doesn't exist yet?
23:21:04  <piscisaureus__>or does watch() just fail?
23:21:14  <bnoordhuis>piscisaureus__: they don't, it fails
23:21:22  <piscisaureus__>hmm
23:21:30  <piscisaureus__>unlike watchFile()
23:21:45  <bnoordhuis>kqueue is the only fd-based api btw
23:21:46  <piscisaureus__>watchFile is pegged to the exact patch
23:21:54  <piscisaureus__>*path
23:23:48  <piscisaureus__>bnoordhuis: what about we make kqueue also dir-based?
23:24:05  <piscisaureus__>bnoordhuis: so we just stat() the file every time the containing directory reports a change?
23:25:12  <bnoordhuis>piscisaureus__: sounds race-y, you might miss events between the notification and the stat() syscall
23:26:55  <piscisaureus__>bnoordhuis: I don't think so
23:27:02  <piscisaureus__>bnoordhuis: fs.watchFile() also uses stat
23:27:22  <piscisaureus__>bnoordhuis: but instead of doing it on an interval, we would do it whenever we have an indication that it's needed
23:29:30  <bnoordhuis>piscisaureus__: i'm thinking of a scenario like: `touch foo` followed by `mv bar foo`
23:29:49  <bnoordhuis>you do a stat("foo") because of the touch event but you end up stat'ing bar
23:30:05  <bnoordhuis>don't know if it really matters, i'd have to mull it over
23:30:56  <bnoordhuis>why is msvc complaining "LNK1104: cannot open file 'z.obj'"?
23:34:15  * mikeal1joined
23:34:15  * mikealquit (Read error: Connection reset by peer)
23:34:23  <piscisaureus__>bnoordhuis: it doesn't really matter. You'd miss out events but your eventual state is good
23:37:21  <bnoordhuis>piscisaureus__: probably - ask me again tomorrow :)
23:41:03  <bnoordhuis>"we've landed experimental mdns support. This means hook.io hooks can now auto-discovery each other on a LAN." <- neat
23:56:22  * AndreasMadsen_quit (Remote host closed the connection)