00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:11  * ircretaryjoined
00:06:50  <jgi>trevnorris: changes updated
00:06:54  <jgi>trevnorris: thanks :)
00:08:40  <tjfontaine>this child_process ipc code is pretty nasty
00:09:11  <tjfontaine>cjihrig: up next for you is a rewrite of that :)
00:10:10  <tjfontaine>trevnorris: this test is very pathological, every 100ms you're trying to send 10000 handles to the child, you know that that communciation channel is "synchronous" right?
00:11:17  <tjfontaine>a_le: ideally you would not, but generally init doesn't necessarily modify loop state
00:17:03  <a_le>tjfontaine: i am not sure i understand
00:17:14  * jgiquit (Quit: jgi)
00:19:55  * seishunquit (Ping timeout: 255 seconds)
00:19:56  * jgijoined
00:22:14  <a_le>tjfontaine: is there a better/safer way i can do the same?
00:23:48  <MI6>joyent/node: Sam Roberts v0.10 * 8032a21 : test: test all spawn parameter positions (+4 more commits) - http://git.io/MWUJZQ
00:25:30  * thlorenzquit (Remote host closed the connection)
00:26:34  * Fishrock123joined
00:32:08  * chris_99quit (Quit: Ex-Chat)
00:32:57  <trevnorris>tjfontaine: yeah. I did time it to make sure all the handles could make it through (at least on my box) :P
00:33:17  <trevnorris>tjfontaine: but yeah, the cp ipc code was ridiculous to trace through.
00:36:58  <tjfontaine>trevnorris: ok so, there are some problems here
00:37:17  <tjfontaine>1) the code is designed to be able to communicate backpressure -- it doesn't
00:37:39  <tjfontaine>2) communicating back pressure here is kinda weird but ok
00:37:48  <trevnorris>jgi: i'm going to split the commit so there's one just containing the v8 changes. just in case it needs to be floated later.
00:38:27  <tjfontaine>https://github.com/joyent/node/blob/v0.12/lib/child_process.js#L492 is like, ooh look at me, I should be *telling* people when I'm filling up my queue
00:38:36  <tjfontaine>https://github.com/joyent/node/blob/v0.12/lib/child_process.js#L415
00:38:41  <tjfontaine>but we don't actually communicate that message out
00:38:54  <tjfontaine>then of course ...
00:39:08  <tjfontaine>https://github.com/joyent/node/blob/v0.12/lib/child_process.js#L473 and https://github.com/joyent/node/blob/v0.12/lib/child_process.js#L451
00:39:17  <tjfontaine>*also* don't communicate the back pressure
00:39:27  <tjfontaine>so no one can do anything useful here
00:40:07  <tjfontaine>as far as the memory is concerned around this, it looks like just a generic problem of 1) creating a lot of garbage objects, 2) storing them in huge arrays
00:40:21  <tjfontaine>the gc seems quite capable of keeping up
00:40:36  <tjfontaine>and if you do watch for packpressure everything stays around 35mb
00:41:04  <tjfontaine>I changed those code paths to return _handleQueue.length
00:41:15  <tjfontaine>and did:
00:41:16  <tjfontaine> while(i < ITER) {
00:41:16  <tjfontaine> ret = child.send('server', server);
00:41:16  <tjfontaine> if (ret > 2)
00:41:16  <tjfontaine> break;
00:41:30  <tjfontaine>which is what essentially the guidance is for backpressure in the comment
00:45:18  <trevnorris>yeah. I was never able to actually crash a node process.
00:45:21  <trevnorris>thanks for looking into that.
00:45:30  <tjfontaine>there's a legitimate bug there though
00:45:42  <tjfontaine>ipc.send *must* communicate back pressure
00:47:30  <MI6>joyent/node: Trevor Norris v0.10 * a1b2875 : lint: fix lint issues (+2 more commits) - http://git.io/aus3pQ
00:47:39  <tjfontaine>and then cluster should learn what that means
00:47:45  <tjfontaine>and libuv should not immediately accept connections
00:48:15  <trevnorris>heh, quite the chain there.
00:48:22  <trevnorris>jgi: merged. thanks.
00:48:50  <tjfontaine>trevnorris: it's a bit odd that the author of the v8 change is now you
00:51:35  * thlorenzjoined
00:57:58  * kriskowalquit (Quit: kriskowal)
01:01:23  * kriskowaljoined
01:02:25  <tjfontaine>ok filed those issues
01:05:49  * kriskowalquit (Ping timeout: 255 seconds)
01:06:35  * kazuponjoined
01:09:18  * thlorenzquit (Remote host closed the connection)
01:15:40  * a_lequit (Remote host closed the connection)
01:16:43  * abraxas_joined
01:17:31  * octetcloudquit (Ping timeout: 255 seconds)
01:21:20  * abraxas_quit (Ping timeout: 250 seconds)
01:22:33  * hayesquit (Ping timeout: 255 seconds)
01:36:05  * a_lejoined
01:36:42  * abraxas_joined
01:40:11  * jgiquit (Quit: jgi)
01:40:45  * jgijoined
01:45:43  * brsonquit (Quit: leaving)
01:48:17  * dap_quit (Quit: Leaving.)
02:01:14  * thlorenzjoined
02:01:59  * thlorenzquit (Read error: Connection reset by peer)
02:02:17  * thlorenzjoined
02:03:34  * jgiquit (Quit: jgi)
02:06:57  * thlorenzquit (Ping timeout: 245 seconds)
02:09:38  * avalanche123quit (Remote host closed the connection)
02:11:10  * avalanche123joined
02:11:14  * avalanche123quit (Remote host closed the connection)
02:24:07  * Ralithquit (Ping timeout: 255 seconds)
02:51:16  * Fishrock123quit (Quit: Leaving...)
03:12:05  * a_lequit (Read error: Connection reset by peer)
03:19:22  * importantshockquit (Remote host closed the connection)
03:23:11  * Ralithjoined
03:24:30  * AlexisMochaquit (Ping timeout: 255 seconds)
03:24:32  * janjongboomjoined
03:26:27  * kazuponquit (Remote host closed the connection)
03:27:04  * a_lejoined
03:37:33  * janjongboomquit (Read error: Connection reset by peer)
03:37:38  * janjongb_joined
03:44:13  * janjongboomjoined
03:44:32  * janjongb_quit (Read error: Connection reset by peer)
03:49:47  * thlorenzjoined
03:50:48  * thlorenz_joined
03:50:48  * thlorenzquit (Read error: Connection reset by peer)
03:51:37  * janjongb_joined
03:51:40  * janjongboomquit (Read error: Connection reset by peer)
03:52:37  <MI6>joyent/node: Sam Roberts v0.10 * 3a08b7c : doc: cover stdio option in child_process - http://git.io/rOc7Hw
03:57:37  * iarnajoined
04:09:35  * Left_Turnquit (Remote host closed the connection)
04:09:40  * kazuponjoined
04:20:10  * bradleymeckjoined
04:22:53  * AvianFluquit (Ping timeout: 240 seconds)
04:25:17  * bradleymeckquit (Quit: bradleymeck)
04:29:08  * iarna_joined
04:31:06  * iarnaquit (Ping timeout: 255 seconds)
04:31:21  <cjihrig>tjfontaine: sorry, what am i supposed to be rewriting (fyi, will be mostly unavailable on IRC the rest of the week but feel free to email)
04:34:24  * thlorenz_quit (Remote host closed the connection)
04:38:43  <trevnorris>tjfontaine: ah, wait. crap. I forgot to set the commit author when I split it.
04:42:06  * AlexisMochajoined
05:04:24  * inolenjoined
05:04:30  * inolenquit (Client Quit)
05:12:16  * avalanche123joined
05:16:45  * avalanche123quit (Ping timeout: 265 seconds)
05:17:12  * iarnajoined
05:17:29  * iarna_quit (Read error: Connection reset by peer)
05:36:24  * kazuponquit (Remote host closed the connection)
05:36:53  * kazuponjoined
05:46:02  * iarna_joined
05:46:32  * iarnaquit (Ping timeout: 250 seconds)
06:06:21  * thlorenzjoined
06:07:26  * iarnajoined
06:09:17  * iarna_quit (Read error: Connection reset by peer)
06:10:52  * yournamejoined
06:21:33  * yournamequit (Quit: leaving)
06:21:51  * qard_joined
06:22:01  * qard_quit (Client Quit)
06:23:58  * qard_joined
06:27:00  * janjongb_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:30:57  * janjongboomjoined
06:31:01  * rmgquit (Remote host closed the connection)
06:32:12  * qard_quit (Quit: leaving)
06:32:29  * qard_joined
06:33:05  * qard_quit (Client Quit)
06:34:44  * qard_joined
06:34:48  * qard_quit (Client Quit)
06:35:07  * qard_joined
06:35:17  * janjongboomquit (Ping timeout: 240 seconds)
06:35:44  * qard_quit (Client Quit)
06:36:24  * qard_joined
06:36:35  * ijrothjoined
06:36:57  * qard_quit (Client Quit)
06:37:16  * qard_joined
06:37:36  * qard_quit (Client Quit)
06:39:57  * janjongboomjoined
06:40:02  * qard_joined
06:41:03  * qard_quit (Client Quit)
06:41:38  * qard_joined
06:43:09  * janjongboomquit (Read error: Connection reset by peer)
06:43:30  * janjongboomjoined
06:45:25  * iarnaquit (Remote host closed the connection)
06:45:40  * iarnajoined
06:47:33  * ijrothquit (Quit: Leaving.)
06:51:16  * qard_quit (Quit: leaving)
06:52:39  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:54:51  * benglquit (Ping timeout: 244 seconds)
06:56:23  * thlorenzquit (Remote host closed the connection)
06:56:59  * thlorenzjoined
07:01:13  * ijrothjoined
07:01:41  * thlorenzquit (Ping timeout: 264 seconds)
07:07:16  * bengljoined
07:23:39  * iarna_joined
07:24:30  * a_lequit (Remote host closed the connection)
07:24:45  * iarnaquit (Read error: Connection reset by peer)
07:25:09  * a_lejoined
07:30:49  * kazuponquit (Remote host closed the connection)
07:31:32  * rmgjoined
07:33:32  * kazuponjoined
07:36:36  * rmgquit (Ping timeout: 250 seconds)
07:38:51  * iarna_quit (Read error: Connection reset by peer)
07:39:02  * iarnajoined
07:43:33  * janjongboomjoined
07:47:26  * bajtosjoined
07:57:52  * rendarjoined
08:04:24  * kazuponquit (Remote host closed the connection)
08:06:21  * stagasjoined
08:09:54  * kazuponjoined
08:17:32  * roxlujoined
08:21:01  * iarna_joined
08:21:35  * iarnaquit (Read error: Connection reset by peer)
08:22:48  * iarna_quit (Read error: Connection reset by peer)
08:23:17  * iarnajoined
08:30:02  * SergeiRNDjoined
08:31:29  * bajtosquit (Quit: bajtos)
08:33:27  * bajtosjoined
08:55:05  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:58:57  * iarnaquit (Read error: Connection reset by peer)
08:59:31  * iarnajoined
09:04:48  * abraxas_quit (Remote host closed the connection)
09:05:32  * seldojoined
09:05:58  * iarna_joined
09:06:41  * iarnaquit (Read error: Connection reset by peer)
09:08:29  * abraxas__joined
09:15:39  * brockfredinquit
09:21:35  * iarna_quit (Read error: Connection reset by peer)
09:22:06  * iarnajoined
09:27:37  * seldoquit
09:31:51  * iarnaquit (Read error: Connection reset by peer)
09:32:14  * iarnajoined
09:36:01  * janjongboomjoined
09:41:26  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:46:12  * AlexisMochaquit (Ping timeout: 258 seconds)
09:54:04  * chris_99joined
09:56:53  * xer0xquit (Ping timeout: 264 seconds)
09:59:48  * xer0xjoined
10:05:31  * iarna_joined
10:05:57  * iarnaquit (Read error: Connection reset by peer)
10:09:48  * Left_Turnjoined
10:11:48  * ijrothquit (Quit: Leaving.)
10:14:54  * bajtosquit (Quit: bajtos)
10:28:02  * Dijoined
10:29:56  * Diquit (Client Quit)
10:37:53  * iarnajoined
10:37:56  * iarna_quit (Read error: Connection reset by peer)
10:40:08  * wolfeidauquit (Read error: Permission denied)
10:40:40  * wolfeidaujoined
10:50:12  * Left_Turnquit (Ping timeout: 256 seconds)
10:51:39  * bajtosjoined
10:53:52  * kazuponquit (Remote host closed the connection)
11:00:13  * abraxas__quit (Remote host closed the connection)
11:00:49  * abraxas__joined
11:05:18  * abraxas__quit (Ping timeout: 255 seconds)
11:08:49  * seishunjoined
11:19:53  * SergeiRNDquit (Quit: Leaving.)
11:27:32  * Left_Turnjoined
11:31:49  * bajtosquit (Quit: bajtos)
11:52:36  * a_lequit (Ping timeout: 265 seconds)
11:59:02  * SergeiRNDjoined
12:14:07  * Dijoined
12:14:36  * iarna_joined
12:14:38  * iarnaquit (Read error: Connection reset by peer)
12:25:01  * a_lejoined
12:25:59  * AvianFlujoined
12:38:42  * bajtosjoined
12:42:45  * pbunnyjoined
12:42:47  <pbunny>hi
12:42:53  <pbunny>i'm getting segfault on uv_run after uv_write
12:43:07  <pbunny>int err = uv_write(&req, (uv_stream_t *) mHandle, uvbuf, 1, NULL);
12:43:16  <pbunny>bytes are actually written on tcp (i can see response)
12:43:25  <pbunny>but then uv_run(mEventLoop,UV_RUN_NOWAIT); happens
12:43:29  <pbunny>and i get segmentation fault
12:44:04  <indutny>hi
12:44:24  <indutny>uv_write() without cb is pretty bad idae
12:44:31  <indutny>it doesn't support sync mode
12:44:37  <pbunny>https://dpaste.de/m38M/raw
12:44:48  <pbunny>how would cb help?
12:44:59  <pbunny>i even tried to keep buffer undeleted
12:45:03  <pbunny>didn't help
12:45:30  <pbunny>also moved uv_write and uv_run to same thread
12:45:46  <indutny>oooh
12:45:47  <indutny>well
12:45:48  <indutny>the uv_loop_t is not thread-safe
12:45:55  <pbunny>well its in same thread
12:46:00  <indutny>you should not use it from different threads
12:46:05  <pbunny>yes, i moved to same thread
12:46:18  <indutny>is req still in scope?
12:46:22  <indutny>when uv_run() is called?
12:46:30  <pbunny>uv_run is called in main loop
12:46:31  <indutny>it seems that you are using on-stack variable for it
12:46:33  <pbunny>every 100ms or so
12:46:49  <pbunny>before that it processes write queue and does uv_write for every item
12:46:52  <indutny>and on-stack variables are gone once they are leaving the scope where they are declared
12:47:02  <pbunny>oh
12:47:28  <pbunny>https://dpaste.de/Ti5A/raw
12:47:30  <indutny>and req structure should be alive until the uv_write()'s cb will be called
12:47:37  <pbunny>got it
12:48:01  * iarna_quit (Read error: Connection reset by peer)
12:48:09  * iarnajoined
12:49:26  * abraxas__joined
12:49:59  <pbunny>indutny: how would uv_write callback declaration look like?
12:50:04  <pbunny>return type / args ?
12:50:16  <indutny>I don't remember exactly, I'd suggest taking a look at uv.h file
12:50:21  <indutny>this is what I always do
12:50:24  <pbunny>ok thx
12:52:36  <indutny>np
12:54:07  * abraxas__quit (Ping timeout: 255 seconds)
13:17:18  * SergeiRNDquit (Quit: Leaving.)
13:18:11  * iarnaquit (Read error: Connection reset by peer)
13:18:13  * iarna_joined
13:20:24  <txdv>master saghul, you check pull request this weekend?
13:20:36  * SergeiRNDjoined
13:41:00  * iarna_quit (Read error: Connection reset by peer)
13:41:08  * iarnajoined
13:46:09  * AlexisMochajoined
13:46:14  * dainisquit (Read error: Connection reset by peer)
13:49:07  * zhpengjoined
13:55:29  * dainisjoined
13:59:42  * iarna_joined
13:59:59  * iarnaquit (Read error: Connection reset by peer)
14:03:23  * lanceballchanged nick to lance|afk
14:10:14  * Fishrock123joined
14:17:00  * iarnajoined
14:17:32  * iarna_quit (Read error: Connection reset by peer)
14:21:00  * bradleymeckjoined
14:27:04  * lance|afkchanged nick to lanceball
14:33:50  * iarna_joined
14:34:39  * iarnaquit (Read error: Connection reset by peer)
14:37:44  * janjongboomjoined
14:38:12  * abraxas__joined
14:43:41  * abraxas__quit (Ping timeout: 264 seconds)
14:45:32  * bajtosquit (Quit: bajtos)
15:13:20  * stagasquit (Ping timeout: 250 seconds)
15:13:29  * stagasjoined
15:14:15  * SergeiRNDquit (Quit: Leaving.)
15:15:11  * Diquit (Quit: Leaving.)
15:25:14  * iarnajoined
15:25:57  * iarna_quit (Read error: Connection reset by peer)
15:26:46  * iarnaquit (Remote host closed the connection)
15:32:55  * iarnajoined
15:33:30  * bradleymeckquit (Quit: bradleymeck)
15:41:40  * bajtosjoined
15:41:56  * importantshockjoined
15:45:07  * zhpengquit (Quit: 离开)
15:47:40  * rmgjoined
15:50:15  * bradleymeckjoined
15:50:53  * stagasquit (Ping timeout: 265 seconds)
15:52:17  * a_lequit (Ping timeout: 258 seconds)
15:52:23  * rmgquit (Ping timeout: 240 seconds)
15:54:56  * iarna_joined
15:55:03  * iarnaquit (Read error: Connection reset by peer)
15:56:35  * chris_99quit (Quit: Ex-Chat)
15:59:46  * a_lejoined
16:07:42  * iarna_quit (Remote host closed the connection)
16:09:39  * iarnajoined
16:10:14  * a_lequit (Read error: Connection reset by peer)
16:10:45  * a_lejoined
16:13:34  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:14:35  * bajtosquit (Quit: bajtos)
16:27:07  * abraxas__joined
16:32:33  * abraxas__quit (Ping timeout: 272 seconds)
16:34:09  * cjbquit (Remote host closed the connection)
16:34:20  * piscisaureusjoined
16:35:05  * chris_99joined
16:37:06  * iarna_joined
16:37:25  * iarnaquit (Read error: Connection reset by peer)
16:41:24  * creationixpart
16:44:09  * roxluquit (Quit: roxlu)
16:53:05  * wolfeidau_joined
16:56:02  * wolfeidauquit (Ping timeout: 250 seconds)
16:56:59  * octetcloudjoined
16:58:22  * rmgjoined
17:00:43  * roxlujoined
17:11:05  * jgijoined
17:14:25  * kazuponjoined
17:18:10  * avalanche123joined
17:21:20  * bajtosjoined
17:23:11  * iarnajoined
17:23:22  * iarna_quit (Read error: Connection reset by peer)
17:29:08  * Ralithquit (Ping timeout: 256 seconds)
17:30:05  * dap_joined
17:35:24  * wolfeidau_quit (Ping timeout: 258 seconds)
17:36:31  * wolfeidaujoined
17:37:23  * a_lequit (Read error: Connection reset by peer)
17:41:06  * brad_joined
17:41:07  * seishunquit (Read error: Connection reset by peer)
17:41:12  * wolfeidau_joined
17:41:17  * brad_quit (Client Quit)
17:43:37  * wolfeidauquit (Ping timeout: 240 seconds)
17:46:15  * seishunjoined
17:47:54  * sblomquit (Read error: Connection reset by peer)
17:49:01  * thlorenzjoined
17:54:38  * thlorenzquit (Ping timeout: 256 seconds)
17:54:57  * Ralithjoined
17:56:05  * kriskowaljoined
17:57:54  * sblomjoined
17:59:04  * a_lejoined
18:01:09  * rmgquit
18:03:48  * creationixjoined
18:03:54  * rmgjoined
18:05:15  * brsonjoined
18:06:19  * Fishrock123quit (Remote host closed the connection)
18:12:04  * avalanche123quit (Remote host closed the connection)
18:12:47  * bradleymeckquit (Quit: bradleymeck)
18:14:54  * inolenjoined
18:16:17  * abraxas__joined
18:17:12  * iarnaquit (Remote host closed the connection)
18:20:31  * avalanche123joined
18:20:41  * abraxas__quit (Ping timeout: 244 seconds)
18:22:14  * piscisaureusquit (Ping timeout: 244 seconds)
18:31:57  * thlorenzjoined
18:36:06  * avalanche123quit (Remote host closed the connection)
18:40:06  * stagasjoined
18:48:36  * creationixpart
18:49:43  * creationixjoined
18:50:53  * stagasquit (Ping timeout: 240 seconds)
18:59:51  * bradleymeckjoined
19:00:17  * kazuponquit (Remote host closed the connection)
19:01:00  * iarnajoined
19:07:15  * kazuponjoined
19:10:20  * brsonquit (Quit: leaving)
19:12:51  * kazuponquit (Remote host closed the connection)
19:15:23  * Dijoined
19:17:49  * Diquit (Client Quit)
19:22:33  * brsonjoined
19:33:33  * ijrothjoined
19:35:35  * chris_99quit (Ping timeout: 272 seconds)
19:37:19  * bajtosquit (Quit: bajtos)
19:41:15  * bajtosjoined
19:43:15  * bajtosquit (Client Quit)
19:44:42  * brsonquit (Quit: leaving)
19:47:14  * iarna_joined
19:47:57  * iarnaquit (Read error: Connection reset by peer)
19:48:07  * avalanche123joined
19:48:40  * ijrothquit (Quit: Leaving.)
19:48:58  * dshaw_joined
19:58:08  * chris_99joined
19:59:03  * Fishrock123joined
20:00:55  * rendarquit (Ping timeout: 244 seconds)
20:03:24  <trevnorris>jgi: sorry about accidentally making myself the author of your V8 change. completely forgot about that when I did the commit split.
20:04:20  * piscisaureusjoined
20:05:07  * abraxas__joined
20:06:03  <jgi>trevnorris: no worries at all, I think tjfontaine’s concern was more about allowing people to find the person who wrote the code to be able to ask questions about it in the future.
20:06:55  * rendarjoined
20:08:26  * Dirksonjoined
20:09:44  * abraxas__quit (Ping timeout: 250 seconds)
20:10:24  <Dirkson>Hey all. I'm using uv_rwlock. Can I call a read lock recursively, so long as I also call the unlock the appropriate number of times? Can I call a read lock from a thread that currently has a write lock on the same mutex?
20:10:42  * jcrugzz_quit (Ping timeout: 245 seconds)
20:12:25  * jcrugzz_joined
20:13:58  * bradleymeckquit (Quit: bradleymeck)
20:16:27  * avalanche123quit (Remote host closed the connection)
20:16:53  * kriskowalquit (Quit: kriskowal)
20:19:35  * bradleymeckjoined
20:19:49  * bradleymeckquit (Read error: Connection reset by peer)
20:21:00  * bradleymeckjoined
20:24:30  * avalanche123joined
20:35:58  * bradleymeckquit (Read error: Connection reset by peer)
20:36:21  * avalanche123quit (Remote host closed the connection)
20:36:27  * brsonjoined
20:38:02  * bradleymeckjoined
20:40:58  * avalanche123joined
20:43:51  * avalanche123quit (Remote host closed the connection)
20:47:09  * janjongboomjoined
20:47:18  * iarna_changed nick to iarna
20:50:49  <bradleymeck>tjfontaine: poll stats https://docs.google.com/forms/d/1Z0vrRVSbJAT9LaSJYDypj--5VEiRN5aajh1JHHDN7Bg/viewanalytics , either way I think that change needs to be backed out before 0.12 lands
20:52:10  <tjfontaine>I've started looking at other daemons, and speaking wiht people outside of Node.js -- there are a lot of software that uses this pattern :/
20:52:47  <tjfontaine>bradleymeck: what's the braek down of who wants it changed, vs not in the worker category
20:52:51  <creationix>is there a way to ping from libuv?
20:52:54  <creationix>no raw sockets
20:53:02  <tjfontaine>there's no raw sockets
20:54:05  <tjfontaine>jgi: what's the pr for the timers change again?
20:54:10  <bradleymeck>only one with no reply to what kind of worker, one claimed they were everything, mostly devs : https://docs.google.com/spreadsheets/d/1pGGzyxXCMgsHHwiogf3_o0d2rhWJPQuHsm2i5CA-5F4/edit#gid=193880751
20:54:29  <bradleymeck>tjfontaine: use which pattern?
20:55:09  <jgi>tjfontaine: https://github.com/joyent/node/pull/8225, it was closed because at that time we thought we would use the heap implementation instead
20:55:12  <tjfontaine>bradleymeck: bumping rlimit to the hard
20:55:12  <bradleymeck>ive found many that can be configured to up the limit, very few that do it automatically outside of GUI apps
20:55:29  <tjfontaine>I personally would have opted for an interface for it
20:56:11  <tjfontaine>jgi: thanks
20:58:19  <tjfontaine>jgi, chrisdickinson, trevnorris, indutny, cjihrig -- https://github.com/joyent/node/pull/8225 I propose this for v0.10.34 inclusion, the heap seems like a large change for a stable and removal is mostly a concern when things are going haywire already, the problem such as it is is making adds/updates be faster on otherwise well behaved systems -- thoughts?
20:59:19  <jgi>tjfontaine: I think because the PR is closed, the changes in the “Files changed” tab are not the most up to date changes
20:59:31  <tjfontaine>is the branch still there?
20:59:39  <tjfontaine>lemme reopen including the same comment
20:59:40  <jgi>tjfontaine: yes
20:59:56  <jgi>tjfontaine: and for some reason I can’t reopen the PR...
21:00:33  <tjfontaine>blah -- we'll need a new one, github is being a pain
21:00:48  <jgi>tjfontaine: alright, doing this right now
21:00:49  <tjfontaine>jgi: can you open it, and then add a link back to this one?
21:00:51  <tjfontaine>thanks
21:00:56  <jgi>yep
21:01:36  * iarna_joined
21:01:56  * iarnaquit (Read error: Connection reset by peer)
21:03:44  <jgi>tjfontaine: https://github.com/joyent/node/pull/8751
21:04:28  <tjfontaine>thank you
21:10:48  * kriskowaljoined
21:12:33  * iarnajoined
21:12:35  * iarnaquit (Remote host closed the connection)
21:12:35  * iarna_quit (Read error: Connection reset by peer)
21:12:37  * avalanche123joined
21:19:06  * avalanche123quit (Remote host closed the connection)
21:22:06  * iarnajoined
21:25:18  <chrisdickinson>tjfontaine: to clarify https://github.com/joyent/node/pull/8751#issuecomment-63713411, you're saying that while it seems like a large change for a stable, in practice the change makes the common case behave better at the expense of (unlikely) worst case situations?
21:25:35  * iarna_joined
21:26:40  <tjfontaine>chrisdickinson: to clarify, using a heap here (while I agree in principle with it) is a large change to a stable -- whereas merely shifting where we do the linear scan is lower impact for a stable
21:26:46  <tjfontaine>chrisdickinson: and solves the immediate concern
21:27:11  <tjfontaine>did that phrasing make sense?
21:27:24  * iarnaquit (Read error: Connection reset by peer)
21:28:26  <tjfontaine>the problem is that on a well behaved system, with lots of connections, and lots of data coming in, managing the unref'd timers list is very expensive (expensive from an adding aspect, which is also used for updating the time this timer should fire)
21:28:45  <tjfontaine>it's a linear scan on insert, which is the common case
21:28:56  <tjfontaine>more often the common case for removal, is when the socket is closed
21:29:37  * chrisdickinsonnods
21:29:37  <tjfontaine>so, if we move the linear scan to where the timer is firing, then we only hit this in the case where a socket has "gone away"
21:30:41  <chrisdickinson>and this PR implements the "move the linear scan to timer removal" approach, not the heap
21:30:53  * iarna_quit (Read error: Connection reset by peer)
21:30:57  * iarnajoined
21:31:02  <tjfontaine>chrisdickinson: that's correct
21:33:48  <chrisdickinson>ah, okay, i'm caught up now :) 8225 originally implemented this behavior, and then it was decided to implement as a heap instead for v0.12 (or post-v0.12)
21:34:02  <tjfontaine>right I would vote post-v0.12 at this point
21:35:40  * chris_99quit (Quit: Ex-Chat)
21:35:42  * roxluquit (Quit: roxlu)
21:36:07  * iarnaquit (Read error: Connection reset by peer)
21:36:14  * avalanche123joined
21:37:33  <chrisdickinson>tjfontaine: are we concerned about https://github.com/joyent/node/pull/8225#issuecomment-53340475 still? (specifically, the DoS vuln that bnoordhuis pointed out?)
21:39:00  <tjfontaine>chrisdickinson: I'm not sure how realistic that is, it's more likely we'll make our own DoS with a bug managing the link list :)
21:41:04  * jgiquit (Quit: jgi)
21:41:17  <tjfontaine>chrisdickinson: I will leave jgi to discuss that particular point more discretely, but I don't think it's something to be concerned with
21:41:34  <tjfontaine>[he apparently just went to lunch though] :)
21:41:56  <chrisdickinson>cool :)
21:44:54  <tjfontaine>chrisdickinson: do you have an MSFT live account?
21:45:12  <tjfontaine>AlexisMocha: which address do you use for azure related stuff?
21:45:45  <AlexisMocha>tjfontaine: address?
21:46:00  <chrisdickinson>tjfontaine: yep, chris@neversaw.us
21:46:24  <AlexisMocha>oh, email? any one works: v-alcamp at microsoft dot com
21:52:25  <tjfontaine>ok -- just realized I could add people to be co-administrators for azure :)
21:53:09  * avalanche123quit (Remote host closed the connection)
21:53:19  <tjfontaine>though I don't seem to be able toa dd AlexisMocha to this
21:53:25  * avalanche123joined
21:54:04  * abraxas__joined
21:58:37  * abraxas__quit (Ping timeout: 255 seconds)
21:59:46  * lanceballchanged nick to lance|afk
22:01:02  <trevnorris>tjfontaine: looking now
22:01:31  <Wraithan>tjfontaine, indutny: Any word on a 0.11.15?
22:01:44  * ijrothjoined
22:01:57  <tjfontaine>Wraithan: just want to finish up AL with trevor
22:02:12  * jgijoined
22:02:21  <Dirkson>Hey all. I'm using uv_rwlock, and would like to know if it can function recursively. Does anyone know if it can, or how faithful it is to pthread_rwlock ? (So I can potentially ask the pthread people)
22:02:22  * ijrothquit (Client Quit)
22:03:07  <Wraithan>tjfontaine: I know you said that indutny would be doing the 0.11 releases, is that still the case or are you still the person the buck stops at for 0.11 releases?
22:03:29  <tjfontaine>well he wanted to do one, anyone is free to do that if they want to quarter back it
22:03:39  <tjfontaine>we had wanted to only do one more for the RC
22:03:55  <tjfontaine>Dirkson: https://github.com/joyent/libuv/blob/master/src/unix/thread.c#L99
22:05:25  <AlexisMocha>tjfontaine: stange, my microsoft.com email is already administrator on a subscription. Try alexis at janeasystems dot com
22:06:10  <Dirkson>tjfontaine: Well, that suggests that the normal mutex operations are recursive, at least to some degree ^^
22:06:28  <tjfontaine>AlexisMocha: The co-administrator must be a Microsoft account, or a user in the Microsoft (microsoft.onmicrosoft.com) directory. You can only add a co-administrator from the Microsoft directory if you are also a user in that directory.
22:06:53  <Dirkson>tjfontaine: Oh, nevermind. I see what you're pointing out - It's basically just a wrapper, no? What about platforms that don't have pthread, like windows?
22:07:30  <tjfontaine>Dirkson: you'd have to look at the windows implementation
22:07:52  <Dirkson>tjfontaine: Gotcha. See that too now.
22:08:39  <AlexisMocha>tjfontaine: alexiscampailla at hotmail dot com
22:09:27  <tjfontaine>AlexisMocha: done
22:09:53  <tjfontaine>AlexisMocha: no clue why it wouldn't let your @msft one work, there was no message about that one
22:10:17  <tjfontaine>AlexisMocha: preferences on place to get a new certificate for code signing?
22:11:28  <Dirkson>tjfontaine: Ok. Well, by default the windows implementation uses some sort of windows-vista-created library, which may support recursive locks.
22:12:06  <Dirkson>tjfontaine: It's probably going to be less work to design as though I didn't have recursive locks available, rather than find out who to pin down with three separate libraries and determine if they all support recursive locks.
22:12:08  <AlexisMocha>tjfontaine: probably because it's part of a domain with it's own federated authentication. fun stuff
22:12:42  <AlexisMocha>tjfontaine: what's the azure subscription for?
22:12:43  * jgiquit (Quit: jgi)
22:12:54  <tjfontaine>AlexisMocha: from MSOpenTech for Node.js usage
22:13:19  <tjfontaine>I didn't realize I could delegate authority on azure
22:13:33  <AlexisMocha>tjfontaine: I didn't realize we were providing a subscription
22:13:43  <tjfontaine>you indeed are
22:13:51  <tjfontaine>that's where our builds happen
22:13:59  <tjfontaine>for windows anyway
22:14:00  <AlexisMocha>tjfontaine: great, we could use it with TeamCity now that TeamCity supports azure
22:14:04  <AlexisMocha>one day
22:14:06  <tjfontaine>yup
22:14:21  <AlexisMocha>no preference on the cert
22:14:23  <tjfontaine>that was one of the thigns we talked about
22:14:37  <tjfontaine>should nodejs have a preference? or is the comodo one sufficient?
22:14:52  * jgijoined
22:15:33  <AlexisMocha>tjfontaine: I am not sure I know the answer. Why would it need to change?
22:15:42  <AlexisMocha>on another note: did you get a chance to try the new jenkins jobs?
22:16:06  <tjfontaine>AlexisMocha: not yet, I was hoping to use them for trevors stuff, but I can do it for hte path stuff i want to do as well
22:17:05  <tjfontaine>AlexisMocha: the cert expired, just debating if it's worth trying to resurrect email addresses to renew, or just get a new one
22:19:45  <AlexisMocha>tjfontaine: I am not aware of any risks of using the comodo cert
22:21:00  <tjfontaine>ok
22:21:08  <MI6>joyent/node: MK Safi v0.12 * 6a67823 : doc: clarify return value of http.createServer - http://git.io/RguWsQ
22:25:18  * ijrothjoined
22:25:22  <bradleymeck>tjfontaine: what would it take to make a descision on the setrlimit / ulimit stuff
22:25:27  <bradleymeck>one way or the other
22:26:14  <tjfontaine>bradleymeck: trevnorris, jgi, chrisdickinson, AlexisMocha, indutny, myself all agree
22:27:09  <bradleymeck>is that to keep it or to remove it?
22:27:16  <Wraithan>fwiw (not much since I'm not core) I'm on bradleymeck's side, though not enough to really push for it, I think it sucks doing weird stuff implicitly.
22:27:29  <trevnorris>tjfontaine: I agree on what?
22:27:31  <tjfontaine>bradleymeck: no, you asked what it takes to make a decision -- consensus
22:27:34  <bradleymeck>ah ok
22:28:06  <tjfontaine>trevnorris: we just have to decide for 0.12 if we want to keep or remove the setrlimit stuff
22:28:16  <trevnorris>okay.
22:28:28  <tjfontaine>Wraithan: I agree, especially since there is an api for doing this sort of work
22:28:35  <trevnorris>tjfontaine: also, we going to upgrade V8? I'm +1 for it.
22:28:57  <tjfontaine>trevnorris: I think -1, because it's a lot of churn whenw e just want to get this out the door
22:29:43  <trevnorris>I don't care much for generators, but some of the community would like them not to be hidden behind a flag. hence the upgrade to 3.29
22:29:47  <tjfontaine>I had a meat space conversation with izs, and others at the last advisory board meeting -- they want to see 0.12 more than they want to see us fix the outstanding issues for getting the new v8
22:29:56  <tjfontaine>trevnorris: I know, I understand
22:30:16  <tjfontaine>trevnorris: but it's also a problem for people like Wraithan and those doing analytics
22:30:29  <trevnorris>elaborate please.
22:30:38  <tjfontaine>which part?
22:30:39  <Wraithan>tjfontaine: I'm just concerned, I'm not sure it is a problem
22:30:55  <Wraithan>I want to test the new v8 stuff before it goes out into 0.12
22:31:03  <tjfontaine>Wraithan: I'm not sure it is either, there are already plenty of concerns around debugging promises, generators make it all that much more fun
22:31:15  <tjfontaine>I would like some time with generators to gestate in node more than I want to get it in 0.12
22:31:18  <tjfontaine>myself anyway
22:31:23  <tjfontaine>there's a lot to understand around them
22:31:41  <trevnorris>tjfontaine: there's a huge problem w/ 3.28 that cause Promises to segfault when running in debug mode.
22:32:10  <trevnorris>don't have the example code ATM, but can find where I put it if needed.
22:32:22  <tjfontaine>please do
22:32:31  <Wraithan>I'm not -1 on new v8, just want to make sure there is a proper grace period between new v8 + 0.11 release and a 0.12 release so those of us who have concerns can be sure things will continue to work as I expect them to
22:32:44  <tjfontaine>I'm +1 on getting v0.12 out, and I don't want to block on it
22:33:32  <tjfontaine>the sooner we get 0.12 out, the sooner we can actually scope 0.14
22:33:38  <tjfontaine>and know what it means to do that release
22:33:51  <tjfontaine>we won't bite off more than we can chew
22:33:59  <tjfontaine>and we will have a small discrete set of features
22:34:06  <tjfontaine>and then we'll know exactly when things are ready to be released
22:35:06  * sblomquit (Read error: Connection reset by peer)
22:37:18  * ijrothquit (Quit: Leaving.)
22:38:58  * rendarquit
22:40:55  * sblomjoined
22:41:11  * bradleymeckquit (Quit: and im off, til next time ppls)
22:47:00  <Wraithan>3.29 means a supported version of v8 as opposed to 3.28 which is no longer supported, correct? Also 3.29 gives enough for Koa without a flag (I believe) which is growing in popularity despite the need for a 0.11 version and a flag. Not that I want to deal with koa but I know we (newrelic) get requests for 0.11.x support almost exclusively from koa folks except for one or two instances.
22:48:22  <trevnorris>tjfontaine: nm. that was w/ > 3.28. no longer does that.
22:48:31  <Wraithan>That in mind, I'd rather see v8 bumped and 0.12 delayed a tiny (but well defined) bit longer. Even though new v8 scares me a bit because there are various features that concern us (generators for example) for the agent
22:50:53  <trevnorris>tjfontaine: bigger question is, do we launch v0.12 w/o the AL hooks?
22:50:53  <trevnorris>there've been no shortage of issues implementing them correctly as I've been cleaning up and testing them.
22:51:47  <Wraithan>trevnorris: these hooks are at the C++ level, right?
22:52:13  <trevnorris>Wraithan: you pass JS callbacks that are called based on C++ hooks.
22:52:35  <trevnorris>I have wanted to do a C++ interface as well, but that's second priority.
22:52:43  <tjfontaine>Wraithan: "support" is used loosely anytime we talk about v8
22:52:43  <Wraithan>trevnorris: sorry, what I mean is, the js level of the API is gone, right? or is that still there?
22:53:06  <tjfontaine>Wraithan: because the V8 team itself doesn't really consider the software to be a standalone piece for use with other embedded projects
22:53:15  <Wraithan>tjfontaine: I see
22:53:28  <trevnorris>Wraithan: it's gone. the only remnant of AL that exists is AsyncWrap.
22:53:29  <tjfontaine>Wraithan: that being said, the team has worked with us in the past to backport things significant versions back if we can convince them
22:53:51  <tjfontaine>trevnorris: what do you mean, remove the AW base class?
22:54:19  <trevnorris>tjfontaine: no. meaning AW is all that's left. all the async listener hooks inside AW are gone.
22:55:14  <tjfontaine>I thought that's what we were doing, shipping without AL, but leaving AW in place and the pieces to poke at AW behind a private API
22:57:00  <Wraithan>trevnorris: cool, thanks
22:57:07  <trevnorris>the pieces to poke at AW have also been removed.
22:57:07  <trevnorris>If you look at the commits in https://github.com/joyent/node/pull/8110 you'll see I started by removing almost everything (to make the commit log as clean as possible) then started adding things back.
22:57:20  * hayesjoined
22:57:23  <trevnorris>but the bits to poke around AW aren't back in yet.
22:58:10  * ijrothjoined
22:58:11  <tjfontaine>I was fine with basically getting the C++ bits to be working fine, so long as no one has added a callback
22:58:33  <tjfontaine>and then if someone came and did process.binding('al').setupAL() then thigns could start behaving in whatever way happened
22:58:56  <trevnorris>that's what i'm in the processes of adding back.
22:59:27  <tjfontaine>so here's what I'm looking for -- such that we can have a release of 0.12
22:59:44  <tjfontaine>a node built, that has AW in whatever state is in, does not crash under normal use cases
23:00:00  <tjfontaine>if someone does process.binding('al').setupAL() all bets are off
23:00:10  <tjfontaine>and I'm willing to accept bugs will exist
23:01:36  <trevnorris>okay. then i'll do less testing of the changes (which is what's lead me to finding what I have)
23:01:44  <trevnorris>and get that binding back in.
23:08:00  * AvianFluquit (Ping timeout: 255 seconds)
23:13:41  * ijrothquit (Ping timeout: 264 seconds)
23:15:33  * ijrothjoined
23:15:58  * ijrothquit (Client Quit)
23:17:08  <piscisaureus>tjfontaine: is that the only thing blocking a 0.12 release from your perspective?
23:23:47  <trevnorris>i still haven't heard his input about Intl by default.
23:25:31  <tjfontaine>I want to do the intl review, and a couple trivial PRs and then that shoul dbe it
23:26:10  <tjfontaine>that's what we had talked about after the last AB meeting, which unfortunately you were remote for so you didn't hear me, mr roth, izs, and mr shaw all talking about it
23:26:39  <piscisaureus>yeah next one I won't be there in person either
23:26:48  <tjfontaine>as in tomorrow? :)
23:27:40  <piscisaureus>yes that one. hopefully the call bridge will work a bit better
23:28:05  <tjfontaine>the authenticode cert should be renewed within 48 hours, then we can do the 0.10 release, and hopefully have everything in for 0.11
23:29:10  <piscisaureus>would it be an idea to have a more visible roadmap and planning?
23:29:16  <piscisaureus>Maybe that's something to discuss tomorrow
23:29:33  <tjfontaine>we can -- I wish github didn't suck for this purpose
23:30:10  <piscisaureus>well you can also use waffle if you want to, but I think github could do
23:30:40  <tjfontaine>last I played with waffle it didn't really fill the gaps I was looking fro
23:30:42  <tjfontaine>*for
23:30:44  <piscisaureus>but if there's no process then github doesn't really make one up
23:32:15  <piscisaureus>waffle isn't perfect indeed
23:34:12  * seishunquit (Ping timeout: 258 seconds)
23:34:24  * cjbjoined
23:36:25  * dshaw_quit (Quit: Leaving.)
23:36:29  * AlexisMochaquit (Ping timeout: 264 seconds)
23:42:27  <trevnorris>tjfontaine: i'm driving up tomorrow. that should help. :)
23:42:35  * abraxas__joined
23:43:06  <tjfontaine>trevnorris: at least the timing for that wont be too bad for traffic
23:43:25  <trevnorris>yeah. luckily.
23:47:37  * abraxas__quit (Ping timeout: 258 seconds)
23:50:24  <piscisaureus>tjfontaine: what were the issues you had with waffle btw?
23:56:19  * ijrothjoined
23:59:08  <chrisdickinson>could I get a quick review of https://github.com/joyent/node/pull/8750 ?