00:01:20  <dap>it's better, but not great: https://skitch.com/dapsays/g36c2/0.6.8-pre-with-agent-false
00:01:42  <dap>usage up to 17.2 − 18.3MB (from original 8 − 9.16MB)
00:02:06  <dap>I'm gonna see if that baseline grows with another 100K requests (or if it's just overhead from lazily initialized stuff)
00:02:22  <piscisaureus_>dap: yeah
00:14:09  <dap>piscisaureus_: after a few minutes, it went back down to 12.6 − 13.7MB. after another 100K requests, it wound up at 18.3 − 19.5MB, so it does seem to be going up with the number of requests.
00:14:16  <dap>(I'll update the issue with all this.)
00:15:02  <piscisaureus_>dap: question, what happens if you let it leak for a while and then - after you stop ab 'ing, kill the child process
00:15:27  <piscisaureus_>dap: maybe we are leaking keepalive connections, but they should be cleaned up when the server goes away
00:15:50  <dap>Good idea. I just tried killing the the child. No effect so far.
00:20:46  <piscisaureus_>dap: okay, I am going away. Again, I will investigate tomorrow when I am back in the office.
00:20:50  <piscisaureus_>bye all
00:22:48  <dap>later pisisaureus_. thanks for the help.
00:22:57  <dap>I've updated the ticket with the latest info.
00:24:58  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:31:25  * mikealquit (Quit: Leaving.)
00:33:35  * mikealjoined
00:37:57  * mralephquit (Quit: Leaving.)
00:39:01  * dshaw_1joined
00:41:29  * dshaw_quit (Ping timeout: 240 seconds)
01:21:02  * mikealquit (Quit: Leaving.)
01:34:01  * mikealjoined
02:16:16  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:24:30  * dapquit (Quit: Leaving.)
02:28:24  * dshaw_1quit (Ping timeout: 244 seconds)
02:36:08  * mikealquit (Quit: Leaving.)
02:53:48  * brsonquit (Quit: leaving)
03:14:34  * isaacsquit (Remote host closed the connection)
03:18:25  * pieternquit (Quit: pietern)
03:43:27  * isaacsjoined
04:48:33  * dshaw_joined
04:55:24  * dshaw_quit (Quit: Leaving.)
04:55:56  * dshaw_joined
06:03:50  * mralephjoined
06:18:29  * isaacsquit (Remote host closed the connection)
06:31:39  * mikealjoined
06:33:05  * mikealquit (Client Quit)
06:38:52  * mralephquit (Quit: Leaving.)
07:00:03  * paddybyersjoined
07:10:20  <indutny>good morning
07:25:54  * kuebkjoined
07:37:27  * kuebk1joined
07:41:37  * kuebkquit (Ping timeout: 252 seconds)
08:03:50  * mikealjoined
08:15:46  * benviequit
10:09:26  <mmalecki>morning indutny
10:11:40  <indutny>mmalecki: how are you doing?
10:12:10  <mmalecki>indutny: I'm fine, thanks! looking for something interesting to do :). how are you?
10:13:29  <indutny>fine too, having fun with my btree
10:14:34  <mmalecki>oh, the C++ one?
10:15:39  <indutny>mmalecki: not C++, but C
10:16:09  <mmalecki>indutny: oh! that's even better :)
10:16:17  <indutny>mmalecki: yeah :)
10:16:19  <indutny>I like it
10:16:22  <indutny>oooh
10:16:26  <indutny> 192 followers on github
10:16:27  <indutny>woot
10:16:48  <mmalecki>indutny: ++
10:16:48  <kohai>indutny has 8 beers
10:17:20  <mmalecki>I guess I look stupid with my 94 here
10:17:59  <indutny>mmalecki: https://github.com/ry ;)
10:18:03  <indutny>we all look stupid
10:18:39  <mmalecki>oh well :)
10:40:18  * dshaw_quit (Quit: Leaving.)
11:21:30  * benviejoined
11:49:54  * piscisaureus_joined
12:03:43  <indutny>piscisaureus_: heya
12:04:01  <piscisaureus_>fedor: ola
12:04:06  <piscisaureus_>I am kind of busy
12:04:16  <indutny>piscisaureus_: oh, k
12:04:31  <indutny>sorry
12:06:45  <piscisaureus_>indutny: nvm :-)
13:07:27  * bnoordhuisjoined
14:01:41  <CIA-115>libuv: Ben Noordhuis v0.6 * r646c80b / gyp_uv : build: generate Makefiles on OS X - http://git.io/gsbLVQ
14:01:43  <CIA-115>libuv: Ben Noordhuis v0.6 * r98f3446 / src/unix/ev/ev_kqueue.c :
14:01:43  <CIA-115>libuv: unix: don't close kqueue fd in kqueue_fork()
14:01:43  <CIA-115>libuv: The file descriptor is not inherited by the child process. Trying to close it is
14:01:43  <CIA-115>libuv: not just useless, it's actively harmful - if the close() call succeeds, it will
14:01:43  <CIA-115>libuv: have closed an altogether different file descriptor. - http://git.io/7o-kYg
14:03:17  * travis-cijoined
14:03:17  <travis-ci>[travis-ci] joyent/libuv#40 (v0.6 - 646c80b : Ben Noordhuis): The build is still failing.
14:03:17  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/bf8ccfc...646c80b
14:03:17  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/544651
14:03:17  * travis-cipart
14:28:18  * isaacsjoined
14:37:04  <indutny>ryah_: yt?
14:39:54  <ryah_>indutny: yes
14:40:11  <indutny>ryah_: cool :)
15:13:18  <piscisaureus_>Does anyone here understand javascript?
15:14:21  <piscisaureus_>eval('{} + {}') // NaN
15:14:43  <piscisaureus_>eval('({} + {})') // "[object Object][object Object]"
15:15:19  <mmalecki>piscisaureus_: watching WAT talk :) ?
15:15:24  <piscisaureus_>mmalecki: yes
15:15:40  <piscisaureus_>mmalecki: I was really surprised that {} would be coerced to any number
15:15:50  <mmalecki>yeah, same here
15:16:06  <piscisaureus_>mmalecki: but I was even more surprised (tried it myself) that putting braces around it changes that
15:16:23  <piscisaureus_>so ({} + {}) !== {} + {}
15:16:58  <piscisaureus_>it looks like node's repl seems to add those braces implicitly
15:17:17  <mmalecki>wat.
15:23:17  <CIA-115>libuv: Ben Noordhuis master * r98f3446 / src/unix/ev/ev_kqueue.c :
15:23:17  <CIA-115>libuv: unix: don't close kqueue fd in kqueue_fork()
15:23:17  <CIA-115>libuv: The file descriptor is not inherited by the child process. Trying to close it is
15:23:17  <CIA-115>libuv: not just useless, it's actively harmful - if the close() call succeeds, it will
15:23:17  <CIA-115>libuv: have closed an altogether different file descriptor. - http://git.io/7o-kYg
15:23:18  <CIA-115>libuv: Ben Noordhuis master * r646c80b / gyp_uv : build: generate Makefiles on OS X - http://git.io/gsbLVQ
15:23:20  <CIA-115>libuv: Ben Noordhuis v0.6 * r32b291d / common.gypi :
15:23:20  <CIA-115>libuv: build: don't set -mmacosx-version-min
15:23:20  <CIA-115>libuv: It sets __MAC_OS_X_VERSION_MIN_REQUIRED__, which is what we use for feature
15:23:20  <CIA-115>libuv: detection. - http://git.io/eYdv-w
15:23:20  <CIA-115>libuv: Ben Noordhuis master * r32b291d / common.gypi :
15:23:21  <CIA-115>libuv: build: don't set -mmacosx-version-min
15:23:21  <CIA-115>libuv: It sets __MAC_OS_X_VERSION_MIN_REQUIRED__, which is what we use for feature
15:23:21  <CIA-115>libuv: detection. - http://git.io/eYdv-w
15:23:22  <CIA-115>libuv: Ben Noordhuis master * r517bfc8 / (5 files in 4 dirs): Merge branch 'v0.6' - http://git.io/lPJjOw
15:24:56  * travis-cijoined
15:24:56  <travis-ci>[travis-ci] joyent/libuv#42 (v0.6 - 32b291d : Ben Noordhuis): The build is still failing.
15:24:56  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/646c80b...32b291d
15:24:56  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/544935
15:24:56  * travis-cipart
15:25:06  * travis-cijoined
15:25:06  <travis-ci>[travis-ci] joyent/libuv#41 (master - 517bfc8 : Ben Noordhuis): The build is still failing.
15:25:06  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/454e021...517bfc8
15:25:06  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/544932
15:25:06  * travis-cipart
15:28:40  <indutny>isaacs: :)
15:28:44  <indutny>ryah_: :)
15:32:57  <CIA-115>node: Artur Adib v0.6 * re282c0a / doc/api/addons.markdown : docs: document common add-on design patterns - http://git.io/Q3XUcw
15:35:34  <ryah_>bnoordhuis: you here?
15:35:39  <bnoordhuis>ryah_: yes
15:35:41  <bnoordhuis>you?
15:36:03  <ryah_>bnoordhuis: barely
15:36:09  <ryah_>im wondering about https://github.com/joyent/node/blob/master/src/node_isolate.cc#L137
15:36:15  <ryah_>https://github.com/joyent/node/blob/03cb903e7e3a35350ba09af052eac7844ae070e9/src/node_isolate.cc#L137
15:36:41  <ryah_>what keep the child isolate alive?
15:37:00  <bnoordhuis>ryah_: magic
15:37:08  <bnoordhuis>actually, i don't know - it's odd
15:37:25  <ryah_>in processes we have the ipc pipe which keeps it alive
15:37:26  <bnoordhuis>been talking to igorzi?
15:37:34  <ryah_>so it seems the channel should also keep it alive
15:37:53  <ryah_>igor was trying to port test/simple/test-isolates1.js but his ref counts are differnt
15:38:04  <indutny>woooot! http://codereview.chromium.org/9190001/
15:38:36  <bnoordhuis>ryah_: i'm working with piscisaureus_ on straightening out the refcount differences in libuv
15:38:51  <indutny>bnoordhuis: we should merge ErikkCorry fixes
15:38:52  <ryah_>oh good
15:39:04  <ryah_>bnoordhuis: but i think that uv_async_t shouldn't be unrefed in the channel
15:39:22  <ryah_>since it should keep the child alive
15:40:01  <bnoordhuis>there may be a difference between uv_async_init on windows and unices
15:40:03  <piscisaureus_>will an isolate implicitly exit when it has nothing more to do?
15:40:09  <bnoordhuis>on unices, we call ev_unref
15:40:13  <piscisaureus_>like a child process?>
15:40:15  <bnoordhuis>piscisaureus_: yes
15:40:29  <bnoordhuis>at least, that's how it works (or should work) now
15:40:33  <piscisaureus_>so process.stdin.close() will uv_unref the async?
15:40:41  * travis-cijoined
15:40:41  <travis-ci>[travis-ci] joyent/node#278 (v0.6 - e282c0a : Artur Adib): The build passed.
15:40:41  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/f7b6125...e282c0a
15:40:41  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/544969
15:40:41  * travis-cipart
15:41:05  <ryah_>it shouldnt though
15:41:27  <ryah_>at least tht's not how child_process.fork processes work
15:46:26  <bnoordhuis>that's right
15:46:33  <bnoordhuis>but is how child_process.fork works a bug or a feature?
15:46:44  <bnoordhuis>people complain a lot about the channel keeping the child alive
15:53:29  <indutny>bnoordhuis: review https://github.com/indutny/node/commit/0f49630918cfad994eb38687eaea7532528fa69e ?
15:53:43  <indutny>bnoordhuis: s/review/please review :)
15:54:18  <indutny>bnoordhuis: oh, wrong message. I'll fix it: "Update with fixes from: "
15:55:33  <bnoordhuis>indutny: lgtm i suppose
15:55:45  <indutny>bnoordhuis: cool
15:55:48  <bnoordhuis>they're leftover fixes from that back-port?
15:56:11  <indutny>bnoordhuis: yes
15:56:17  <indutny>bnoordhuis: it has finally landed in v8
15:56:21  <bnoordhuis>cool, go ahead and land it
15:56:47  <CIA-115>node: Fedor Indutny v0.6 * r4fdec07 / (deps/v8/src/ia32/code-stubs-ia32.cc deps/v8/src/objects.h):
15:56:47  <CIA-115>node: Land number collision fix for v8 3.6 by Erik Corry
15:56:47  <CIA-115>node: Update with fixes from: http://codereview.chromium.org/9190001/ - http://git.io/rplW1g
15:57:00  <indutny>bnoordhuis: said - done ^
15:57:01  <indutny>:D
15:58:43  <isaacs>indutny: thanks
15:58:50  <indutny>isaacs: np
15:58:54  <indutny>isaacs: for what?
15:59:08  <isaacs>for doing the patch :)
15:59:47  <bnoordhuis>isaacs: are you at the office?
16:00:19  <isaacs>bnoordhuis: not yet
16:00:23  <isaacs>heading in soon, though
16:01:40  * pieternjoined
16:02:08  <bnoordhuis>isaacs: can you check if someone nuked gqzdj9au.joyent.us (again)?
16:02:19  <bnoordhuis>not sure who i should ask about that now that tom is gone
16:03:04  <indutny>bnoordhuis: lets put our thoughts here https://github.com/joyent/node/issues/2580
16:04:50  * travis-cijoined
16:04:51  <travis-ci>[travis-ci] joyent/node#279 (v0.6 - 4fdec07 : Fedor Indutny): The build was broken.
16:04:51  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/e282c0a...4fdec07
16:04:51  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/545095
16:04:51  * travis-cipart
16:05:12  <bnoordhuis>indutny: you know, there's a clever hack we can use for that
16:05:24  <indutny>bnoordhuis: like NODE_VAR?
16:05:30  <bnoordhuis>no, better
16:05:42  <indutny>bnoordhuis: I'm scared
16:05:50  <bnoordhuis>you can set a hidden variable on the global object, right?
16:06:03  <indutny>bnoordhuis: that's it, but it'll be slow
16:06:14  <bnoordhuis>how slow?
16:06:21  <indutny>bnoordhuis: slower than just static vars
16:06:33  <indutny>bnoordhuis: I think we can put custom struct on isolate somehow
16:06:47  <isaacs>bnoordhuis: i'm not sure what http://gqzdj9au.joyent.us is
16:06:58  <isaacs>but i can't seem to access it
16:07:11  <bnoordhuis>isaacs: an old solaris machine i used to test node on
16:08:40  <isaacs>i'll ask around
16:08:46  <bnoordhuis>isaacs: thanks
16:09:01  <isaacs>bnoordhuis: want a new smartos machine to test node on?
16:09:19  <bnoordhuis>isaacs: that would be nice
16:09:29  <bnoordhuis>i have a no.de instance btw, just can't access it from here
16:10:40  <bnoordhuis>indutny: we can start out with node::GetModuleData(void* cookie) and node::SetModuleData(void* cookie, void* data)
16:11:04  <bnoordhuis>indutny: or something similar, and try the naive approach first
16:11:59  <indutny>bnoordhuis: that sounds good
16:12:07  <bnoordhuis>indutny: i know right? :)
16:12:08  <indutny>just linked list of pointer-data, right?
16:12:33  <indutny>bnoordhuis: ?
16:13:00  <bnoordhuis>indutny: or something like that. we can try both approaches and see how they hold up, performance wise
16:13:41  <indutny>bnoordhuis: yeah
16:28:51  * kuebk1part
17:03:24  * dapjoined
17:18:23  * rmustaccjoined
17:24:32  * isaacsquit (Remote host closed the connection)
17:31:19  * dshaw_joined
17:34:51  <mmalecki>aren't the front page changes deployed or is my cache going mad?
17:36:21  <sh1mmer>piscisaureus_: hey, do you have a sec
17:38:21  * Raynosquit (Remote host closed the connection)
17:38:40  * Raynosjoined
17:40:52  * Raynosquit (Remote host closed the connection)
17:41:43  * mrb_bkquit (Write error: Connection reset by peer)
17:42:49  * AndreasMadsenjoined
17:47:09  * Raynosjoined
17:49:03  * dshaw_quit (Quit: Leaving.)
17:52:11  <indutny>mmalecki: not deployed so far
17:56:04  <piscisaureus_>sh1mmer: yo
17:56:09  <piscisaureus_>sup?
17:56:22  <sh1mmer>I was hoping you might have some insight on the v8 profiler
17:56:31  <piscisaureus_>heh
17:56:37  <piscisaureus_>what do you want to know?
17:56:54  <piscisaureus_>you need to build d8
17:57:15  <piscisaureus_>from the v8 directory run `scons d8`
17:57:37  <piscisaureus_>after that you can profile stuf with `node --profile script.js`
17:57:41  <sh1mmer>oh no
17:57:42  <sh1mmer>that's fine
17:57:43  <indutny>piscisaureus_: node --prof
17:57:49  <piscisaureus_>yeah, sorry
17:57:50  <sh1mmer>I have this massive tick file and the majority of the bottom up shows the node binary
17:58:13  <sh1mmer>and libc-2.11.2.so
17:58:15  <piscisaureus_>sh1mmer: have you run mac-tick-processor
17:58:18  <sh1mmer>yes
17:58:30  <sh1mmer>although the ticks came from a linux machine
17:58:32  <indutny>sh1mmer: can you publish part of bottom-up as gist?
17:59:22  <sh1mmer>1 sec
17:59:58  <sh1mmer>hm gist is being really slow
18:00:48  <indutny>sh1mmer: you can post just a few lines
18:00:53  <indutny>sh1mmer: like 100-200
18:01:14  <sh1mmer> ticks parent name
18:01:14  <sh1mmer> 37474837 59.0% /data1/home/mobile/.nvm/v0.6.5/bin/node
18:01:15  <sh1mmer> 14234734 38.0% Function: exports.stats /data1/home/mobile/monitor/cache.js:69
18:01:30  <sh1mmer>and the other major one is
18:01:31  <sh1mmer> 21108252 33.2% /lib64/libc-2.11.2.so
18:01:31  <sh1mmer> 2582683 12.2% Function: exports.stats /data1/home/mobile/monitor/cache.js:69
18:01:52  <indutny>oh, node binary looks interesting
18:01:54  <indutny>:)
18:02:00  <sh1mmer>yeah, I was wondering exactly what is being called
18:02:28  <sh1mmer>do I have to run valgrind on that, or gdb?
18:02:33  <rmustacc>Neither.
18:02:34  * bnoordhuisquit (Ping timeout: 252 seconds)
18:02:38  * mralephjoined
18:02:42  <rmustacc>What OS are you on?
18:03:00  <sh1mmer>the log is from rhel
18:03:08  <sh1mmer>I processed it on a mac though
18:03:13  <rmustacc>It doesn't know.
18:03:18  <rmustacc>You have to use another tool to get it.
18:03:28  <sh1mmer>rmustacc: right, that's what I meant
18:03:29  <indutny>mraleph: 18:01 < sh1mmer> 37474837 59.0% /data1/home/mobile/.nvm/v0.6.5/bin/node
18:03:32  <rmustacc>oprofile
18:03:33  <indutny>18:01 < sh1mmer> 14234734 38.0% Function: exports.stats /data1/home/mobile/monitor/cache.js:69
18:03:36  <indutny>18:01 < sh1mmer> and the other major one is
18:03:39  <indutny>18:01 < sh1mmer> 21108252 33.2% /lib64/libc-2.11.2.so
18:03:42  <indutny>18:01 < sh1mmer> 2582683 12.2% Function: exports.stats /data1/home/mobile/monitor/cache.js:69
18:03:46  <indutny>18:01 < indutny> oh, node binary looks interesting
18:03:59  <indutny>mraleph: why can node binary be on top of that?
18:04:20  <rmustacc>Uh, because you're in C code most of the time?
18:04:27  <sh1mmer>rmustacc: right
18:04:29  <indutny>right
18:04:32  <rmustacc>If you're spending your time in node, that's why it's there.
18:04:32  <indutny>but where
18:04:35  <rmustacc>It can't know.
18:04:40  <mraleph>because processor needs to see the binary itself to resolve any symbols. if it can't resolve it -> you get all ticks attributed just to binary.
18:04:58  <mraleph>without any granularity.
18:05:04  <sh1mmer>mraleph: would that be because I processed on a different machine/arch to the one the ticks came from?
18:05:54  <mraleph>sh1mmer: does your other machine have node binary at /data1/home/mobile/.nvm/v0.6.5/bin/node ?
18:06:04  <sh1mmer>yes
18:06:15  <sh1mmer>the ticks came from a RHEL server with that config
18:06:22  <sh1mmer>and I processed on mac desktop mac
18:06:32  <mraleph>so both machines have the same /data1/home/mobile/.nvm/v0.6.5/bin/node ?
18:06:34  <sh1mmer>s/mac/my/
18:06:35  <sh1mmer>no
18:06:38  <sh1mmer>only the server
18:06:51  <sh1mmer>I can certainly reprocess with a binary in that location
18:07:05  <mraleph>yeah, that would be the first thing to try.
18:07:10  <sh1mmer>but I'm assuming having a mac binary would an issue
18:07:16  <sh1mmer>I'm going to find a spare QA server and do that
18:07:23  <sh1mmer>this is an interesting thing to be aware of though
18:07:26  <sh1mmer>thanks a lot
18:07:32  * isaacsjoined
18:07:37  <mraleph>you are welcome.
18:08:15  <indutny>mraleph: thank you!
18:08:25  <rmustacc>sh1mmer: You probably are also going to want to get rhel debug symbols for libc.
18:08:37  <sh1mmer>rmustacc: right, good call
18:27:03  * AndreasMadsenquit (Remote host closed the connection)
18:33:01  * mrb_bkjoined
18:33:40  * dshaw_joined
18:36:59  * paddybyerspart
18:53:38  * AndreasMadsenjoined
18:56:39  * TooTallNatejoined
19:01:12  <indutny>incorrect checksum for freed object - object was probably modified after being freed.
19:01:19  <indutny>piscisaureus_: what does this mean ^
19:01:27  <indutny>can you help me please
19:02:30  <indutny>oh, I think I got it
19:03:34  <rmustacc>It means that you're modifying memory after its been freed.
19:04:01  <rmustacc>And you got away with it because it was still mapped in.
19:07:48  * brsonjoined
19:08:15  * paddybyersjoined
19:17:25  <indutny>rmustacc: thanks.
19:25:48  * piscisaureus_quit (Read error: Connection reset by peer)
19:36:38  * mraleph1joined
19:38:53  * `3rdEdenjoined
19:48:37  <indutny>/n
19:48:40  <indutny>oops
19:48:40  <indutny>:)
19:53:49  * AndreasMadsenquit (Ping timeout: 240 seconds)
20:13:13  * `3rdEdenquit (Read error: Connection reset by peer)
20:13:25  * `3rdEdenjoined
20:13:59  * `3rdEdenquit (Read error: Connection reset by peer)
20:14:05  * V1joined
20:14:20  * V1changed nick to `3rdEden
20:28:57  * mikealquit (Quit: Leaving.)
20:31:49  * mikealjoined
20:35:57  * dapquit (Ping timeout: 248 seconds)
20:51:00  * mikealquit (Quit: Leaving.)
21:14:54  * mikealjoined
21:20:57  * dshaw_1joined
21:23:00  * dshaw_quit (Ping timeout: 244 seconds)
22:00:29  * isaacs_joined
22:01:08  * isaacs__joined
22:02:29  * isaacsquit (Ping timeout: 240 seconds)
22:05:18  * isaacs_quit (Ping timeout: 276 seconds)
22:06:39  * isaacsjoined
22:07:49  * isaacs_joined
22:09:36  * isaacs__quit (Ping timeout: 252 seconds)
22:10:21  * isaacs__joined
22:11:09  * isaacsquit (Ping timeout: 252 seconds)
22:12:08  * isaacs__quit (Read error: Operation timed out)
22:12:08  * isaacsjoined
22:12:49  * isaacs_quit (Ping timeout: 240 seconds)
22:18:19  * piscisaureus_joined
22:18:42  * isaacs_joined
22:19:00  <piscisaureus_>isaacs_: isaacs: what are you using listenFD for?
22:19:04  <piscisaureus_>syslogd?
22:19:56  <piscisaureus_>er, that would be systemd
22:20:44  * isaacs__joined
22:21:39  * isaacsquit (Ping timeout: 255 seconds)
22:21:45  * isaacs__changed nick to isaacs
22:21:48  <piscisaureus_>rmustacc: dap: ^ -?
22:23:17  * isaacs_quit (Ping timeout: 245 seconds)
22:23:28  <rmustacc>piscisaureus_: Check out https://github.com/mcavage/node-zsock
22:23:37  <rmustacc>Basically needing to actually pass an fd over a UDS.
22:23:58  <rmustacc>e.g. the child is in a different domain and can pass it back to the parent who actually binds and listens.
22:24:54  * bnoordhuisjoined
22:26:26  * isaacs_joined
22:29:51  * isaacsquit (Ping timeout: 252 seconds)
22:32:36  * isaacs_quit (Ping timeout: 276 seconds)
22:32:54  * isaacsjoined
22:33:42  * isaacs_joined
22:33:51  * dapjoined
22:36:57  * isaacsquit (Ping timeout: 240 seconds)
22:37:03  * isaacs__joined
22:37:43  * dap1joined
22:37:58  * `3rdEdenquit (Read error: Connection reset by peer)
22:38:07  * V1joined
22:39:28  * dap2joined
22:39:49  * isaacs_quit (Ping timeout: 240 seconds)
22:39:59  * dapquit (Ping timeout: 244 seconds)
22:41:13  * dapjoined
22:41:13  * V1changed nick to `3rdEden
22:42:06  * isaacsjoined
22:42:21  * isaacs__quit (Ping timeout: 276 seconds)
22:42:21  * dap1quit (Ping timeout: 255 seconds)
22:43:10  * isaacs_joined
22:43:58  * dap1joined
22:44:37  * dap2quit (Ping timeout: 272 seconds)
22:45:08  * mikealquit (Quit: Leaving.)
22:45:49  * dapquit (Ping timeout: 252 seconds)
22:46:36  * isaacsquit (Ping timeout: 248 seconds)
22:48:26  * isaacsjoined
22:48:41  * dapjoined
22:50:00  * isaacs__joined
22:50:22  * isaacs_quit (Ping timeout: 245 seconds)
22:50:23  * dap1quit (Ping timeout: 252 seconds)
22:50:26  * isaacs__changed nick to isaacs_
22:50:26  * dap2joined
22:50:41  * isaacsquit (Disconnected by services)
22:51:30  * isaacsjoined
22:52:26  * isaacs__joined
22:52:57  * dapquit (Ping timeout: 252 seconds)
22:54:51  * `3rdEdenquit (Read error: Connection reset by peer)
22:55:15  * `3rdEdenjoined
22:55:21  * isaacs_quit (Ping timeout: 276 seconds)
22:56:00  * isaacsquit (Ping timeout: 244 seconds)
22:57:40  * dapjoined
22:58:39  * `3rdEdenquit (Read error: Connection reset by peer)
22:58:42  <piscisaureus_>rmustacc: we actually *have* that support :-)
22:59:47  * dap2quit (Ping timeout: 248 seconds)
23:00:01  * `3rdEdenjoined
23:00:02  * dap1joined
23:00:27  * isaacs__quit (Ping timeout: 272 seconds)
23:00:48  <rmustacc>Okay, want to tell me how so I can forward it onto folks?
23:00:57  * isaacsjoined
23:02:07  * dapquit (Ping timeout: 252 seconds)
23:02:11  <piscisaureus_>rmustacc: https://github.com/joyent/libuv/blob/master/include/uv.h#L784-788
23:02:35  <piscisaureus_>rmustacc: from node, you can only do that when you set up a channel between node processes
23:02:44  <piscisaureus_>rmustacc: but from c++, you can do anything you want
23:02:48  * dapjoined
23:02:52  <rmustacc>Is that in 0.6?
23:03:07  <piscisaureus_>rmustacc: yes
23:03:27  * isaacs_joined
23:03:29  <rmustacc>Well, unfortunate that it now has to be a binary add on.
23:03:53  <piscisaureus_>rmustacc: it already is, right?
23:03:55  <piscisaureus_>https://github.com/mcavage/node-zsock/blob/master/src/zsock.cc
23:04:16  * dap1quit (Ping timeout: 244 seconds)
23:04:25  <rmustacc>That wasn't the only place it was used.
23:04:45  <piscisaureus_>rmustacc: oh hmm
23:04:49  <rmustacc>But I'm not familiar with all the details.
23:05:35  * dap1joined
23:05:39  <piscisaureus_>rmustacc: I am interested in learning how your node code learns which fd it should listen on
23:05:57  * isaacsquit (Ping timeout: 240 seconds)
23:06:31  * mikealjoined
23:07:10  * dapquit (Ping timeout: 252 seconds)
23:07:50  * dapjoined
23:07:58  * isaacs_quit (Ping timeout: 240 seconds)
23:08:33  <igorzi>piscisaureus_: you're saying that we almost have listenFD on windows.. you mean only for stdio fds, right?
23:10:01  * dap1quit (Ping timeout: 252 seconds)
23:10:08  <rmustacc>piscisaureus_: Honestly I'm not the most familiar with all the code, so I won't be able to answer you.
23:10:52  <rmustacc>But I can probably ping the folks who were using it to better explain it or go through isaacs.
23:11:35  * dap1joined
23:12:49  <bnoordhuis>rmustacc: what file descriptor are you monitoring? (and why?)
23:14:05  * dapquit (Ping timeout: 244 seconds)
23:14:17  * dapjoined
23:15:28  <igorzi>bnoordhuis: question about ipc on unix.. let's say you fork a child process with cluster, send the fd of the listening socket to the child process, and then do server.close in the child process. does this close the underlying socket?
23:15:47  * dap1quit (Ping timeout: 245 seconds)
23:16:17  * mraleph1quit (Quit: Leaving.)
23:16:39  <bnoordhuis>igorzi: no
23:17:01  <igorzi>bnoordhuis: how's that done? are you duplicating the fd?
23:17:05  * dap1joined
23:17:16  <bnoordhuis>igorzi: more or less, yes
23:17:30  <igorzi>bnoordhuis: or the fact that you use it from another process?
23:17:46  <bnoordhuis>the nitty gritty details (for linux) is that it bumps a reference count in the kernel's sock struct
23:18:20  <bnoordhuis>essentially, the socket isn't really closed / shutdown / unbound until the last process closes it
23:18:41  <igorzi>bnoordhuis: but are you doing it explicitly (dup) or it's done implicitly (because the fd is accessed from another proc)?
23:18:42  * dapquit (Ping timeout: 245 seconds)
23:18:59  <igorzi>bnoordhuis: i'm asking because we need to replicate this behavior with in-proc I"P"C
23:19:15  <igorzi>(isolates)
23:19:16  <bnoordhuis>igorzi: implicitly - when you send over a file descriptor with sendmsg(), you get a copy (from userland's perspective)
23:19:26  <igorzi>bnoordhuis: ok, got it
23:19:27  * dapjoined
23:19:49  <rmustacc>bnoordhuis: As I mentioned earlier, I don't know any of this code. And the Internet here is rather choppy, I'm getting dc'd every 15 secs.
23:19:52  <igorzi>bnoordhuis: so with isolates - we'd need to do an explicit dup? or something similar?
23:20:13  <bnoordhuis>igorzi: we could repurpose the sendmsg() code, it's an expensive way of doing dup()
23:20:26  <bnoordhuis>rmustacc: no problem, just curious
23:20:37  <rmustacc>Well, no one was doing monitoring, if I understood it.
23:20:43  <piscisaureus_>igorzi: well we can share listening pipe instances over ipc channels right?
23:20:55  <piscisaureus_>igorzi: that basically means we are almost there
23:21:18  <igorzi>piscisaureus_: right, but not using FDs
23:21:30  * dap1quit (Ping timeout: 255 seconds)
23:21:40  * dap1joined
23:21:44  <piscisaureus_>igorzi: well sockets and FD's are pretty much the same
23:21:57  <igorzi>piscisaureus_: hence we need listenHandle instead of listenFD
23:22:16  <piscisaureus_>igorzi: oh like that - yeah
23:22:24  <igorzi>piscisaureus_: in case of sockets we don't send over the socket, we send over that WSA_PROTOCOLINFO (which is huge)
23:23:24  <piscisaureus_>igorzi: oh - but the code path is pretty similar right?
23:23:30  <bnoordhuis>joyent, why don't the no.de machines don't have ab installed?!
23:23:45  <bnoordhuis>oh, a double negative
23:23:45  * dapquit (Ping timeout: 255 seconds)
23:23:47  <piscisaureus_>igorzi: btw duplicating sockets always needs to take the WSA_PROTOCOLINFO path
23:24:11  <piscisaureus_>igorzi: at least in theory
23:24:24  * dapjoined
23:24:33  <igorzi>piscisaureus_: yeah.. my point is that listen... can't take a FD (int).. it needs to be something platform-specific
23:24:40  <CIA-115>node: Ben Noordhuis master * r90587b1 / deps/v8/src/platform-solaris.cc :
23:24:41  <CIA-115>node: v8: implement VirtualMemory class on SunOS
23:24:41  <CIA-115>node: Unbreaks build on SunOS. Re-applies 4908e5bf7a9c8014eefcf344e958bf0dad95d907. - http://git.io/oV2FAg
23:24:41  <CIA-115>node: Ben Noordhuis master * r0f33768 / deps/v8/tools/gyp/v8.gyp :
23:24:41  <CIA-115>node: v8: link against libsocket and libnsl on sunos
23:24:42  <CIA-115>node: The V8 debugger requires BSD socket support. Solaris-like systems obviously
23:24:42  <CIA-115>node: support that but you need to link against the right libraries, it's not part of
23:24:43  <CIA-115>node: libc. - http://git.io/A2DhpA
23:25:20  <piscisaureus_>igorzi: yeah well it *can* take int but it's not very pointless
23:25:29  <piscisaureus_>er, double negative
23:25:34  <piscisaureus_>it's pointless
23:26:12  <piscisaureus_>since that would assume that people have done _open_osfhandle on the socket which is um, not very common
23:26:14  * dap1quit (Ping timeout: 252 seconds)
23:26:57  <piscisaureus_>igorzi: tbh, we need something that takes an fd/handle/whatever and figures out the correct type
23:27:03  <piscisaureus_>and turns it into a libuv handle
23:27:28  <igorzi>piscisaureus_: but how would people get the socket to correspond to the process's FD in the first place?
23:28:14  <igorzi>piscisaureus_: i assume that with sockets people would start out with WSA_PROTOCOLINFO
23:28:42  * dapquit (Ping timeout: 255 seconds)
23:28:43  <piscisaureus_>igorzi: yeah, good point. I also wonder where the fd that joyents wants to listenFD on comes from
23:29:16  <piscisaureus_>igorzi: the only way I can think of is through handle inheritance
23:29:17  <igorzi>piscisaureus_: yeah, that would be good to find out
23:29:31  <piscisaureus_>igorzi: sometimes it could come from external libraries
23:30:19  <piscisaureus_>igorzi: e.g. c-ares gives us a SOCKET and tells us to poll it
23:30:28  <igorzi>bnoordhuis: ok, i'm going to let you figure out the unix side :).. i just wanted to know what the right behavior should be
23:31:00  <igorzi>piscisaureus_: ^-- btw, i think i'm going to have to use WSADuplicateSocket for inter-isolate IPC as well
23:31:18  <piscisaureus_>igorzi: yeah
23:31:29  <piscisaureus_>igorzi: seems fine
23:31:58  <igorzi>piscisaureus_: better let the kernel do the ref-counting :)
23:32:06  <piscisaureus_>igorzi: ++
23:32:07  <kohai>igorzi has 4 beers
23:32:15  <piscisaureus_>much more resilient
23:34:41  <piscisaureus_>I am not really here.
23:34:44  <piscisaureus_>btw
23:34:49  <piscisaureus_>going again
23:35:02  <piscisaureus_>I'm available via e-mail
23:35:05  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:36:02  * travis-cijoined
23:36:02  <travis-ci>[travis-ci] joyent/node#280 (master - 0f33768 : Ben Noordhuis): The build is still failing.
23:36:02  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/0ca3018...0f33768
23:36:02  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/546984
23:36:02  * travis-cipart
23:37:38  <bnoordhuis>indutny: for when you wake up -> https://github.com/joyent/node/issues/2580
23:46:38  <mmalecki>bnoordhuis: that's not a thing man wants to see when he wakes up
23:47:07  <bnoordhuis>this seems like a good time to invoke twss.js
23:47:49  <mmalecki>you can use a twss.js as a service!
23:48:24  <mmalecki>http://twss.nodejitsu.com/api/twss?q=query
23:48:37  <mmalecki>http://twss.jit.su/api/twss?q=it's%20so%20big :)
23:49:27  <bnoordhuis>mmalecki, making the internet a better place since 2011
23:50:07  <mmalecki>bnoordhuis: yes :). I need some fronted for this thing, btw.
23:50:29  <bnoordhuis>i hear good things about html
23:50:42  <bnoordhuis>this javascript thing seems pretty hot too
23:50:55  <mmalecki>html is shit.
23:51:05  <mmalecki>like, really
23:51:28  <mmalecki>but yeah, js is fine, I guess :)
23:52:23  <mjr_>It'll do for now.
23:52:49  <mmalecki>mjr_: soon.