00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:11:46  * groundwaterquit (Quit: groundwater)
00:13:03  * kazuponjoined
00:17:55  * kazuponquit (Ping timeout: 264 seconds)
00:43:25  <Raynos>I'm trying to find the source code for https://github.com/joyent/node/blob/master/lib/fs.js#L380
00:43:32  <Raynos>to figure out what close gives in the callback
00:43:40  <Raynos>I've looked here https://github.com/joyent/node/blob/master/src/node_file.cc#L253
00:43:45  <Raynos>But I dont see where close is
00:43:54  <Raynos>whats the normal way you trace from bindings into libuv?
00:44:51  * inolen1quit (Quit: Leaving.)
00:48:23  * AvianFlujoined
00:48:34  * st_lukequit (Remote host closed the connection)
00:48:54  * kevinswiberjoined
00:50:30  * kevinswiberquit (Remote host closed the connection)
00:52:23  <bnoordhuis>Raynos: all uv_fs_*() functions take a callback that takes a uv_fs_t*
00:53:00  <bnoordhuis>as to node_file.cc, it's full of macro magic (of the bad kind). it's not designed to be easy to follow, i'm afraid
00:53:16  <Raynos>:(
00:53:35  * kevinswi_joined
00:55:20  * kevinswi_quit (Remote host closed the connection)
00:55:53  * kevinswiberjoined
00:58:26  * kevinswi_joined
00:59:30  * kevinswiberquit (Read error: Connection reset by peer)
01:00:51  * kevinswi_quit (Remote host closed the connection)
01:01:25  * kevinswiberjoined
01:04:23  * kevinswi_joined
01:04:53  * kevinswiberquit (Read error: Connection reset by peer)
01:08:02  * kevinswi_quit (Remote host closed the connection)
01:08:34  * kevinswiberjoined
01:12:36  * kevinswiberquit (Ping timeout: 240 seconds)
01:13:51  * kazuponjoined
01:18:31  * kazuponquit (Ping timeout: 264 seconds)
01:18:43  * groundwaterjoined
01:20:01  * stagasquit (Read error: Connection reset by peer)
01:20:56  * bnoordhuisquit (Ping timeout: 240 seconds)
01:27:47  * `3rdEdenjoined
01:32:09  * `3rdEdenquit (Ping timeout: 245 seconds)
01:35:09  * karupaneruraquit (Ping timeout: 256 seconds)
01:58:06  * brsonjoined
02:00:56  * timoxleyquit (Quit: Computer has gone to sleep.)
02:05:48  * kevinswiberjoined
02:12:47  * syskkjoined
02:13:20  * timoxleyjoined
02:25:05  * inolenjoined
02:50:49  * timoxleyquit (Quit: Computer has gone to sleep.)
02:53:59  * brsonquit (Ping timeout: 240 seconds)
02:54:23  * timoxleyjoined
02:56:16  * brsonjoined
03:04:43  * brsonquit (Ping timeout: 264 seconds)
03:11:55  * kazuponjoined
03:12:39  * kevinswiberquit (Remote host closed the connection)
03:13:14  * kevinswiberjoined
03:18:04  * kevinswiberquit (Ping timeout: 276 seconds)
03:20:24  * kazuponquit (Remote host closed the connection)
03:35:49  * rjequit (Quit: Leaving...)
04:15:56  * defunctzombie_zzchanged nick to defunctzombie
04:16:44  * brsonjoined
04:20:48  * kazuponjoined
04:22:04  * groundwaterquit (Quit: groundwater)
04:23:49  * timoxleyquit (Quit: Computer has gone to sleep.)
04:25:40  * kazuponquit (Ping timeout: 276 seconds)
04:26:20  * normanmjoined
04:29:28  * `3rdEdenjoined
04:33:49  * `3rdEdenquit (Ping timeout: 245 seconds)
04:35:27  * kazuponjoined
04:40:14  * kazuponquit (Ping timeout: 256 seconds)
05:05:43  * kazuponjoined
05:09:01  * defunctzombiechanged nick to defunctzombie_zz
05:09:41  * kazuponquit (Read error: Connection reset by peer)
05:10:08  * kazuponjoined
05:30:02  * syskkquit (Quit: syskk)
05:33:27  * brsonquit (Quit: leaving)
05:41:37  * groundwaterjoined
05:45:16  * groundwaterquit (Client Quit)
05:49:02  * bajtosjoined
05:51:34  * bajtosquit (Client Quit)
05:55:59  * mikealquit (Quit: Leaving.)
05:58:38  * mikealjoined
06:09:01  * groundwaterjoined
06:17:10  * bajtosjoined
06:20:39  * syskkjoined
06:20:39  * syskkquit (Changing host)
06:20:39  * syskkjoined
06:23:08  * rendarjoined
06:28:11  * AvianFlu_joined
06:29:11  * AvianFluquit (Read error: Connection reset by peer)
06:37:14  * `3rdEdenjoined
06:38:48  * AvianFlu_quit (Remote host closed the connection)
06:49:04  * paddybyersjoined
06:58:01  * groundwaterquit (Quit: groundwater)
07:01:44  * timoxleyjoined
07:37:02  * csaohjoined
07:37:30  * timoxleyquit (Quit: Computer has gone to sleep.)
07:45:15  * rjejoined
07:45:57  * timoxleyjoined
07:52:10  * normanmquit (Quit: ["Textual IRC Client: www.textualapp.com"])
08:09:24  * kazuponquit (Remote host closed the connection)
08:17:50  * stagasjoined
08:23:47  * wolfeidauquit (Remote host closed the connection)
08:26:09  * wolfeidaujoined
08:27:17  * normanmjoined
08:44:56  * kazuponjoined
08:50:46  * kazuponquit (Read error: Connection reset by peer)
08:50:52  * bajtosquit (Quit: bajtos)
08:51:00  * kazuponjoined
08:53:41  * kazuponquit (Remote host closed the connection)
09:12:04  * csaohquit (Quit: csaoh)
09:39:13  * paddybyers_joined
09:40:37  * paddybyersquit (Ping timeout: 246 seconds)
09:40:38  * paddybyers_changed nick to paddybyers
09:44:06  * normanmquit (Quit: Computer has gone to sleep.)
09:45:50  * inolenquit (Quit: Leaving.)
09:50:35  * csaohjoined
09:50:58  * kazuponjoined
10:02:53  * timoxleyquit (Quit: Computer has gone to sleep.)
10:33:11  * csaohquit (Quit: csaoh)
10:36:21  * stagasquit (Read error: Connection reset by peer)
10:36:27  * normanmjoined
10:36:42  * bajtosjoined
10:39:37  * csaohjoined
10:46:51  * bnoordhuisjoined
10:47:15  <indutny>hey people
10:47:33  <indutny>bnoordhuis: have you seen this before Assertion failed: (!uv__io_active(&stream->io_watcher, UV__POLLOUT) || !ngx_queue_empty(&stream->write_completed_queue) || !ngx_queue_empty(&stream->write_queue) || stream->shutdown_req != NULL || stream->connect_req != NULL), function uv_read_stop, file ../deps/uv/src/unix/stream.c, line 1324. ?
10:48:22  <indutny>why do we have such check in uv_read_stop() ?
10:48:48  <indutny>how stream's writable state connected to read stop
10:50:22  <indutny>ok, I see you did it in 41468050
10:50:53  <indutny>so, basically this statement is incorrect
10:51:01  <indutny>well...
10:51:02  <indutny>hm...
10:51:03  <indutny>or not
10:54:45  <bajtos>bnoordhuis: thanks for code review in node-inspector
10:55:53  <indutny>hm...
10:55:59  <bnoordhuis>bajtos: np
10:56:16  <bnoordhuis>indutny: i fixed one bug already that that assert caught
10:56:25  <indutny>that's very interesting
10:56:42  <indutny>I can't figure out why io_watcher has UV__POLLOUT
10:56:48  <indutny>and has no write requests
10:57:34  <bnoordhuis>indutny: where/when do you get that?
10:58:07  <indutny>apply this patch https://github.com/joyent/node/pull/5567
10:58:16  <indutny>and run ./node test/simple/test-tls-hello-parser-failure.js
10:58:21  <indutny>probably a couple of times
10:58:46  <bnoordhuis>indutny: have you upgraded libuv to v0.10 HEAD?
10:59:12  <indutny>nope
10:59:15  <indutny>should I?
10:59:21  <bnoordhuis>yes :)
10:59:27  <indutny>I'm on v0.10
10:59:27  * kazuponquit (Remote host closed the connection)
10:59:35  <indutny>surely HEAD?
10:59:44  <bnoordhuis>but not libuv's v0.10 HEAD
10:59:52  <indutny>ah
10:59:54  <indutny>you mean https://github.com/joyent/libuv/commit/b329d51ef4ce32f34c21a016a7c311ddeb077878
10:59:55  <bnoordhuis>i haven't upgraded it because of policy, don't you know?
11:00:04  <bnoordhuis>yep
11:00:07  <indutny>ok, lets see
11:00:46  <indutny>yup
11:00:46  <indutny>works
11:00:48  <indutny>:)
11:00:54  <indutny>thank you
11:01:38  <bnoordhuis>np, fedor
11:03:06  <indutny>so, basically I have this
11:03:06  <indutny>https://github.com/joyent/node/pull/5567/files
11:03:11  <indutny>but I need to benchmark it
11:03:26  <indutny>seems like it may slowdown tls throughput
11:03:33  <indutny>probably significantly
11:04:25  <bnoordhuis>what's it doing and why?
11:04:59  <bnoordhuis>on a side note, i don't think v8 optimizes away string concatenation when debug() is an empty function
11:05:00  <indutny>ok, so the problem
11:05:06  <indutny>bnoordhuis: meh
11:05:11  <indutny>we do it everywhere
11:05:12  <indutny>also
11:05:20  <indutny>its nothing comparing to nextTick
11:05:23  <indutny>and SSL_write/SSL_read
11:05:24  <bnoordhuis>that's no excuse :)
11:05:30  <indutny>ok
11:05:35  <indutny>good debugability is an excuse
11:05:36  <indutny>:)
11:05:49  <bnoordhuis>i don't disagree
11:06:06  <bnoordhuis>i also don't dislike double negatives
11:06:19  <indutny>I see
11:06:23  <bnoordhuis>tj and i discussed it a while ago
11:06:36  <indutny>so the problem with tls right now
11:06:36  <bnoordhuis>for expensive operations, we should probably do if (debug) debug(whatever)
11:06:43  <indutny>bnoordhuis: macros! :)
11:06:45  <indutny>we need macros
11:06:51  <indutny>and a source processor
11:06:52  <bnoordhuis>but then debug needs to be null or undefined rather than an empty function
11:06:58  <bnoordhuis>once again, i don't disagree :)
11:07:01  <indutny>bnoordhuis: that'll be more expensive
11:07:05  <indutny>checking
11:07:08  <indutny>well
11:07:08  <bnoordhuis>okay, getting back on topic
11:07:09  <indutny>or the same
11:07:11  <indutny>yep
11:07:27  <indutny>so imagine following situation: user writes 2mb of clear data via cleartext.write
11:07:36  <indutny>and then tells it to close as soon as all data written
11:07:38  <indutny>so
11:07:51  <indutny>._write's cb will be executed as soon as BIO_write will return
11:07:58  <indutny>and that'll cause streams2 to emit 'finish'
11:08:03  <indutny>and connection will be destroyed
11:08:07  <indutny>but
11:08:13  <indutny>encrypted.read() will be called only once
11:08:23  <indutny>and will probably read 16kb
11:08:29  <indutny>because of high watermark
11:08:40  <bnoordhuis>ah
11:08:41  <indutny>and the rest of data won't be ever sent
11:08:48  <indutny>because noone waits for it
11:09:03  <bnoordhuis>is that a streams2 bug or a tls bug?
11:10:03  <indutny>tls bug
11:10:15  <indutny>that's why I'm fixing lib/tls.js ;)
11:10:40  <bnoordhuis>because it sounds like streams2 is destroying the connection too early
11:11:18  <indutny>no
11:11:22  <indutny>its doing its job wise
11:11:29  <indutny>its just me :)
11:11:35  <bnoordhuis>okay
11:11:36  <indutny>so, benchmarks seems to look mostly good for it
11:11:40  <indutny>throughput has increased on big writes
11:11:45  <indutny>and decreased on 2 byte writes
11:12:07  <indutny>but its 47% increase on big writes :)
11:12:19  <bnoordhuis>i would expect it to go down across the line
11:12:20  <indutny>though 50% decrease on small ones
11:12:33  <bnoordhuis>seeing that you're always calling process.nextTick() now
11:13:35  <bnoordhuis>well, um, i guess i don't know
11:13:56  <bnoordhuis>the PR itself seems reasonable to me
11:14:12  <indutny>hm… this nextTick thing
11:14:15  <indutny>let me think about it...
11:14:30  <indutny>I wonder if I can avoid it
11:15:08  <indutny>ok, setImmediate works here too
11:15:13  <indutny>not surprisingly
11:16:34  <indutny>oh, throughput is even worse now...
11:16:35  <indutny>wtf
11:17:11  <indutny>aah
11:17:12  <indutny>its uv_check
11:17:13  <indutny>ok
11:21:17  * piscisaureus_joined
11:21:30  <indutny>hm...
11:21:44  <indutny>it seems that reason for slowdown is not process.nextTick
11:21:52  <indutny>ok, I know what to do
11:23:12  <bnoordhuis>call in the professionals?
11:25:41  <indutny>bnoordhuis: you meant yourself, right?
11:26:24  <indutny>ok, all hail me
11:26:26  <indutny>I made it faster
11:27:36  <indutny>bnoordhuis: look how clever I am https://github.com/joyent/node/pull/5567/files
11:27:50  * indutnyis runnings tests
11:30:09  <bnoordhuis>indutny: nice :)
11:31:18  <indutny>oh, btw
11:31:18  <indutny>Assertion failed: (stream->write_queue_size == 0), function uv__write, file ../deps/uv/src/unix/stream.c, line 726.
11:31:26  <indutny>Command: out/Release/node /Users/indutny/Code/indutny/node/test/simple/test-stdout-close-catch.js
11:31:40  <indutny>all other tests are passing
11:31:48  <bnoordhuis>is that with libuv v0.10 HEAD?
11:32:56  <bnoordhuis>i'm guessing 'no'
11:38:40  <indutny>well
11:38:43  <indutny>I just pulled one patch
11:50:57  <bnoordhuis>indutny: that test fails for me with the bundled libuv, works with libuv v0.10 HEAD
11:51:05  <indutny>good
12:02:12  <indutny>bnoordhuis: yikes https://github.com/joyent/node/pull/5567#issuecomment-18495203
12:02:19  <indutny>benchmark results are unbelievable good
12:02:26  <indutny>s/vable/vably/
12:04:16  <bnoordhuis>wow
12:04:42  <indutny>hm...
12:04:54  <bnoordhuis>now test it with a real operating system :)
12:04:56  <indutny>I wonder if v0.10.6-pre was too old to compare it
12:05:00  <indutny>bnoordhuis: do it for me, please
12:05:16  <bnoordhuis>i'm kind of busy
12:05:24  <indutny>you're kind of gaga
12:05:36  <indutny>no offense
12:05:40  <indutny>ok
12:05:43  <indutny>I'll do it for you
12:05:57  <bnoordhuis>gaga? you mean i'm a popular performer?
12:06:15  <bnoordhuis>it's true that i'm quite the dancer
12:06:57  <indutny>yeah, I believe you
12:10:59  <indutny>ok, started benchmark on ubuntu
12:33:02  * bajtosquit (Quit: bajtos)
12:42:49  * bajtosjoined
12:47:50  <indutny>bnoordhuis: hm… results are much worse on ubuntu
12:47:58  <indutny>probably because I used latest v0.10 to compare with
12:53:43  <indutny>so, mostly the same
12:54:07  <indutny>but with slight degradation
12:56:25  <bnoordhuis>hm, okay
12:57:47  * AvianFlujoined
12:59:44  * kazuponjoined
13:04:31  * kazuponquit (Ping timeout: 252 seconds)
13:08:45  * `3rdEdenchanged nick to `3E|BRB
13:17:53  <indutny>bnoordhuis: I think I can handle it
13:18:00  <indutny>it just needs to be a bit more hacky
13:27:30  * kazuponjoined
13:34:22  * hzjoined
13:38:41  * hzquit (Ping timeout: 248 seconds)
13:49:53  * `3E|BRBchanged nick to `3E
13:53:49  * csaohquit (Remote host closed the connection)
13:58:08  * csaohjoined
13:59:55  * timoxleyjoined
14:00:25  * AvianFluquit (Remote host closed the connection)
14:03:47  * kevinswiberjoined
14:08:33  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:15:03  * piscisaureus_joined
14:18:07  * timoxleyquit (Quit: Computer has gone to sleep.)
14:18:48  * kuebkjoined
14:19:48  * timoxleyjoined
14:21:34  * hzjoined
14:21:34  * hzquit (Changing host)
14:21:34  * hzjoined
14:24:01  * kevinswiberquit (Remote host closed the connection)
14:24:33  * kevinswiberjoined
14:26:58  * kevinswi_joined
14:27:01  * hz_joined
14:27:01  * hz_quit (Changing host)
14:27:01  * hz_joined
14:27:01  * hzquit (Disconnected by services)
14:27:06  * hz_changed nick to hz
14:27:39  * kevinswiberquit (Read error: Connection reset by peer)
14:28:40  * bnoordhuisquit (Ping timeout: 240 seconds)
14:30:32  * hz_joined
14:30:32  * hz_quit (Changing host)
14:30:32  * hz_joined
14:30:32  * hzquit (Disconnected by services)
14:30:37  * hz_changed nick to hz
14:32:47  * kevinswi_quit (Remote host closed the connection)
14:33:18  * kevinswiberjoined
14:37:20  * kevinswiberquit (Ping timeout: 240 seconds)
14:39:31  * paddybyersquit (Ping timeout: 264 seconds)
14:59:19  * hzquit (Ping timeout: 264 seconds)
15:00:19  * hzjoined
15:00:20  * hzquit (Changing host)
15:00:20  * hzjoined
15:02:56  * bajtosquit (Quit: bajtos)
15:05:47  * Correnjoined
15:09:55  * kuebkpart
15:13:52  * bnoordhuisjoined
15:15:01  * saghulquit (Ping timeout: 276 seconds)
15:16:42  * saghuljoined
15:28:21  * hzquit (Ping timeout: 240 seconds)
15:31:40  * Correnquit (Quit: Computer has gone to sleep.)
15:32:18  * hzjoined
15:32:18  * hzquit (Changing host)
15:32:18  * hzjoined
15:38:50  * Correnjoined
15:45:12  * bajtosjoined
15:49:32  * Correnquit (Quit: Computer has gone to sleep.)
15:54:39  * piscisaureus_quit (Ping timeout: 245 seconds)
15:56:39  * benoitcquit (Excess Flood)
15:59:17  * `3Equit (Remote host closed the connection)
15:59:17  * benoitcjoined
16:04:15  * timoxleyquit (Quit: Computer has gone to sleep.)
16:10:14  <tjfontaine>bnoordhuis: fwiw isaacs did land the debug() fixes
16:26:01  * inolenjoined
16:27:49  * Correnjoined
16:34:46  * qardjoined
16:39:38  * Correnquit (Quit: Computer has gone to sleep.)
16:45:12  * TooTallNatejoined
17:07:06  * csaohquit (Quit: csaoh)
17:12:27  * groundwaterjoined
17:13:55  * amartensjoined
17:14:22  * TooTallNatequit (Quit: Computer has gone to sleep.)
17:16:49  * mikealquit (Quit: Leaving.)
17:23:28  * mikealjoined
17:26:16  * AvianFlujoined
17:37:57  * paddybyersjoined
17:41:49  * kazuponquit (Remote host closed the connection)
17:48:36  * TooTallNatejoined
18:00:44  * `3rdEdenjoined
18:10:34  * stagasjoined
18:19:42  * AvianFluquit (Remote host closed the connection)
18:23:39  * bajtosquit (Quit: bajtos)
18:24:19  * normanmquit (Quit: Computer has gone to sleep.)
18:36:03  * Correnjoined
18:53:15  * piscisaureus_joined
19:05:54  * bnoordhuisquit (Ping timeout: 245 seconds)
19:08:56  * bnoordhuisjoined
19:10:11  * st_lukejoined
19:11:08  * paddybyersquit (Ping timeout: 240 seconds)
19:12:00  * kazuponjoined
19:18:31  * groundwaterquit (Quit: groundwater)
19:20:19  * kazuponquit (Ping timeout: 264 seconds)
19:22:53  * paddybyersjoined
19:27:56  * Correnquit (Quit: Textual IRC Client: http://www.textualapp.com/)
19:29:28  * Correnjoined
19:30:42  * Correnquit (Client Quit)
19:31:26  * kenperkins_joined
19:43:35  * dominictarrjoined
19:46:43  * kazuponjoined
19:51:19  * kazuponquit (Ping timeout: 245 seconds)
19:58:01  * kenperkins_changed nick to kenperkins
20:00:47  * groundwaterjoined
20:12:25  * bnoordhuisquit (Ping timeout: 252 seconds)
20:14:23  * loladirojoined
20:15:32  * groundwaterquit (Quit: groundwater)
20:22:44  * st_lukequit (Remote host closed the connection)
20:28:26  * jeremyc_joined
20:40:16  <jeremyc_>Greetings, everyone! I'm looking for some help with removing a FD from a Node.JS io_poll, and then re-adding it later on, without triggering an assertion failure when the re-add sees the same FD number (though this time representing a different connection altogether).
20:43:56  * `3rdEdenquit (Quit: Zzzzzzz)
20:44:05  * kevinswiberjoined
20:47:30  * kazuponjoined
20:50:40  * kevinswiberquit (Remote host closed the connection)
20:51:14  * kevinswiberjoined
20:52:07  * kazuponquit (Ping timeout: 264 seconds)
20:55:29  * kevinswiberquit (Ping timeout: 245 seconds)
21:08:37  * Linus_quit (Ping timeout: 250 seconds)
21:15:10  * jeremyc_quit (Quit: jeremyc_)
21:16:25  * piscisaureus_quit (Ping timeout: 276 seconds)
21:19:39  * stagasquit (Quit: ChatZilla 0.9.90-rdmsoft [XULRunner 1.9.0.17/2009122204])
21:22:39  * jeremyc_joined
21:31:18  * rendarquit
21:34:58  * dominictarrquit (Quit: dominictarr)
21:41:06  * groundwaterjoined
21:47:50  * jeremyc_quit (Quit: jeremyc_)
21:48:05  * kazuponjoined
21:51:31  * paddybyersquit (Ping timeout: 264 seconds)
21:52:37  * kazuponquit (Ping timeout: 248 seconds)
22:02:03  * piscisaureus_joined
22:03:02  * loladiroquit (Quit: loladiro)
22:12:30  * timoxleyjoined
22:15:11  * paddybyersjoined
22:30:07  * hzquit
22:48:52  * kazuponjoined
22:53:55  * kazuponquit (Ping timeout: 276 seconds)
23:14:47  * kevinswiberjoined
23:15:35  * kazuponjoined
23:16:11  * AvianFlujoined
23:24:58  * kevinswiberquit (Remote host closed the connection)
23:25:32  * kevinswiberjoined
23:29:09  * paddybyersquit (Ping timeout: 248 seconds)
23:30:17  * kevinswi_joined
23:30:19  * kevinswiberquit (Ping timeout: 276 seconds)
23:32:47  * kevinswi_quit (Remote host closed the connection)
23:33:19  * kevinswiberjoined
23:37:43  * kevinswiberquit (Ping timeout: 264 seconds)
23:54:31  * piscisaureus_quit (Ping timeout: 264 seconds)
23:57:17  * amartensquit (Quit: Leaving.)
23:57:23  * piscisaureus_joined