00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:02:30  * bnoordhuisjoined
00:07:07  * bnoordhuisquit (Ping timeout: 245 seconds)
00:24:55  * mikealquit (Quit: Leaving.)
00:26:48  * timoxleyjoined
00:33:48  * timoxleyquit (Ping timeout: 264 seconds)
00:35:15  * brsonjoined
00:46:23  * joshthecoderquit (Ping timeout: 245 seconds)
00:46:43  * joshthecoderjoined
00:50:10  * AvianFluquit (Remote host closed the connection)
00:55:13  * mikealjoined
00:58:18  * loladiroquit (Quit: loladiro)
01:01:03  * timoxleyjoined
01:05:09  * mikealquit (Ping timeout: 268 seconds)
01:15:39  * mikealjoined
01:16:41  * timoxleyquit (Ping timeout: 245 seconds)
01:27:31  * mikealquit (Quit: Leaving.)
01:33:35  * brsonquit (Quit: leaving)
01:44:22  * kazuponjoined
02:19:10  * dominictarrquit (Quit: dominictarr)
02:19:35  * mikealjoined
02:22:53  * c4milojoined
02:24:05  * mikealquit (Ping timeout: 268 seconds)
02:32:08  * toothrotquit (Ping timeout: 260 seconds)
02:48:17  * toothrjoined
02:51:34  * mikealjoined
02:56:01  * mikealquit (Ping timeout: 246 seconds)
02:58:22  * c4miloquit (Remote host closed the connection)
02:58:49  * c4milojoined
03:03:17  * c4miloquit (Ping timeout: 258 seconds)
03:03:42  * c4milojoined
03:03:53  <trevnorris>isaacs: you still around?
03:04:12  * kazuponquit (Remote host closed the connection)
03:06:52  <isaacs>hola
03:09:30  <trevnorris>isaacs: coolio. can you throw my buffer changes onto you're to-do list?
03:09:39  <trevnorris>(not like you don't have enough going on already ;-)
03:10:18  <isaacs>trevnorris: i will review them this week
03:10:31  <trevnorris>awesome. thanks.
03:10:39  <isaacs>trevnorris: has bnoordhuis or indutny signed off on the changes?
03:10:51  <isaacs>(just curious)
03:11:10  <trevnorris>bnoordhuis reviewed some of my code, don't think indutny has looked at it yet.
03:12:47  <isaacs>kk
03:13:20  * mikealjoined
03:14:21  <trevnorris>isaacs: fortunately the only api change was in some of the argument coercions/checking. the rest should be just as it was.
03:18:34  <tjfontaine>I wonder if I've changed, or something in the water has changed, the past few weeks the style of comments have been quite testy
03:18:58  <trevnorris>you mean in the issues?
03:19:01  <tjfontaine>yes
03:22:41  <trevnorris>yeah. guess I don't frequent those enough to know.
03:22:50  <trevnorris>or maybe i'm the one you're talking about. ;-)
03:24:19  <tjfontaine>haha, no not you
03:24:45  <tjfontaine>latest one is this require.extensions thread
03:25:28  <tjfontaine>but mostly people over the past two weeks people have been squabbling over the Frozen-ness of specific apis
03:27:29  <trevnorris>yeah. unfortunately it seems they don't realize the importance for a v1.0 release.
03:27:43  <trevnorris>I already have a list of API changes i want to make for v2.
03:29:16  <tjfontaine>trevnorris: heh, you will want to listen to isaacs' talk on tuesday then :)
03:29:34  <trevnorris>i'll be there. anything specific you're talking about?
03:29:42  * c4miloquit (Remote host closed the connection)
03:29:52  <tjfontaine>if he gives the same one he talks about the future post 1.0
03:30:09  * c4milojoined
03:31:09  <trevnorris>oh. does he say something like "frozen API is frozen for eternity!"?
03:31:41  <tjfontaine>not entirely, but just that you shouldn't expect many drastic changes
03:32:10  <tjfontaine>consider things like perl6 and py3 for comparison, and their relative uptake
03:34:43  * c4miloquit (Ping timeout: 258 seconds)
03:41:25  <trevnorris>almost wish issues had to select which section of node it relates to. then wish I could get alerts for the parts I care about.
03:41:57  <trevnorris>just that lazy don't want to read all those ticket titles =P
03:42:24  <tjfontaine>well, presuming the ticket has been triaged and tagged appropriately you could use the github api to generate that info for you
03:44:23  <trevnorris>hm. good idea.
03:44:58  <tjfontaine>after that you could do some NLP :)
03:45:59  <trevnorris>oh. ouch. makes me hurt just thinking about it.
03:50:13  * loladirojoined
04:11:52  * abraxasjoined
04:16:16  * abraxasquit (Ping timeout: 245 seconds)
05:03:44  * loladiroquit (Quit: loladiro)
05:10:52  <MI6>joyent/node: isaacs v0.10 * 7bd8a5a : doc: Deprecate require.extensions - http://git.io/Sr8pZw
05:22:13  * TooTallNatequit (Quit: Computer has gone to sleep.)
05:41:03  <MI6>nodejs-v0.10: #164 UNSTABLE linux-x64 (1/581) windows-ia32 (8/581) windows-x64 (8/581) http://jenkins.nodejs.org/job/nodejs-v0.10/164/
05:46:19  * bajtosjoined
05:52:15  <trevnorris>tjfontaine: for some reason test-os.js is failing for smartos in my buffer pr. that happening for all of them?
05:52:57  <trevnorris>i'm not even quite sure what the error is telling me: http://jenkins.nodejs.org//job/node-pullrequest/263/DESTCPU=ia32,label=smartos//tapTestReport/test.tap-367/
05:55:06  * bajtosquit (Read error: Connection reset by peer)
05:55:11  * bajtos_joined
05:55:26  * bajtos_quit (Read error: Connection reset by peer)
05:55:46  * bajtosjoined
06:03:10  * mikealquit (Quit: Leaving.)
06:37:35  <trevnorris>ugh. Buffer.copy is poorly named. Should be .copyTo()
06:38:19  <trevnorris>.copy should just return a new buffer.
06:38:39  <trevnorris>isaacs: ^ know we can't change it now, but thoughts?
06:39:31  <trevnorris>and actually, I don't even like .copyTo().
06:41:13  * rendarjoined
06:41:54  * stolsmajoined
06:48:35  * benoitcquit (Excess Flood)
06:50:42  * benoitcjoined
07:06:26  * wolfeidauquit (Remote host closed the connection)
07:31:30  * csaohjoined
07:36:16  * wolfeidaujoined
07:37:13  * bajtosquit (Ping timeout: 240 seconds)
08:31:03  * dominictarrjoined
08:35:19  * stagasjoined
08:50:53  * bnoordhuisjoined
09:03:57  * hzjoined
09:15:12  * csaohquit (Quit: csaoh)
09:17:07  * benoitcquit (Ping timeout: 245 seconds)
09:45:36  * bajtosjoined
09:46:04  * bajtos_joined
09:46:05  * bajtosquit (Read error: Connection reset by peer)
09:51:33  * bajtos_quit (Ping timeout: 240 seconds)
09:53:20  * timoxleyjoined
09:59:26  * benoitcjoined
10:01:18  * csaohjoined
10:02:19  <trevnorris>bnoordhuis: what's up?
10:02:30  <indutny>trevnorris: copy() isn't clone()
10:02:38  <indutny>it does what is says
10:02:41  <indutny>copies
10:02:45  <indutny>like memcpy
10:02:50  <trevnorris>yeah, I understand that.
10:03:41  <trevnorris>was just saying the name would lead me to assume the following syntax: "buffer.copy([start][, end])"
10:03:41  <bnoordhuis>trevnorris: the opposite of down?
10:03:48  <trevnorris>lol
10:04:48  <trevnorris>bnoordhuis: just wanted to quick chat about 5378. so what is the bug?
10:05:06  <bnoordhuis>trevnorris: it's in the title isn't it? use after free
10:06:57  <trevnorris>bnoordhuis: ok. so you're saying that even if .parent == null and the slowbuffer == null, the parent shouldn't free until the buffer slice is no longer in scope?
10:07:09  <MI6>joyent/node: Ben Noordhuis v0.10 * 626d7ab : doc: cluster: s/server.destroy/server.close/ - http://git.io/XRqkcg
10:07:23  <bnoordhuis>trevnorris: preferably yes
10:07:34  <bnoordhuis>unless it turns out to be very costly
10:07:53  <bnoordhuis>i was thinking of maybe making .parent read-oly
10:07:56  <bnoordhuis>*read-only
10:07:57  <trevnorris>reletively speaking, it will be. you'll have to set an internal/hidden field from parent to child.
10:08:03  <bnoordhuis>or set a hidden field
10:08:06  <bnoordhuis>right
10:08:12  <trevnorris>read-only is more costly (having to use Object.createProperty)
10:08:25  <trevnorris>already did a bunch of those tests while working on the new buffer pr.
10:08:49  <bnoordhuis>you could do it from c++ with PropertyAttributes == READ_ONLY
10:08:52  <trevnorris>it sucks, but v8 isn't performance friendly that way.
10:09:12  <bnoordhuis>err, ReadOnly (READ_ONLY is the internal alias)
10:09:23  <trevnorris>i can throw that in real fast. let me do that and run the bench.
10:10:54  * dominictarrquit (Quit: dominictarr)
10:21:37  <trevnorris>bnoordhuis: 16 bytes: -65%; 1 kB: -55%
10:23:17  <bnoordhuis>trevnorris: is that when set from c++?
10:23:23  <trevnorris>bnoordhuis: yeah.
10:23:33  <trevnorris>using Set. i'm trying SetHiddenValue now.
10:24:36  <trevnorris>SetHiddenValue is maybe 10% better, but still bad. I'll set it from js now.
10:26:27  * bajtosjoined
10:26:44  * bajtosquit (Read error: Connection reset by peer)
10:27:02  * bajtosjoined
10:27:56  <trevnorris>bnoordhuis: wtf. using Object.defineProperty writable: false it's 5.2x's slower.
10:28:10  * bajtos_joined
10:29:40  <trevnorris>only other option I can think to try is creating a new ObjectTemplate when generating a new pool, and pre-setting the field.
10:29:51  <trevnorris>i'll try that tomorrow, but have to hit the sack.
10:30:23  <indutny>why not just store it in C++?
10:30:25  <indutny>like
10:30:27  <indutny>Unwrap
10:30:31  <indutny>ah
10:30:32  <indutny>persistent
10:31:33  * bajtosquit (Ping timeout: 240 seconds)
10:31:53  <MI6>joyent/node: Ben Noordhuis v0.10 * 4fdb8ac : deps: downgrade openssl to v1.0.0f - http://git.io/eg81ug
10:32:01  <bnoordhuis>^ sad :(
10:39:30  <MI6>nodejs-v0.10: #165 UNSTABLE windows-ia32 (7/581) windows-x64 (8/581) smartos-ia32 (1/581) smartos-x64 (1/581) http://jenkins.nodejs.org/job/nodejs-v0.10/165/
10:39:40  <rendar>bnoordhuis: why that downgrade?
10:41:54  * dominictarrjoined
10:44:46  * csaohquit (Quit: csaoh)
10:44:49  <bnoordhuis>rendar: because of https://github.com/joyent/node/issues/5360 among others
10:45:49  <indutny>I believe we should open issue for openssl
10:45:58  <indutny>ah wait
10:46:01  * indutnyreads RFC once again
10:46:06  <bnoordhuis>i'm reasonably sure they're aware of it :)
10:46:17  <bnoordhuis>i don't think it's openssl that is to blame
10:46:20  <indutny>no
10:46:21  <indutny>it isn't
10:46:32  <indutny>server should ignore unknown extensions in ClientHello
10:46:38  <bnoordhuis>yep. but not all do
10:46:39  <indutny>and repeat acknowledged ones
10:46:47  <indutny>bnoordhuis: that's totally stupid
10:46:51  <indutny>let me guess which isn't doing it
10:46:52  <indutny>IIS?
10:46:59  <bnoordhuis>welcome to the world of professional software development
10:47:16  <bnoordhuis>well, IIS
10:47:20  <indutny>ok
10:47:23  <indutny>any other?
10:47:24  <bnoordhuis>i've seen the issue when talking to IIS servers
10:47:36  <indutny>the issue is that you're talking to them
10:47:41  <indutny>and it needs to be eliminated
10:47:44  <indutny>:)
10:47:44  <bnoordhuis>yeah
10:48:01  <bnoordhuis>but i'm not sure if it's actually IIS that handles ssl termination or some load balancer sitting in front of it
10:48:10  <indutny>oh god
10:48:14  <bnoordhuis>i also saw it with a resin server
10:48:17  <indutny>well, its not using sane SSL implementation anyway
10:48:17  <rendar>bnoordhuis: i see
10:48:18  <bnoordhuis>same caveat applies
10:48:37  <indutny>I wonder if we can press those guys somehow
10:48:47  <indutny>because openssl upgrade is inevitable in future
10:48:50  <indutny>btw
10:48:57  <indutny>have you tried turning off some other extensions?
10:49:10  <indutny>from my tests it seems that only HEARTBEAT was causing IIS to fail
10:49:10  <bnoordhuis>yeah. but not with much luck
10:49:17  <indutny>and everything else was identical
10:49:21  <indutny>in node 0.8 and 0.10
10:49:29  <indutny>ok
10:50:02  <bnoordhuis>it's not easy to debug of course, you don't control (or even have access) to the other end
10:50:14  <bnoordhuis>so it's anybody's guess what exactly it's choking on
10:50:43  <bnoordhuis>but the principle of exclusion applied to extensions and protocol advertisements didn't get me anywhere
10:52:04  <bnoordhuis>i should tag issues more consistently, i'm certain there were more...
10:52:15  <indutny>well
10:52:20  <indutny>its very easy to debug :)
10:52:23  <indutny>just use wireshark
10:52:26  <indutny>or
10:52:33  <indutny>log written/received data
10:52:36  <indutny>and compare
10:52:46  <indutny>and its very interesting
10:52:59  <indutny>it might be some ciphers that are unknown to other side
10:53:00  <bnoordhuis>i know you mean well, fedor, but don't you think that thought had struck me as well? :)
10:53:05  <indutny>otherwise is a total misterty
10:53:22  <indutny>bnoordhuis: yeah, I know you're good at it :)
10:53:33  <bnoordhuis>with conde nast's resin server, it just stopped replying altogether after the initial handshake
10:54:13  <indutny>so… after serverhello?
10:54:36  <bnoordhuis>i think so (but it's been a couple of days now)
10:54:43  <indutny>ah, o
10:54:43  <rendar>conde nast's server? isn't that a big publisher industry? :)
10:54:45  <indutny>s/o/ok/
10:54:48  <bnoordhuis>yep
10:54:57  <indutny>ok, lets forget about it
10:55:07  <rendar>bnoordhuis: cool! did you work for them?
10:55:30  <MI6>nodejs-v0.10: #166 FAILURE http://jenkins.nodejs.org/job/nodejs-v0.10/166/
10:55:34  <bnoordhuis>rendar: hah, no. someone opened an issue that he couldn't talk to conde nast's web service anymore with v0.10
10:55:42  <rendar>ah, lol ok
10:55:44  <rendar>:)
10:56:16  * piscisaureus_joined
10:57:15  <indutny>piscisaureus_: hey man
10:57:16  <indutny>https://codereview.chromium.org/14425011/
10:58:29  * skebcioquit (Read error: Operation timed out)
10:59:20  <piscisaureus_>bajtos_: do you need your break-in-unknown-file patch reviewed?
10:59:42  <bnoordhuis> piscisaureus_: already landed, you slacker
10:59:49  <piscisaureus_>bnoordhuis: oh haha
11:00:01  <piscisaureus_>bnoordhuis: I had no time to look at it this weekend
11:00:11  <bnoordhuis>no problem, it wasn't very big
11:00:26  <piscisaureus_>bnoordhuis: did you have any comments?
11:00:32  <piscisaureus_>e.g. I dont understand
11:00:33  <piscisaureus_>var normalizedPath = script.replace('([/.?*])', '\\$1');
11:00:39  <piscisaureus_>for example
11:00:49  <bnoordhuis>escapes forward slashes
11:01:05  <piscisaureus_>bnoordhuis: no, because the first argument is a string and not a regex
11:01:09  <piscisaureus_>it probably does nothing
11:01:18  <bnoordhuis>ah
11:01:18  * skebciojoined
11:02:10  <bnoordhuis>good point. miroslav probably meant to write /([/.?*])/g
11:02:14  <bnoordhuis>bajtos_: ping
11:02:21  <piscisaureus_>yes
11:02:59  <bnoordhuis>also, .?* seems somewhat contradictory/superfluous
11:02:59  <piscisaureus_>you probably also want to escape $ and ^ :)
11:03:07  <piscisaureus_>no it is between []
11:03:17  <piscisaureus_>so they are just interpreted as characters
11:03:29  <piscisaureus_>also he should escape ( an d)
11:04:28  <piscisaureus_>bnoordhuis: we should probably revert it. It's not good...
11:05:00  <piscisaureus_>indutny: you probably want to get a v8 guy in the loop
11:05:32  <indutny>most likely
11:05:37  <indutny>just wanted to share it with you
11:05:37  <indutny>FYI
11:07:54  * timoxleyquit (Quit: Computer has gone to sleep.)
11:10:29  * csaohjoined
11:10:33  * csaohquit (Client Quit)
11:10:54  * csaohjoined
11:24:26  <bnoordhuis>indutny: + volatile int events;
11:24:35  <indutny>like
11:24:43  <indutny>is it because of it?
11:24:51  <bnoordhuis>all loads and stores are done inside critical sections
11:24:55  <indutny>yes
11:25:01  <indutny>there should barriers
11:25:13  <bnoordhuis>the pthread functions are full barriers
11:25:16  <indutny>but I've no other idea
11:25:21  <indutny>yet
11:25:22  <bnoordhuis>both compiler barriers and hardware barriers
11:25:34  * sgallaghjoined
11:25:43  * timoxleyjoined
11:26:04  <indutny>it might be that
11:26:06  <indutny>err
11:26:11  <indutny>s/.*//
11:26:59  <indutny>its just odd
11:27:11  <indutny>because its accessed from two places
11:27:24  <indutny>and both are in critical sections
11:32:00  * SquirrelCZECHquit (Ping timeout: 264 seconds)
11:32:22  <bnoordhuis>i guess i should try to reproduce it
11:32:28  <bnoordhuis>but it's not like i use macvim
11:35:34  <bajtos_>bnoordhuis piscisaureus_ sorry guys, my IRC client does not notify me about mentions in conversation
11:35:39  <bajtos_>I'll look at the issue
11:35:58  * bajtos_quit (Quit: bajtos_)
11:36:14  * bajtosjoined
11:36:41  <bnoordhuis>bajtos: irssi + notify or maybe xchat
11:37:15  <bnoordhuis>clinical tests have shown that all Real Men use irssi
11:40:58  <MI6>joyent/libuv: Ben Noordhuis v0.10 * 4e5b8dc : build: link with libkvm on openbsd - http://git.io/RPS2ew
11:41:39  <bajtos>bnoordhuis: I'd prefer client that will show notification in Windows desktop/tray
11:42:29  <bnoordhuis>windows. you poor soul
11:42:46  <bajtos>bnoordhuis: or Mac OSX
11:42:57  <bnoordhuis>you can integrate irssi with growl
11:43:00  <bnoordhuis>though i never bothered
11:43:28  <MI6>libuv-v0.10: #46 UNSTABLE windows (4/187) osx (2/187) smartos (3/186) linux (1/186) http://jenkins.nodejs.org/job/libuv-v0.10/46/
11:43:57  <bnoordhuis>it used to be possible to show notifications but apple killed that. your program needs to be signed bundle now, i believe
11:44:08  <bnoordhuis>one more reason to hate apple
11:44:12  * SquirrelCZECHjoined
11:45:10  * bajtosquit (Quit: bajtos)
11:45:12  <bnoordhuis>indutny: "I suggest you should merge v0.10 and rollback openssl to 1.0.1 in master" <- you mean revert the revert? roll forward, so to speak?
11:45:20  <indutny>yes
11:45:28  <indutny>my bad
11:45:37  <bnoordhuis>okay, clear
11:45:41  <bnoordhuis>yeah, not a bad idea
11:45:42  * bajtosjoined
11:46:24  <bnoordhuis>aw, so many conflicts
11:48:03  <indutny>heh
11:50:38  <MI6>libuv-v0.10-gyp: #9 UNSTABLE windows-x64 (5/187) smartos-ia32 (3/186) osx-x64 (1/187) smartos-x64 (3/186) windows-ia32 (6/187) http://jenkins.nodejs.org/job/libuv-v0.10-gyp/9/
11:53:11  <MI6>libuv-master-gyp: #22 UNSTABLE smartos-ia32 (3/188) windows-x64 (4/189) osx-ia32 (1/188) linux-ia32 (2/188) windows-ia32 (4/189) smartos-x64 (5/188) http://jenkins.nodejs.org/job/libuv-master-gyp/22/
11:59:47  <MI6>libuv-node-integration: #36 FAILURE smartos-x64 (1/581) http://jenkins.nodejs.org/job/libuv-node-integration/36/
12:00:27  * piscisaureus_quit (Ping timeout: 245 seconds)
12:10:44  <indutny>> typedef Handle<Value> (*PropertyGetter)(Isolate* isolate, Handle<Object> obj);
12:10:44  <indutny>> PropertyGetter CreateGetter(Isolate* isolate, Handle<String> name);
12:10:56  <indutny>v8 team has proposed mostly the same API, but without clobbering ->Set/->Get()
12:11:19  <indutny>though, they want to use IC
12:11:29  <indutny>which is better, but more complex
12:12:50  * toothrchanged nick to toothrot
12:15:07  <bajtos>bnoordhuis
12:15:33  <bajtos>bnoordhuis: here is PR with fix for the regex escaping issue: https://github.com/joyent/node/pull/5383
12:21:14  <MI6>joyent/node: Ben Noordhuis master * 179784e : Revert "deps: downgrade openssl to v1.0.0f" (+23 more commits) - http://git.io/GpykIA
12:31:13  <indutny>great
12:41:19  <MI6>joyent/node: Miroslav Bajtoš master * 5ddf7f4 : debugger: fix bug in breakpoint regex escaping - http://git.io/nGhD0Q
12:45:04  <bajtos>bnoordhuis
12:45:18  <bajtos>bnoordhuis: thanks for accepting PR.
12:46:01  <bnoordhuis>np
12:46:25  <bajtos>bnoordhuis: ad past tense in commit messages - it's a habit from the UK, they considered it more "correct"
12:47:12  <bnoordhuis>bajtos: i see it like this: the commit is the point in time where the change that's described in the commit log is introduced
12:47:23  <bnoordhuis>therefore, present tense
12:48:56  <bajtos>bnoordhuis: the message describes an event that happened in the past, therefore you need to change to past tense. Like in a sentence "Ben said he was fixing a bug." (instead of "Ben said he is fixing a bug.")
12:49:29  <bajtos>bnoordhuis: anyway, I'll try to use present tense in future commits
12:51:43  <bnoordhuis>good :)
12:52:24  * c4milojoined
12:53:24  * bnoordhuisis off to lunch
12:53:35  * c4miloquit (Remote host closed the connection)
12:54:01  * c4milojoined
12:55:35  * c4miloquit (Read error: Operation timed out)
12:57:48  * bnoordhuisquit (Ping timeout: 258 seconds)
13:08:05  * timoxleyquit (Quit: Computer has gone to sleep.)
13:10:37  <MI6>nodejs-master: #183 UNSTABLE windows-ia32 (145/585) smartos-ia32 (1/585) windows-x64 (145/585) http://jenkins.nodejs.org/job/nodejs-master/183/
13:27:18  * piscisaureus_joined
13:33:22  * AvianFlujoined
13:36:25  * c4milojoined
13:56:42  * kevinswiberjoined
14:03:48  * bnoordhuisjoined
14:08:00  * stolsmaquit (Ping timeout: 264 seconds)
14:08:13  * defunctzombie_zzchanged nick to defunctzombie
14:08:23  * bnoordhuisquit (Ping timeout: 256 seconds)
14:16:18  * piscisaureus_quit (Ping timeout: 264 seconds)
14:23:03  * jmar777joined
14:27:33  * bnoordhuisjoined
14:39:33  * defunctzombiechanged nick to defunctzombie_zz
14:40:05  <MI6>nodejs-master: #184 ABORTED smartos-x64 (2/585) http://jenkins.nodejs.org/job/nodejs-master/184/
14:40:16  * kazuponjoined
14:45:03  * piscisaureus_joined
14:53:53  * defunctzombie_zzchanged nick to defunctzombie
14:56:02  * kazuponquit (Remote host closed the connection)
15:01:44  <piscisaureus_>bnoordhuis: isaacs: I guess given the new "minimalist" standard for execSync, customFd support is not important at all?
15:01:54  <piscisaureus_>because if that, I'm almost ready \o/
15:08:34  * piscisaureus_quit (Ping timeout: 246 seconds)
15:12:01  <isaacs>ircretary: tell piscisaureus_ customFd support would be nice, but meh. i'd be happy to have it half-implemented, and leave custom stdio support for later.
15:12:01  <ircretary>isaacs: I'll be sure to tell piscisaureus_
15:12:22  * AvianFluquit (Remote host closed the connection)
15:23:00  <MI6>nodejs-master: #185 ABORTED http://jenkins.nodejs.org/job/nodejs-master/185/
15:23:34  <tjfontaine>lets see if we can get a build done before github shits the bed again
15:26:28  * sgallaghquit (Remote host closed the connection)
15:27:22  * kazuponjoined
15:27:33  * loladirojoined
15:29:49  <rje>if any of you guys are awesome at windows, i've got an issue spawning a windows powershell with libuv under node.js or luvit.
15:29:54  <rje>https://gist.github.com/rjemanuele/2aa4f36c6c34898324ba
15:31:01  * bnoordhuisquit (Ping timeout: 252 seconds)
15:31:07  * sgallaghjoined
15:42:30  * octetcloudjoined
15:49:25  * defunctzombiechanged nick to defunctzombie_zz
15:58:49  * bnoordhuisjoined
16:00:49  * TooTallNatejoined
16:01:22  <MI6>nodejs-master: #186 UNSTABLE smartos-x64 (1/585) windows-ia32 (145/585) windows-x64 (144/585) http://jenkins.nodejs.org/job/nodejs-master/186/
16:01:26  * loladiroquit (Quit: loladiro)
16:04:09  * piscisaureus_joined
16:04:17  <piscisaureus_>ircretary: notes
16:07:34  <rje>piscisaureus_, got a sec for an interesting issue? https://gist.github.com/rjemanuele/2aa4f36c6c34898324ba
16:12:42  * kazuponquit (Remote host closed the connection)
16:14:37  <piscisaureus_>rje: not really at the moment. You should probably file a bug.
16:15:01  <piscisaureus_>rje: I have no server 2008 machine at hand so investigating may be a bit hairy
16:15:41  <rje>piscisaureus_, k, i'll file a bug. i bet its also an issue on vista
16:16:27  <piscisaureus_>rje: I also don't have that. I only have XP, 7, server12 and 8
16:16:35  <rje>piscisaureus_, i may be able to furnish a server 2008 box for you
16:17:49  <piscisaureus_>rje: it could be useful - although I'll need to install visual studio and python on it
16:18:37  * dapjoined
16:20:53  <isaacs>piscisaureus_: thanks for child_process_close
16:21:00  <isaacs>piscisaureus_: just came in handy :)
16:21:12  <piscisaureus_>isaacs: haha!
16:21:34  <piscisaureus_>isaacs: lost it relevance already. I made it for cloud9 to make .6->.8 transition less painful
16:21:49  <isaacs>yeah
16:22:06  * defunctzombie_zzchanged nick to defunctzombie
16:22:09  <isaacs>it'd be nice to have a similar one for {stdio:"inherit"} -> {customFds:[0,1,2]}
16:22:29  <isaacs>bnoordhuis, tjfontaine: What's the status of aesni in 0.10? is there a patch we need to float there?
16:22:40  * kevinswiberquit (Remote host closed the connection)
16:23:03  <piscisaureus_>isaacs: agreed. But I am losing obscure features to comply to your 1-week deadline .
16:23:14  <isaacs>piscisaureus_: hahah
16:23:15  <piscisaureus_>isaacs: I want to land asap, then add these things after that
16:23:29  * loladirojoined
16:23:31  <isaacs>piscisaureus_: stdio->customFds shim is not a big deal
16:23:39  <isaacs>since you can keep using customFds in 0.8+
16:23:41  <piscisaureus_>isaacs: no, I mean stdio: support
16:23:44  <isaacs>right
16:23:52  <isaacs>well, landing SOMETHING asap will be awesome.
16:24:10  <isaacs>stdio added later would be nice. probably can get in before 0.12, if not, then before 1.0 for sure
16:24:22  <piscisaureus_>isaacs: we can still easily make it before .12
16:24:35  <isaacs>k
16:24:40  <rje>piscisaureus_, visual studio, git, and python already done
16:24:43  <piscisaureus_>isaacs: we would also need an api to specify encodings for stdout etc
16:24:47  <piscisaureus_>since they are not streams
16:24:48  <isaacs>right
16:24:51  * amartensjoined
16:25:24  <piscisaureus_>rje: cool
16:25:38  <piscisaureus_>rje: my meeting is over in ~ 30 minutes
16:26:12  <piscisaureus_>rje: I'll take a look for you after that.
16:28:55  <rje>piscisaureus_, i'll have a machine clones for you and a ticket filed
16:30:46  <tjfontaine>isaacs: bnoordhuis didn't seem thrilled with the patch to float, my follow up would be if it's certain configs of tls 1.2 that are failing can't we disable those in 1.0.1?
16:32:31  * bnoordhuisquit (Ping timeout: 245 seconds)
16:34:28  * loladiroquit (Quit: loladiro)
16:34:59  <isaacs>ircretary: tell bnoordhuis ping
16:35:00  <ircretary>isaacs: I'll be sure to tell bnoordhuis
16:35:06  <isaacs>ircretary: thans
16:35:06  <ircretary>isaacs: I'm not sure what to do with that command. Ask for help in PM.
16:35:13  <isaacs>ircretary: thanks
16:35:13  <ircretary>isaacs: You're welcome :)
16:36:00  <piscisaureus_>isaacs: Ben is gone for a while. he'll be back later.
16:36:13  * piscisaureus_changed nick to piscisaureus
16:43:28  <isaacs>piscisaureus: thanks. we need to make a decision about openssl before i can release 0.10
16:43:42  <isaacs>removing aesni support in a stable branch will upset quite a few folks.
16:43:49  <piscisaureus>yeah
16:44:02  * loladirojoined
16:44:28  <piscisaureus>do we have a regression range for these spurious errors that make downgrading necessary
16:44:30  <isaacs>i seem to recall that he had some reasonable reasons for rolling back the openssl version, aprt from problematic configs with tls 1.2
16:44:47  <piscisaureus>I mean, maybe we can just undo a particular openssl patch or maybe they fixed it upstream already
16:44:52  <isaacs>piscisaureus: well, officially, it's abi compatibility
16:45:23  <piscisaureus>ah shit
16:45:48  <isaacs>piscisaureus: i think the issue is that sunos aesni support wasn't added until a bit later, but the later version has some bug in some tls 1.2 cases, and the version on master already fixed the bugs, but is a much different version we can't land in 0.10
16:46:08  <isaacs>so the question is if we float a patch on earlier openssl for aesni, or use the later openssl and work around the bugs.
16:46:21  <isaacs>perhaps, as tjfontaine suggested, by just disabling the features that are problematic.
16:46:28  <indutny>isaacs: its out
16:46:34  <indutny>oh
16:46:36  <isaacs>indutny: huh?
16:46:36  <indutny>forgot toscroll
16:46:41  <indutny>nvm :)
16:46:43  <indutny>aesni
16:46:43  <isaacs>heh :)
16:46:45  <indutny>is out
16:47:05  <isaacs>yeah, i can't release a stable version that makes openssl slower for a bunch of our users.
16:47:31  <indutny>ok, so we're going to revert it?
16:47:40  <indutny>or
16:47:44  <indutny>backport aesni
16:58:45  * bnoordhuisjoined
16:58:46  * csaohquit (Quit: csaoh)
16:59:21  <isaacs>indutny: yeah. i wanna get bnoordhuis's opinion, though.
16:59:44  <isaacs>i only really care about the bottom line effect
17:03:32  * AvianFlujoined
17:04:50  * brsonjoined
17:07:04  * bnoordhuisquit (Ping timeout: 252 seconds)
17:08:31  * inolenquit (Quit: Leaving.)
17:12:09  <piscisaureus>rje: got some credentials for me?
17:12:14  <piscisaureus>:)
17:12:44  <rje>piscisaureus: i'm a little slow, i couldn't clone the machine. i'm installing visual studio right now
17:12:59  <rje>i need 1/2 hour?
17:20:35  <piscisaureus>rje: ok, no problem. ping me when you're done
17:21:13  * bnoordhuisjoined
17:21:18  <rje>piscisaureus: thank you, issue logged https://github.com/joyent/libuv/issues/792
17:21:55  <bnoordhuis>isaacs: delayed pong. i'll be around in 45-60 minutes
17:22:21  <rje>piscisaureus: got a pgp key?
17:22:30  <isaacs>bnoordhuis: kk
17:22:46  <isaacs>bnoordhuis: re: aesni and the best way to unfuck openssl for v0.10
17:22:51  <isaacs>bnoordhuis: see ya in an hour :)
17:25:04  * bajtosquit (Quit: good night)
17:25:40  * bajtosjoined
17:30:11  * bajtosquit (Ping timeout: 255 seconds)
17:44:49  * kevinswiberjoined
17:48:46  * bnoordhuisquit (Ping timeout: 245 seconds)
17:52:40  * bajtosjoined
17:55:22  * inolenjoined
18:04:47  <rje>piscisaureus: ping
18:05:08  * bajtosquit (Quit: Nettalk6 - www.ntalk.de)
18:18:40  * bnoordhuisjoined
18:23:24  * c4miloquit (Remote host closed the connection)
18:23:48  <bnoordhuis>isaacs: re aesni, see my comment about it on the issue
18:23:50  * c4milojoined
18:24:06  <isaacs>bnoordhuis: right, so, i agree that stability is important. but speed is also important.
18:24:25  <isaacs>bnoordhuis: can we just disable the TLS 1.2 features that had problems wiht the newer openssl?
18:24:50  <bnoordhuis>no, because just the tls 1.2 thing wasn't it
18:24:52  <isaacs>i looked into floating that patch. i agree it's a bit of a mess.
18:25:11  <bnoordhuis>if you scroll up, you'll see that fedor and i discussed it this afternoon
18:26:07  <isaacs>bnoordhuis: you got a tldr version, or at least the times when you were discussing?
18:26:13  <isaacs>bnoordhuis: or a word to scroll back and search for?
18:26:22  <isaacs>irssi reads more irc than i do :)
18:27:21  <bnoordhuis>the tl;dr is that i wasn't able to conclusively isolate whatever is causing those ssl servers to trip over
18:27:26  <isaacs>i see
18:27:33  <bnoordhuis>they just stop replying after the initial handshake
18:27:42  <isaacs>well, that's kinda crapy
18:27:58  <bnoordhuis>i did the principle of exclusion thing with protocols and extensions
18:27:59  <isaacs>and the version on master works? or is that broken there as wel?
18:28:15  <bnoordhuis>no, master is affected as well
18:28:20  <isaacs>hm. ok.
18:28:28  <isaacs>have you reported this upstream?
18:28:34  <bnoordhuis>but i undid the downgrade there because we'll have to face it someday anyway
18:28:40  <isaacs>of course.
18:28:40  * c4miloquit (Ping timeout: 256 seconds)
18:28:45  <bnoordhuis>what upstream?
18:28:49  <isaacs>openssl
18:28:58  <bnoordhuis>no, because i'm pretty sure the bug is not in openssl
18:28:59  <isaacs>i guess, i should ask, is openssl the culprit, or are we?
18:29:02  <isaacs>ah, ok
18:29:09  <bnoordhuis>and not in node either
18:29:13  <isaacs>?
18:29:19  <isaacs>where, then?
18:29:37  <bnoordhuis>those servers/ssl terminators we're talking to
18:29:47  <bnoordhuis>this is not the first time i've seen such behavior
18:29:49  <isaacs>right.. but... *something* we're doing is tripping them
18:30:05  <isaacs>can you just hit them directly using the openssl cli utils?
18:30:36  <kellabyte>I'm not so clear on what uv_queue_work() does from the website description, is it running whats queued on a thread from some thread pool and then the callback is called on the event loop thread?
18:30:44  <bnoordhuis>i can with 0.9.8
18:31:20  <bnoordhuis>kellabyte: that's exactly what it does
18:31:24  <piscisaureus>rje: hey
18:31:33  <isaacs>bnoordhuis: you mean, you can reprduce the error with 0.9.8, or those sites work using 0.9.8?
18:31:47  <bnoordhuis>isaacs: they work with 0.9.8 (and 1.0.0)
18:32:02  <isaacs>right, but using the openssl cli fails using 1.0.1?
18:32:04  <rje>piscisaureus: hey, got a gpg key i can use to send you the credentials?
18:32:10  <bnoordhuis>i haven't tried with 1.0.1 because i couldn't get that to compile
18:32:18  <isaacs>oic
18:32:22  <kellabyte>bnoordhuis: ah! :) how big is that thread pool?
18:32:33  <piscisaureus>rje: you want to gpg sign or encrypt it?
18:32:41  <rje>piscisaureus: encrypt
18:32:56  <bnoordhuis>kellabyte: 4 threads right now on unix (configurable through an env var), 512 threads (i think) on windows
18:33:20  <bnoordhuis>kellabyte: i have an auto-scaling thread pool sitting in a branch but performance is hit and miss
18:33:24  <bnoordhuis>hence the current fixed size
18:33:33  <piscisaureus>rje: https://gist.github.com/piscisaureus/5483672
18:33:55  <bnoordhuis>isaacs: re openssl cli, i intend to fix the gyp file so it knows how to build the cli programs
18:34:08  <kellabyte>bnoordhuis: cool. this gives me enough to try some things out and experiment. do you know the env var for unix?
18:34:15  <bnoordhuis>should make it easier to build them in a non-ad-hoc fashion
18:34:20  <isaacs>kewl
18:34:55  <bnoordhuis>kellabyte: it's unimaginatively called UV_THREAD_POOL_SIZE
18:35:24  <bnoordhuis>kellabyte: it's capped in the range 1-128 right now btw
18:35:50  <bnoordhuis>okay, family time again
18:35:56  <kellabyte>thanks bnoordhuis you rock!
18:37:35  <rje>piscisaureus: details are in that gist reply
18:38:53  <rje>piscisaureus: lemme know if you have any issues
18:39:08  <isaacs>bnoordhuis: (whenever you get back) So, either we need to get aesni on our current openssl, or we need to revert that change in v0.10 and accept the bug for a bit longer.
18:39:37  <isaacs>bnoordhuis: i'd like to drop a new 0.10 soon (like, tomorrow mornevening) but we can push it out further if necessary.
18:39:40  * c4milojoined
18:40:28  * bnoordhuisquit (Ping timeout: 257 seconds)
18:42:10  <piscisaureus>rje: yeah, I can't decrypt...
18:42:21  <piscisaureus>rje: just sending an email is probably just easier :)
18:44:14  * benoitcquit (Excess Flood)
18:45:56  <rje>piscisaureus: odd. i tried it a diffetn way your key in unuseable
18:48:02  * benoitcjoined
18:56:16  <trevnorris>hola
19:03:40  * kevinswiberquit (Remote host closed the connection)
19:09:45  * defunctzombiechanged nick to defunctzombie_zz
19:17:04  * kevinswiberjoined
19:30:01  * stolsmajoined
20:01:26  * defunctzombie_zzchanged nick to defunctzombie
20:05:18  * timoxleyjoined
20:05:42  * timoxleyquit (Client Quit)
20:06:59  * bnoordhuisjoined
20:07:12  <piscisaureus>isaacs: do you know why we don't .end() the child process' stdin when the user uses exec() ?
20:07:36  <bnoordhuis>back
20:08:35  <isaacs>piscisaureus: because it returns the child process, i though
20:08:41  <isaacs>piscisaureus: but i dunno
20:08:44  * isaacsaway to tacos!
20:08:56  <trevnorris>aah. suddenly having "Merge pull request" buttons on the page freaked me out.
20:09:05  <tjfontaine>heh
20:09:19  <trevnorris>bnoordhuis: I dedicate this to you: http://git.io/-mjzBw
20:09:21  <tjfontaine>don't succumb to the temptress of the green button
20:10:10  <trevnorris>tjfontaine: there's also another button at the bottom of the PR. I don't like it close to anything else I might possibly click on.
20:10:20  <trevnorris>going to write a script to remove them.
20:10:46  <tjfontaine>close them all, then we won't have any more work to worry about
20:10:54  <trevnorris>lol
20:11:47  <bnoordhuis>trevnorris: very good
20:12:06  <trevnorris>:)
20:13:26  <bnoordhuis>trevnorris: you don't have to static_cast to void* though
20:14:06  <trevnorris>bnoordhuis: so you recommend leaving it as (void *) and (const void *)?
20:14:13  * abraxasjoined
20:14:36  <trevnorris>or just that it doesn't have to be cast at all?
20:15:23  <bnoordhuis>trevnorris: the latter, doesn't need a cast at all
20:15:36  <trevnorris>coolio. thanks.
20:18:13  <bnoordhuis>so v8 is getting a nativ typed array implementation
20:18:33  * abraxasquit (Ping timeout: 240 seconds)
20:18:37  <tjfontaine>with the memset and memcpy defaults?
20:18:44  <bnoordhuis>yeah
20:18:58  <bnoordhuis>it's hidden behind --harmony-typed-arrays right now
20:19:00  <tjfontaine>will it be backed by something that doesn't do that?
20:19:20  <bnoordhuis>i don't understand the question
20:19:36  <tjfontaine>I mean is there a base type that is just like what we do for buffers? :)
20:19:39  <isaacs>clicking the green button = immediate removal of commit bit
20:19:42  <bnoordhuis>oh, like that
20:19:45  * fnj_afkquit (Quit: fnj_afk)
20:19:47  * isaacs&
20:19:48  <LOUDBOT>AND YOU CAN SAVE A LOT OF TIME IF YOU USE THE SAME BRUSH
20:19:53  <bnoordhuis>well, they're backed by arraybuffers
20:20:25  <bnoordhuis>and you can create a typed array that's a view of (part of) that arraybuffer
20:20:44  <tjfontaine>nod
20:21:09  <bnoordhuis>also, there's a nasty out-of-bounds bug in String.fromCharChode() in 3.18
20:22:57  <trevnorris>awesome. tampermonkey script now removes "Merge PR" button from github. :)
20:23:15  <bnoordhuis>$ out/Release/node -e 'var s = ""; for (;;) s += String.fromCharCode(Math.random() * 26 + 0xffffffff | 0)'
20:23:19  <bnoordhuis>Segmentation fault: 11
20:23:27  <tjfontaine>ouch
20:25:33  <bnoordhuis>tjfontaine: what was the deal with the aesni?
20:25:40  * bnoordhuisis scanning the logs
20:26:01  <bnoordhuis>that should read 'the aesni patch'
20:26:59  <tjfontaine>bnoordhuis: I don't have an issue, it's depressing that the aesni patch doesn't work with .0f
20:28:03  <tjfontaine>bnoordhuis: but I don't really think we can roll back to 1.0.0 for 0.10, I think we just need to try and pick a client configuration on our end that works for negotiating
20:28:04  <bnoordhuis>oh, right. yeah, agreed
20:29:02  <bnoordhuis>however, finding that particular configuration is a challenge
20:29:28  <tjfontaine>who/what are we having problems interacting with?
20:29:46  <bnoordhuis>there have been several test cases posted in the bug tracker
20:29:55  <bnoordhuis>iis servers, a resin server from conde nast, etc.
20:30:25  <bnoordhuis>of course you don't know if you're actually talking to the server or to a ssl terminator
20:30:42  * jmar777quit (Remote host closed the connection)
20:31:24  <tjfontaine>I would imagine at least for condenast it's a terminator
20:38:57  <trevnorris>bnoordhuis: wtf. do you know why the "+ 0xffffffff" is necessary? the code is functionally the same as "(Math.random() * 26 | 0) - 1"
20:38:57  <trevnorris>but it doesn't segfault on that.
20:50:50  <bnoordhuis>trevnorris: it's a bug in the asm the v8's x64 lithium codegen generates
20:51:21  <trevnorris>ah, whoa.
20:53:49  <bnoordhuis>trevnorris: if you want to know the hairy details, v8 didn't sign extend a 32 bits integer when converting it to 64 bits
20:55:51  <tjfontaine>oh that's a cute little bug I just found in our tls implementation :)
20:55:57  <tjfontaine>or
20:56:13  <tjfontaine>ok no this is the error I wanted to see
20:59:31  <trevnorris>interesting. type casting can lead to all sorts of fun things.
21:12:02  <MI6>joyent/node: Ben Noordhuis master * b5c1721 : tools: fix test.py after v8 upgrade (+2 more commits) - http://git.io/wkNqpQ
21:12:45  <bnoordhuis>^ a `make distclean` may be in order. some v8 functions have __attribute__((always_inline)) now and gyp doesn't seem to recompile all affected files
21:14:11  <tjfontaine>bnoordhuis: so, I meant to talk to you, these prefix/destdir changes we did to makefile have an interesting side effect with the `pkg` rule, if config.mk exists you end up getting a weird ass prefix set since pkg re-invokes configure, what's the right way to solve that?
21:14:57  <bnoordhuis>um
21:15:41  <tjfontaine>it's weird to see it happen, and then only explanation i have is that config.mk with a PREFIX exists before you invoke `make pkg`
21:16:44  <bnoordhuis>i guess the vars in config.mk should use ?= rather than =
21:17:22  <bnoordhuis>hm no, that probably won't make a difference
21:20:33  <bnoordhuis>tjfontaine: --prefix=$(PKGDIR)/32$(PREFIX) <- i'm somewhat surprised that worked at all
21:20:43  <bnoordhuis>seeing that PKGDIR==out/bla
21:21:38  * rendarquit
21:21:47  <bnoordhuis>that looks like it should be --prefix=/usr/lib32 or whatever and then $(MAKE) install DESTDIR=out/bla
21:23:28  <tjfontaine>ya
21:23:50  <tjfontaine>ok I will make the changes
21:25:47  * defunctzombiechanged nick to defunctzombie_zz
21:27:33  * sgallaghquit (Remote host closed the connection)
21:35:08  * stolsmaquit (Ping timeout: 245 seconds)
21:35:17  * trevnorrisquit (Ping timeout: 258 seconds)
21:36:25  * kevinswiberquit (Remote host closed the connection)
21:39:22  <MI6>joyent/node: Andrew Paprocki master * c081809 : vm: add support for timeout argument - http://git.io/uWPsQw
21:40:08  * trevnorrisjoined
21:41:10  <MI6>nodejs-master: #187 UNSTABLE smartos-x64 (1/585) windows-ia32 (144/585) windows-x64 (144/585) http://jenkins.nodejs.org/job/nodejs-master/187/
21:54:01  <trevnorris>wow. now I can see why it takes a while for an issue response. didn't realize github would be sending me an update for every issue.
21:58:44  <bnoordhuis>trevnorris: welcome to the club. i have 210 unread emails as of this writing
21:59:12  <trevnorris>... um. yeah. glad I setup a github specific filter before today.
21:59:51  <tjfontaine>I was getting 2 of everything when I added the nodejs-jenkins account
22:00:24  <trevnorris>heh, that must have been fun.
22:02:16  * perezdjoined
22:02:30  * perezdquit (Client Quit)
22:08:36  <indutny>trevnorris: welcome
22:09:01  <trevnorris>indutny: thank you :)
22:10:28  <MI6>nodejs-master: #188 UNSTABLE smartos-x64 (2/586) windows-ia32 (145/586) windows-x64 (145/586) linux-ia32 (1/586) http://jenkins.nodejs.org/job/nodejs-master/188/
22:12:31  * piscisaureusquit (Read error: Operation timed out)
22:12:51  * loladiroquit (Quit: loladiro)
22:13:22  <isaacs>bnoordhuis: still around?
22:13:51  <isaacs>bnoordhuis: so, i'm going ot revert 4fdb8ac and we can investigate these bugs further.
22:14:12  <isaacs>but apparently 4fdb8ac breaks the build on windows, as well as making aesni go away
22:14:24  <bnoordhuis>breaks the build how?
22:14:36  <isaacs>bnoordhuis: ask piscisaureus
22:14:46  <isaacs>haven't tested it yet myself
22:14:48  <bnoordhuis>no aesni is not a good reason to undo the downgrade
22:15:20  * indutny&
22:15:21  <LOUDBOT>NO ONE MISSES PERL.
22:15:23  <isaacs>i disagree. if we can't float a patch to do it, then we ought to stay where we are.
22:15:43  <bnoordhuis>tell me why you think that is and i will tell you why you're wrong
22:15:54  * stagasquit (Read error: Connection reset by peer)
22:15:55  <isaacs>because it's a performance regression on sunos
22:16:11  <bnoordhuis>so is crypto in general in v0.10
22:16:24  <isaacs>ok. and we need to fix that, also
22:16:41  <bnoordhuis>who is going to do that?
22:16:52  <bnoordhuis>i don't have time for it
22:16:56  <isaacs>ok
22:17:15  <isaacs>but my point is that the existence of another bug is not really relevant regarding this one.
22:18:16  <bnoordhuis>my point is that performance regressions aren't relevant either
22:18:25  <bnoordhuis>it's already a lot slower than v0.8
22:18:39  <bnoordhuis>and to boot it doesn't interoperate with websites that used to work
22:18:41  <isaacs>how does a regression in crypto.Hash have anything to do with a regression in https servers?
22:18:42  * octetcloudquit (Ping timeout: 252 seconds)
22:19:35  <bnoordhuis>isaacs: undo the downgrade once you've established what the cause is, not before
22:19:57  <tjfontaine>shouldn't that have been what happened before we downgraded?
22:20:21  <bnoordhuis>i spent several hours on that to no avail
22:20:23  <isaacs>bnoordhuis: i'd like to establish whatthe cause is before we give up aesni.
22:20:37  <isaacs>bnoordhuis: ok. i'm hearing that you do not want to keep working on tracking down the root cause of this.
22:20:51  <isaacs>bnoordhuis: and that you want node's tls client to work properly with IIS servers.
22:20:56  <isaacs>both of those are respectable goals.
22:21:50  <bnoordhuis>so, i think i understand why you want aesni back
22:21:58  * loladirojoined
22:22:09  <bnoordhuis>joyent has a couple of big customers who are very happy with the aesni support, right?
22:22:32  <isaacs>yes, and joyent IS a big customer who's very happy with aesni support.
22:22:59  <bnoordhuis>right. so this boils down to corporate interests
22:23:06  <isaacs>also, personal interests.
22:23:08  <tjfontaine>s_client from 0.10.5 branch does hang as well, this should be sent upstream to openssl
22:23:25  <bnoordhuis>tjfontaine: hangs with what server?
22:23:49  <tjfontaine>condenast, but works if I specify -tls1
22:24:16  <tjfontaine>we just need to specify our default client negotiation to tls1
22:25:22  <tjfontaine>all I did to test was: `cd deps/openssl/openssl/ && ./configure && make && ./apps/openssl s_client -connect user-service.condenastdigital.com:443`
22:25:37  <tjfontaine>that hangs, add -tls1 it works
22:25:44  <bnoordhuis>what happens when you pass -tls1_1 or -tls1_2?
22:26:21  <tjfontaine>_2 hangs, _1 2899647084:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:337:
22:27:46  * qardjoined
22:28:05  <bnoordhuis>one sec, let me verify that on another machine
22:28:31  <trevnorris>fwiw, the new buffer changes are helping crypto perf: http://git.io/26JQFQ
22:29:00  <isaacs>trevnorris: kewl
22:29:46  <trevnorris>isaacs: it's because crypto uses SlowBuffer internally. have a couple other tricks that should bring that number closer.
22:30:13  <isaacs>trevnorris: yeah, or at least, we ought to use slab allocator in crypto stuff in 0.10
22:30:37  <bnoordhuis>it's weird. i got tons of linker errors when i tried to build openssl standalone yesterday. after the down-then-upgrade, it works :-/
22:30:38  <isaacs>have it pass Buffers rather than SlowBuffers, and get rid of the string-to-buffer conversions in JS
22:30:53  <isaacs>bnoordhuis: it's the gnomes
22:30:53  <trevnorris>isaacs: good idea, since new buffers won't be backported.j
22:31:21  <trevnorris>isaacs: though, there is one thing. right now every ".update()" adds another Buffer(). that's freaka slow.
22:31:44  <trevnorris>isaacs: don't know how you'd think about this, but created a quick patch where the value is stored as a string until .digest() is run.
22:31:50  <trevnorris>massive perf gains.
22:32:00  <isaacs>trevnorris: "stored value as a string"?
22:32:19  <isaacs>trevnorris: are we talking about hashing, or ciphering?
22:32:31  <trevnorris>hashing.
22:33:06  <trevnorris>isaacs: but looks like Cipher.protoype.update does the same thing.
22:33:24  <isaacs>right, but... you mean you end up keeping the whole thing in memroy?
22:33:37  <isaacs>or that you pass the bytes to openssl from the string without converting?
22:33:54  <trevnorris>well, for hashes, it's not useful until you run .digest() right?
22:34:08  <trevnorris>so you store as a string, then on digest your run toBuf() once.
22:34:32  <trevnorris>and as a string you just append on every update (e.g. this._msg += data)
22:34:44  <trevnorris>that is, if the data is a string.
22:35:35  <trevnorris>there is no regression for hash if the data is a Buffer. it's for strings that's killing it.
22:36:21  * wolfeidauquit (Remote host closed the connection)
22:36:34  <tjfontaine>confirmed the same results on smartos as I did on my laptop, re: openssl 1.0.1
22:37:00  <tjfontaine>fwiw I worked out of the v0.10.5-release branch
22:37:04  * piscisaureus_joined
22:38:49  <bnoordhuis>hrm, i'm starting to doubt myself now. bssdev.sharepoint.com also works with -no_tls1_2
22:41:36  <tjfontaine>I'm redoing the test now with the config we use for node
22:44:14  <bnoordhuis>well, at least i'm not totally crazy
22:44:33  <bnoordhuis>conde nast with SSL_OP_NO_TLSv1_2 still reliably hangs
22:45:07  <bnoordhuis>i guess the question then becomes: what does -no_tls1_2 do that SSL_OP_NO_TLSv1_2 doesn't
22:45:13  <isaacs>trevnorris: that sucks a lot if you're computing a hash of something large, though, right?
22:45:34  <isaacs>trevnorris: say, like, a 30gb fiel or something
22:46:07  <trevnorris>isaacs: the work around is to check the length on update() and if it's larger than N, run it.
22:46:14  <trevnorris>still faster than creating a buffer every call.
22:46:18  <tjfontaine>hmm I guess I can't just use the config
22:46:33  <isaacs>trevnorris: that smells like the wrong approach to me. it's nice that it works, and we could use that otimization, but it's not fully "correct" as i'd like.
22:46:54  <isaacs>trevnorris: sounds like it just establishes that new Buffer(string,"utf8") is definitely the killer, so we should avoid that.
22:47:05  <isaacs>trevnorris: i'm looking into this now.
22:47:14  <isaacs>can basically just copy the same approach StreamWrap uses, looks like.
22:47:24  <trevnorris>eh?
22:48:24  <isaacs>trevnorris: ie, we adda WriteString method, then pass strings through to that
22:48:33  <isaacs>and it'll handle them as strings
22:49:12  <trevnorris>ah, so go around the "create a new buffer size N and write the bits to it" step? that would help.
22:49:37  * octetcloudjoined
22:50:16  * c4miloquit (Remote host closed the connection)
22:50:42  * c4milojoined
22:50:53  <isaacs>yes
22:50:59  <isaacs>that's roughly 100% of our regression.
22:51:02  <isaacs>(at this point)_
22:51:18  <isaacs>the other bit was unnecessarily creating the stream state objects, which LazyTransform fixes.
22:51:24  * c4miloquit (Read error: Connection reset by peer)
22:51:46  * c4milojoined
22:57:45  * wolfeidaujoined
22:58:33  * c4miloquit (Remote host closed the connection)
22:58:59  * c4milojoined
22:59:29  <bnoordhuis>tjfontaine: node doesn't seem to do anything different from s_client. it still hangs though
23:00:26  <tjfontaine>bnoordhuis: so what does -tls1 do? I had tried setting secureProtocol to tlsv1_client_method that didn't seem to have an effect
23:00:47  <tjfontaine>also 3 or 23
23:01:22  <bnoordhuis>it sets SSL_OP_NO_TLSv1
23:01:24  <bnoordhuis>which works
23:01:37  <bnoordhuis>but is not really an option, i'd say
23:01:59  <bnoordhuis>(which works == works in node)
23:02:01  <tjfontaine>-tls1 sets NO_TLSv1? that seems counter intuitive
23:03:11  * perezdjoined
23:03:25  * perezdquit (Client Quit)
23:03:39  <bnoordhuis>sorry, misread that. -tls1 set tlsv1_server_method, not tlsv1_client_method
23:03:43  <bnoordhuis>*sets
23:03:48  <tjfontaine>oh
23:03:52  * c4miloquit (Ping timeout: 272 seconds)
23:05:15  <tjfontaine>have you tried setting server method in your tls.connect example?
23:05:24  <trevnorris>isaacs: also, if they're hashing a large file, shouldn't the file be read in as a Buffer?
23:05:26  <tjfontaine>./node t.js
23:05:27  <tjfontaine>Assertion failed: (handle_->Get(String::New("error"))->BooleanValue() == false), function ClearError, file ../src/node_crypto.cc, line 967.
23:05:42  <trevnorris>isaacs: if they're reading it in as a string, just to convert it to a buffer again, they're just asking for pain.
23:06:09  <isaacs>trevnorris: well, you could have a very long stream of strings
23:06:21  <isaacs>trevnorris: exactly the point :)
23:06:30  <isaacs>trevnorris: people are entering that world of pain
23:07:14  <trevnorris>isaacs: yeah. i'm just missing in what use case would someone have MB worth of strings, where they weren't first a Buffer.
23:07:26  <isaacs>trevnorris: don't know
23:07:34  <isaacs>it's somewhat of an academic consideration :)
23:07:45  <isaacs>all i know is that people are feeding strings into Hash, and getting extremely bad performance out of it
23:08:16  <trevnorris>yeah. now that I think about it, I don't really care. It's much more important that Buffers perform well.
23:14:12  * bnoordhuisquit (Ping timeout: 245 seconds)
23:15:37  <tjfontaine>ya ok a clean build still sets that
23:15:47  <tjfontaine>s/sets/hits/
23:16:53  <tjfontaine>isaacs: so it's interesting that this raises an ECONNRESET even though the connection is still alive
23:17:21  <isaacs>tjfontaine: i think there are some cases where we simulate a ECONNRESET when the tls blows up
23:17:24  <tjfontaine>the read()==0 implicit reset is an interesting mechanism
23:17:31  <isaacs>yeah...
23:17:39  <isaacs>i don't remember how that works
23:17:39  <tjfontaine>well this specifically a read() returning 0
23:17:42  <isaacs>probably that means it's too clever
23:17:49  <tjfontaine>right
23:18:04  <tjfontaine>I mean this should manifest in a way similar to s_client I think
23:25:32  * hzquit (Disconnected by services)
23:25:36  * hzjoined
23:31:49  * defunctzombie_zzchanged nick to defunctzombie
23:35:45  * kazuponjoined
23:41:35  * kazupon_joined
23:41:37  * mikealjoined
23:42:08  * kazuponquit (Read error: Connection reset by peer)
23:42:20  <isaacs>trevnorris: well, this is odd...
23:42:21  * c4milojoined
23:42:22  <isaacs>trevnorris: https://gist.github.com/isaacs/5485669
23:42:48  <isaacs>whipped up a little StreamWrap look-alike for crypto.hash
23:44:16  <trevnorris>isaacs: did you also whip up the hash-stream-throughput?
23:44:25  <isaacs>yeah, one sec
23:44:32  <isaacs>trevnorris: https://github.com/isaacs/node/commit/crypto-fix-perf
23:47:02  <trevnorris>isaacs: GetStorageSize looks similar to Buffer::ByteLength.
23:47:16  * piscisaureus_quit (Ping timeout: 246 seconds)
23:47:17  <isaacs>trevnorris: it's less exact, though
23:47:31  <isaacs>trevnorris: it only guarantees to be big enough, not exactly the size
23:50:33  * inolen1joined
23:50:43  <trevnorris>isaacs: no need to support base64? or am I reading the encoding types incorrectly?
23:50:46  * inolenquit (Read error: Connection reset by peer)
23:51:45  * dsantiagoquit (Quit: Computer has gone to sleep.)
23:53:00  * dsantiagojoined
23:53:27  * piscisaureus_joined
23:53:38  <trevnorris>isaacs: oop. nm. just read the docs. :)
23:54:03  <isaacs>trevnorris: we could of course do base64 decoding in C++ as well.
23:54:32  <isaacs>trevnorris: but this is just testing the effect of new Buffer on ascii/utf data
23:54:40  <isaacs>trevnorris: and it's much less than i would have thought!
23:54:50  <trevnorris>well, docs actually say only ascii, utf8 and binary are accepted.
23:55:03  <trevnorris>anyways, yeah.
23:55:14  * trevnorrisfocuses on the more important point
23:56:12  * jmar777joined
23:58:09  * hzquit (Read error: Connection reset by peer)
23:58:57  <trevnorris>isaacs: what's the "storage_size > INT_MAX" for?
23:59:13  <trevnorris>I think the ->ToString() would fail if it were that large.