00:01:30  * dapquit (Quit: Leaving.)
00:08:55  * indexzerojoined
00:09:38  <bnoordhuis>#8 0x000035faeb429d6e in hello (who=...) at tmp/hello.js:4
00:09:38  <bnoordhuis> __function = {<No data fields>}
00:09:38  <bnoordhuis> __context = {<No data fields>}
00:09:50  <bnoordhuis>^ getting closer with gdbjit
00:10:20  <ryah>bnoordhuis: you should have mjr test it
00:10:29  <ryah>bnoordhuis: that commit
00:10:40  <ryah>(after he upgrades to v0.8)
00:10:59  <bnoordhuis>ryah: the gdbjit thing?
00:11:08  <ryah>handlescope thing
00:11:14  <bnoordhuis>oh, that - sure
00:11:17  <ryah>seems like a good idea though
00:11:37  <ryah>kind of worried there may be some strange memory leaks though
00:11:49  <bnoordhuis>yeah, me too. that's why i haven't landed it yet
00:12:50  * xaqjoined
00:13:06  <bnoordhuis>one more gdbjit thing and then i'll get back to work
00:13:08  <bnoordhuis>(gdb) f 8
00:13:08  <bnoordhuis>#8 0x000035faeb429d6e in hello (who=...) at tmp/hello.js:4
00:13:08  <bnoordhuis>4 print(prefix, who, suffix);
00:13:12  <bnoordhuis>^ how awesome is that?
00:13:41  <bnoordhuis>source level js debugging in gdb - the dream comes true *snif*
00:13:44  * piscisaureus_joined
00:13:45  <ryah>gdb marcos?
00:13:53  <bnoordhuis>ryah: no, gdbjit integration
00:13:58  <ryah>oh, nice
00:14:16  <bnoordhuis>v8 had it but it was completely broken, i'm patching it up
00:14:17  <ryah>mraleph did some work on that a long time ago
00:14:23  <ryah>oh great
00:14:26  <ryah>that's really nice
00:14:51  <piscisaureus_>hello
00:14:53  <ryah>as much as i love dap's work - mdb is not accessable
00:14:57  * piscisaureus_changed nick to piscisaureus
00:15:03  <ryah>(usually)
00:19:53  <bnoordhuis>piscisaureus: sup bertje?
00:20:01  <bnoordhuis>still at oscon?
00:20:04  <piscisaureus>yep
00:20:09  <ryah>piscisaureus: you coming to sf?
00:20:13  <piscisaureus>no
00:20:20  <piscisaureus>I am flying back to ams on saturday
00:20:36  <ryah>lame
00:20:42  <ryah>you should have come visit
00:21:01  <piscisaureus>ryah: when did you last visit amsterdam?
00:21:04  <piscisaureus>:-)
00:21:40  <ryah>:)
00:21:55  <piscisaureus>I'm bad at planning
00:21:59  <piscisaureus>and to be honest I hate flying
00:21:59  * xaqquit (Remote host closed the connection)
00:22:19  <piscisaureus>In theory there should be interesting people here
00:22:24  <piscisaureus>like rob pike or something
00:22:38  <piscisaureus>obviously this thing is so massive that these people are impossible to find or talk to
00:26:39  <piscisaureus>bnoordhuis: so did you fix the sink?
00:27:19  <piscisaureus>http://www.youtube.com/watch?v=9ycQ_oca9HQ&feature=related
00:27:25  <mitsuhiko>anyone any ideas why valgrind on os x would not close for a libuv executable?
00:27:34  <mitsuhiko>piscisaureus: how can you hate flying? O_O
00:30:04  <bnoordhuis>piscisaureus: i gave my SO instructions
00:30:23  <bnoordhuis>mitsuhiko: boring, cramped, too long
00:30:50  <mitsuhiko>bnoordhuis: i suspect that's not the reply to my valgrind question :)
00:30:56  <bnoordhuis>heh, no :)
00:31:08  <bnoordhuis>you mean valgrind hangs?
00:31:13  <mitsuhiko>pretty much, yes
00:31:38  <bnoordhuis>the os x port of valgrind is kind of a best effort, i believe
00:31:43  <bnoordhuis>and not entirely bug free
00:31:54  <bnoordhuis>have you tried it on linux?
00:31:58  <mitsuhiko>not yet, no
00:32:06  * EhevuTovquit (Quit: This computer has gone to sleep)
00:32:16  <mitsuhiko>since vagrant/virtualbox randomly kernel panic my mac i try to avoid booting that machine :)
00:32:38  <bnoordhuis>mitsuhiko: you could try tracing valgrind with dtrace/dtruss
00:32:43  <bnoordhuis>that's kind of meta though
00:32:55  <bnoordhuis>and probably dog slow
00:32:59  <mitsuhiko>bnoordhuis: a) yes, it's meta, b) it does not work. valgrind just exists
00:33:04  <mitsuhiko>*exits
00:33:27  <mitsuhiko>i guess i could dtrace it instead of dtruss
00:34:36  <mitsuhiko>bnoordhuis: dtrace says *nothing*
00:34:48  <mitsuhiko>as far as dtrace is concerned that thing is not doing anything
00:35:04  <mitsuhiko>actually: 2012-07-20 01:33:23.435 sample[90831:707] Failed to create CSSymbolicatorRef for memcheck-amd64-darwin
00:35:20  <bnoordhuis>i have no idea what that means :/
00:35:28  <bnoordhuis>may i suggest valgrind on linux?
00:35:48  <mitsuhiko>yes. i'm doing that now
00:36:23  * joeandaverdequit (Quit: joeandaverde)
00:42:08  * avalanche123quit (Ping timeout: 245 seconds)
00:44:33  * avalanche123joined
00:49:30  * mjr_quit (Quit: mjr_)
00:49:58  * piscisaureusquit (Ping timeout: 240 seconds)
00:50:52  * xaqjoined
00:51:42  * piscisaureus_joined
00:52:07  * bbenviejoined
00:54:42  * benviequit (Ping timeout: 244 seconds)
00:56:55  * blackorzar__changed nick to blackorzar
00:59:59  * piscisaureus_quit (Ping timeout: 248 seconds)
01:08:36  <ryah>isaacs: what about kicking the url and punycode libraries out of core?
01:08:47  <ryah>as long as we publish them in a npm module
01:08:51  <ryah>i think it's okay
01:09:07  <ryah>can print a message that says "run npm install url" to get this
01:09:14  <ryah>when people try to require
01:09:56  <ryah>zlib too for that matter
01:10:02  <ryah>querystring
01:10:32  <TooTallNate>^ sounds like sys all over again :\
01:10:47  <ryah>yeah .. maybe
01:11:02  <mmalecki>I'm 'meh' on everything except zlib, where I'm -1
01:11:17  <mmalecki>because it requires compilation and that'll cause problems on some OSes
01:11:24  <ryah>yeah, agre
01:11:30  <ryah>forgot
01:11:39  * c4milojoined
01:11:52  <ryah>but it's stupid that node has punycode
01:12:02  <ryah>and it's there to support the url module
01:12:10  <ryah>which itself it questionable
01:12:44  * xaqquit (Remote host closed the connection)
01:13:17  <ryah>the url module was added because i wanted to support require(url)
01:13:23  <mmalecki>url is actually used by http now
01:13:24  <ryah>(loading over http)
01:13:33  <ryah>it shouldnt be
01:13:51  <mmalecki>http.request(url)
01:14:11  <ryah>ah..
01:14:14  <ryah>god
01:15:17  * xaqjoined
01:17:31  * ryahquit (Quit: leaving)
01:17:32  * xaqquit (Remote host closed the connection)
01:18:52  <bnoordhuis>very convenient though
01:43:16  * abraxasjoined
01:46:36  * lohkeypart
01:47:24  * lohkey_joined
01:47:38  * lohkey_quit (Client Quit)
01:53:51  <tjfontaine>there's always going to be a struggle between micro and monolith style frameworks, even with it being separate alot of people already assume the express stack when they hear nodejs
01:55:52  <tjfontaine>separating things that are currently in core out to shipped npm modules can make it easier to fix environments for people without as much hassle
01:56:50  <tjfontaine>but I think before you can do that you need to be able to do versioned module loading
01:57:35  <tjfontaine>(to the point where you could have multiple versions of the same module loaded at the same time)
01:58:38  <tjfontaine>I know to a point that exists now
02:33:32  * mmaleckichanged nick to mmalecki[sleep]
02:34:21  <bnoordhuis>ircretary: tell dap can you review https://github.com/bnoordhuis/v8/commit/f7c49f1 ?
02:34:21  <ircretary>bnoordhuis: I'll be sure to tell dap
02:34:35  * mmalecki[sleep]changed nick to mmalecki[zzz]
02:34:42  * TooTallNatequit (Quit: Computer has gone to sleep.)
02:40:25  <bnoordhuis>meta-problem - how do you debug a debugger?
02:47:56  * beachdogjoined
02:48:11  * beachdogquit (Client Quit)
02:49:36  * piscisaureus_joined
03:01:05  * lohkeyjoined
03:05:19  * kerrickquit (Read error: No route to host)
03:06:36  * mikealquit (Quit: Leaving.)
03:16:45  * piscisaureus_quit (Read error: Connection reset by peer)
03:21:41  * blackorzarquit (Ping timeout: 246 seconds)
03:35:12  * c4miloquit (Remote host closed the connection)
03:39:59  * bnoordhuisquit (Ping timeout: 248 seconds)
03:49:36  * TooTallNatejoined
04:00:48  * perezdquit (Quit: perezd)
04:10:15  * perezdjoined
04:12:07  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
04:27:00  * blackorzarjoined
04:31:47  * blackorzar_joined
04:33:48  * blackorzarquit (Ping timeout: 245 seconds)
04:37:06  * lohkeyquit (Quit: lohkey)
04:38:06  * blackorzar_quit (Ping timeout: 260 seconds)
04:57:36  * indexzeroquit (Quit: indexzero)
05:00:31  * blackorzarjoined
05:33:22  * AlbireoX_quit (Read error: Connection reset by peer)
05:34:28  * AlbireoX_joined
05:42:22  * avalanche123quit (Quit: Computer has gone to sleep.)
05:43:39  * perezdquit (Quit: perezd)
05:44:19  * EhevuTovjoined
06:41:01  * paddybyersjoined
06:43:43  * AvianFluquit (Quit: Leaving)
07:03:28  * stephankquit (Quit: *Poof!*)
07:16:28  * EhevuTovquit (Quit: This computer has gone to sleep)
07:16:43  * rendarjoined
07:27:43  * blackorzarquit (Ping timeout: 255 seconds)
07:27:46  * blackorzar_joined
07:29:22  * blackorzarjoined
07:31:56  * blackorzar_quit (Ping timeout: 246 seconds)
07:45:28  * rphillipsquit (Ping timeout: 245 seconds)
07:45:58  * pquernaquit (Ping timeout: 244 seconds)
07:47:36  * pquernajoined
07:50:17  * rphillipsjoined
08:43:08  <indutny>hi
08:43:11  <indutny>morning everyone
08:45:33  * hzjoined
09:10:43  <indutny>ircretary: tell isaacs god thanks that we hadn't merged tls stuff in 0.6 :)
09:10:43  <ircretary>indutny: I'll be sure to tell isaacs
09:35:04  * piscisaureus_joined
09:37:33  <indutny>piscisaureus_: hey man
09:37:35  <indutny>how are you?
09:37:47  <piscisaureus_>hey indutny
09:37:53  <piscisaureus_>I'm drunk
09:38:36  <indutny>oh
09:38:49  <indutny>isn't it a morning in AMS?
09:39:20  <indutny>I don't really care, just curious :)
09:40:32  <piscisaureus_>I am in portland
09:40:51  <indutny>oh
09:40:53  <indutny>ok then :D
09:40:56  <indutny>ah
09:40:59  <indutny>you're on OSCON, right?
09:41:09  <piscisaureus_>yeah
09:41:42  <piscisaureus_>also, for a guy with proper russian blood being drunk in the morning isnt really a problem right :-)
09:42:00  * mmalecki[zzz]changed nick to mmalecki
09:42:24  <mmalecki>piscisaureus_: ++
09:42:25  <kohai>piscisaureus_ has 13 beers
09:43:27  <indutny>hahaha
09:43:36  <indutny>there was a period in my life when I drunk a lot
09:43:43  <indutny>but it's a past
09:43:51  <indutny>and I'm not getting really drunk
09:44:00  <indutny>even if I'll drink a lot
09:44:05  <mmalecki>indutny: everyone had that period, it's called being a teenager
09:44:07  <indutny>I think I'm immune to the alcohol
09:44:11  <indutny>mmalecki: no
09:44:16  <indutny>mmalecki: you're still there
09:44:30  <mmalecki>indutny: oh hey, I *am* a teenager
09:44:53  <indutny>:)
09:45:57  <mmalecki>indutny: you are kind of a teenager too
09:46:02  <indutny>oh, really?
09:46:09  <mmalecki>even tho you're old, like 23 or something?
09:46:15  <mmalecki>but it's mentality
09:46:16  <indutny>22
09:46:21  <mmalecki>yeah :)
09:46:25  * loladirojoined
09:46:27  <mmalecki>being a teenager is good
09:46:28  <indutny>well, probably you're right
09:47:37  <piscisaureus_>Ok, I am not going to hang out here now
09:47:45  <piscisaureus_>will be back next week :-)
09:47:48  <mmalecki>piscisaureus_: you should focus on being drunk
09:47:58  <indutny>haha
09:48:20  <mmalecki>indutny: btw, dscape said that he'll outdrink us all on lxjs
09:48:27  <mmalecki>indutny: I laughted at him hard
09:48:28  <indutny>word
09:49:31  <indutny>http://jsperf.com/or-vs-if-vs-throw
09:49:33  <indutny>really odd
09:49:54  <indutny>results are so different
09:50:04  <indutny>though benchmarks is not really correct
09:52:26  <mmalecki>indutny: I'm not able to parse this code
09:52:51  <mmalecki>but it's 11:51 and I just got woken up
09:53:41  <indutny>haha
09:59:53  * mjr_joined
10:09:37  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
10:11:54  * mjr_quit (Quit: mjr_)
10:20:38  * blackorzarquit (Ping timeout: 246 seconds)
10:56:57  * mmaleckichanged nick to mmalecki[out[
10:57:00  * mmalecki[out[changed nick to mmalecki[out]
11:21:57  * theColejoined
11:27:28  * abraxasquit (Remote host closed the connection)
12:11:40  * theColequit (Quit: theCole)
12:22:54  * chobi_e_changed nick to chobi_e
12:33:17  * chobi_echanged nick to chobi_e_
12:54:07  * c4milojoined
12:56:18  * theColejoined
12:59:15  * bnoordhuisjoined
13:04:09  * theColequit (Quit: theCole)
13:05:03  * theColejoined
13:27:24  * hzquit (Read error: Connection reset by peer)
13:27:39  * hzjoined
13:56:39  * chobi_e_changed nick to chobi_e
14:04:43  * chobi_echanged nick to chobi_e_
14:13:10  * beachdogjoined
14:15:44  <bnoordhuis>is `npm substack` a known easter egg?
14:16:14  <bnoordhuis>not to mention `npm xmas`?
14:16:24  * blackorzarjoined
14:16:45  <tjfontaine>if you find them all there won't be any left!
14:17:15  <bnoordhuis>if you tell me how to make npm install a generated binary, i'll stop searching
14:17:50  <tjfontaine>npm is storing published binaries now?
14:18:21  <bnoordhuis>no, i need to generate nprof at install tim
14:18:23  <bnoordhuis>*time
14:18:56  <bnoordhuis>i kind of have it working with "scripts": {"preinstall: "node-gyp configure build"}
14:19:09  <bnoordhuis>but that's a pretty poor hack
14:19:36  <tjfontaine>why should you need to do that? if it finds binding.gyp it runs node-gyp rebuild for you?
14:20:07  <bnoordhuis>it does if i don't have "bin": {"nprof": "build/Release/nprof"} in my package.json
14:20:18  <bnoordhuis>otherwise it complains that build/Release/nprof doesn't exist
14:20:29  <tjfontaine>oh that's an interesting edge
14:20:36  <bnoordhuis>chicken/egg
14:21:06  * beachdogquit (Quit: beachdog)
14:26:49  * chobi_e_changed nick to chobi_e
14:32:05  <mitsuhiko>bnoordhuis: i absolutely adore libuv. i hate nodejs. what's wrong with me :)
14:32:27  <bnoordhuis>mitsuhiko: could be many things. what don't you like about node?
14:33:11  <mitsuhiko>i always thought that javascript was a bad pick for async environments as a language
14:33:25  <mitsuhiko>and the deathkick for me was the fact that i couldn't write a reliable mainloop if something raises errors
14:33:28  <bnoordhuis>eh, i guess most languages are
14:33:49  <mitsuhiko>fair enough
14:33:56  <bnoordhuis>the benefit of js was that a) everyone knows it, and b) didn't have a lot of legacy
14:34:18  <bnoordhuis>mitsuhiko: i assume you know twisted pretty well?
14:34:37  <bnoordhuis>you being a python guy
14:34:37  <tjfontaine>I think there should be an autokick when someone says that word
14:34:43  <bnoordhuis>heh
14:34:54  <mitsuhiko>bnoordhuis: i know it good enough that i know i hate callback based programming if i can avoid it
14:35:00  <bnoordhuis>right
14:35:13  <bnoordhuis>but you probably also know the pain when you mix sync and async libs
14:35:21  <bnoordhuis>js didn't have that problem
14:35:37  <deoxxa>mo plugins mo problems
14:36:06  <mitsuhiko>bnoordhuis: i'm stabbing people in my mind if they start coming with their gevent monkey patches, so yes
14:36:30  <tjfontaine>clearly the answer is stackless
14:36:38  <mitsuhiko>the answer is not python
14:37:29  * beachdogjoined
14:37:40  <bnoordhuis>erlang does a lot of things right, really
14:37:40  <mitsuhiko>bnoordhuis: the worst part is when you realize that there is a valid reason behind javascript :(
14:37:46  <bnoordhuis>it's just a pain to code in
14:37:59  <mitsuhiko>i'm so hoping that rust shapes up nicely
14:38:22  <bnoordhuis>i have hopes for rust but async i/o is not its main metier
14:38:44  <bnoordhuis>pfox___'s efforts not withstanding
14:40:25  <mitsuhiko>oh well. you won't get me love node anytime soon but libuv is ridiculously well done
14:40:30  <bnoordhuis>thanks :)
14:41:30  * beachdogquit (Client Quit)
14:45:52  <bnoordhuis>i have high hopes for gdbjit once i manage to get these segfaults fixed
14:46:01  <bnoordhuis>debugging a crashing debugger... it's a challenge
15:05:47  <pfox___>i like rust, it's a good language. i think i like javascript more, though.
15:05:58  <pfox___>i don't know if that says good or bad things about me, though.
15:11:34  <pfox___>fyi: rust competes against c/c++. so take what you will from that.
15:11:56  <pfox___>it's interesting because, in the whole "new native languages" debate, i feel like rust is least defined in the mass consciousness, or whatever.
15:12:38  <pfox___>so it almost acts like a cipher for people's expectations/wants from a "new" native language. and they project that onto the project and often end up sorely disapointed when it doesn't match up with reality.
15:15:30  * AvianFlujoined
15:27:28  * hzquit (Ping timeout: 272 seconds)
15:31:19  <mitsuhiko>pfox___: rust interests me because it's the first new language in a long time that did not start out with "c++ is the devil"
15:31:37  <deoxxa>you mean c++ isn't the devil?
15:31:47  <pfox___>null pointers are the devil
15:31:47  <mitsuhiko>pfox___: working for a game studio i can hear bitching about c++ on a daily basis but nothing came close as a competitor in a long time
15:31:54  <mitsuhiko>pfox___: which rust does not have :)
15:31:54  <pfox___>fine-grained memory control is the shiznit
15:32:09  <pfox___>they have unsafe pointers, actually
15:32:19  <pfox___>which you need for FFI
15:32:32  <pfox___>*ibc::c_void is the rust equiv of a void*
15:32:40  <pfox___>*libc::c_void, even
15:32:49  <mitsuhiko>yeah. it will need that
15:32:54  <pfox___>anyways, that's besides the point. i know this because i wrote the damn libuv bindings.
15:32:57  <mitsuhiko>which is what i like about rust: they are realistic in their goals :)
15:33:13  <pfox___>your average joe rust dev doesn't need to mess with nulls in their daily life
15:33:36  <pfox___>and algebraic data types are a joy to work with
15:34:14  <pfox___>well they have a specific purpose, and they're sticking to that more or less.
15:34:27  <pfox___>there's a lot of give in take in the details. graydon is a very accomadating BDFL
15:36:36  <pfox___>its a pretty sophisticated language, though. the memory model is more interesting. they're really filing the language down, too. i think they have one or two, tops, more releases before they really hit their stride. and there're still emerging patterns around using borrowed pointers and stuff.
15:36:46  <pfox___>so there's so much, yet, we don't know and are learning.
15:36:53  <pfox___>the whole "putting the plane together in-flight" thing
15:37:22  * stephankjoined
15:38:05  <mitsuhiko>i hope it does not get too popular before its time
15:38:33  * mmalecki[out]changed nick to mmalecki
15:41:43  * hzjoined
15:47:27  * theColequit (Remote host closed the connection)
15:47:43  * theColejoined
15:51:08  <indutny>bnoordhuis: yt?
15:51:32  <indutny>bnoordhuis: I has written a simple C http server
15:51:49  <indutny>bnoordhuis: and close()ing connection looks quite... borking
15:51:55  <indutny>bnoordhuis: even curl stops working
15:52:13  <indutny>bnoordhuis: however, if I'll run shutdown() on it - it'll work for some time
15:52:22  <indutny>but it seems that osx has 7000 port limit per application
15:52:57  <indutny>bnoordhuis: ping?
15:53:34  <bnoordhuis>indutny: pong
15:54:11  <indutny>bnoordhuis: so how should TCP socket be closed to let another side handle it
15:54:12  <indutny>?
15:54:26  <bnoordhuis>forcibly close or shutdown first
15:55:18  <indutny>em... is that gentle?
15:55:26  * hzquit
15:55:36  <bnoordhuis>is what gentle? force close or shutdown?
15:55:37  <indutny>it seems that OS isn't always flushing write buffers on close()
15:55:42  <indutny>force close
15:55:51  <indutny>shutdown works, but port isn't released
15:55:54  <bnoordhuis>yeah, that's the thing
15:56:03  <bnoordhuis>a lot of clients don't handle forced closing well
15:56:06  * dapjoined
15:56:11  <indutny>bnoordhuis: almost every client :)
15:56:24  <bnoordhuis>but the problem with shutdown is that it may leave stale connections
15:56:30  <indutny>indeed
15:56:43  <bnoordhuis>rock <-> hard place
15:56:47  <indutny>how can we detect when socket transits from half-closed to closed?
15:56:58  <indutny>or timeout half-closed socket?
15:57:05  <bnoordhuis>you mean if the other side did a shutdown?
15:57:17  <indutny>it should, isn't it?
15:57:56  <bnoordhuis>sorry?
15:59:08  <bnoordhuis>ubuntu's 12.04 installer is pretty slick
15:59:30  <bnoordhuis>lets you set up your system while it's installing packages
15:59:32  <indutny>well, it seems that almost every problem is because other side doesn't call shutdown()
15:59:36  <indutny>oh
15:59:39  <indutny>good
15:59:44  <tjfontaine>what should I look at if .gyp isn't passing my cflags?
15:59:45  <bnoordhuis>as an aside :)
15:59:52  <indutny>we should let users install npm modules while v8 builds
15:59:58  <indutny>tjfontaine: osx?
16:00:01  <tjfontaine>yes
16:00:04  <indutny>tjfontaine: see xcode_settings
16:00:08  <tjfontaine>ok
16:00:44  <bnoordhuis>also, installing to a ssd is bloody fast
16:00:53  <indutny>hahahah
16:01:01  <indutny>my wife has MB Air
16:01:05  <indutny>SSD is really slick
16:01:29  <bnoordhuis>so far i'm digging it
16:01:36  <indutny>what?
16:01:40  <bnoordhuis>ssd
16:01:42  <indutny>ah
16:01:47  * hzjoined
16:01:50  <bnoordhuis>not your wife, don't worry
16:01:54  <bnoordhuis>okay, re shutdown
16:02:02  <indutny>bnoordhuis: that was offense?
16:02:16  <bnoordhuis>a friendly jab :)
16:02:21  <indutny>I feel like I need to buy tickets to AMS
16:02:30  <bnoordhuis>do that, you can buy me a beer
16:02:38  <indutny>and a baseball-bat
16:02:47  <indutny>:D
16:02:48  <bnoordhuis>to uncork the beers, good idea
16:03:02  <indutny>to uncork trolles
16:03:08  <indutny>trolls*
16:03:18  <indutny>ok
16:03:20  <indutny>re shutdown
16:03:25  <bnoordhuis>many trolls in amsterdam
16:03:29  <bnoordhuis>it's because of all the bridges
16:03:32  <bnoordhuis>okay, shutdown
16:03:57  <indutny>yes, shutdown
16:04:17  <bnoordhuis>the main problem, speaking from anecdotal evidence, is that a lot of clients are not prepared for write() or send() syscalls to fail
16:04:28  <bnoordhuis>so that's why you shutdown(SHUT_WR)
16:04:44  <bnoordhuis>i.e. you shut down your end and have the kernel discard incoming data
16:05:29  <bnoordhuis>remove the shutdown and lots of clients will fail because their writes error
16:05:42  <bnoordhuis>hmm, it's not booting...
16:06:01  <indutny>ah
16:06:02  <bnoordhuis>oh wait, it does
16:06:03  <indutny>right
16:06:25  <indutny>they won't receive ACKs if we'll close connection
16:06:39  <indutny>even if kernel has some data in buffer
16:06:45  <indutny>(as I understand
16:06:46  <indutny>)
16:07:05  <indutny>where can I look at sources of TCP stack on lets say ubuntu?
16:07:10  <bnoordhuis>not quite - though it may be implementation dependent
16:07:16  <bnoordhuis>the kernel sources
16:07:20  <bnoordhuis>it's in net/socket.c
16:07:29  <bnoordhuis>iirc anyway
16:08:36  <indutny>WHERE IS THE SOURCE?
16:08:41  <indutny>:)
16:08:43  <bnoordhuis>802.11g and wpa2 just works out of the box - who says 2012 is not the year of the linux desktop?
16:08:51  <indutny>well
16:08:56  <bnoordhuis>indutny: git.kernel.org
16:09:00  <indutny>what notebook are you using?
16:09:04  <bnoordhuis>there's a mirror on github, torvals/linux
16:09:04  <mitsuhiko>if i don't want to accept a connection (because i'm shutting down). what do i do. just not call uv_accept?
16:09:22  <bnoordhuis>mitsuhiko: no, that won't work - it'll still be in the queue
16:09:24  <bnoordhuis>accept and close
16:09:28  <bnoordhuis>indutny: it's a desktop
16:09:34  <mitsuhiko>aww :(
16:09:35  <indutny>oh
16:09:35  <bnoordhuis>i needed something with lots of memory and lots of cores
16:09:54  <indutny>bnoordhuis: moahahaha
16:10:10  <indutny>bnoordhuis: well, I'm not buying desktop for several reasons
16:10:17  <indutny>I do not want to live in russia
16:10:19  <indutny>and I love mobility
16:10:41  <bnoordhuis>if you don't want to live in russia, what are you doing there?
16:10:50  <indutny>hanging out :)
16:11:00  <indutny>well, things are changing
16:11:05  <bnoordhuis>also, i love living in the netherlands and i don't like going places
16:11:11  <bnoordhuis>so a desktop pc is a perfect fit for me :)
16:11:34  <indutny>bnoordhuis: if I'll live in netherlands - I'll probably buy a desktop for myself too :P
16:12:16  <bnoordhuis>indutny: you're free to come over, you can borrow my garden shed
16:12:41  <bnoordhuis>it's two stories and 20 m2 so not as bad as it sounds :)
16:12:48  <bnoordhuis>might be a little cramped for two though
16:13:05  <bnoordhuis>okay, enough banter - i'm off for a walk with the wife and kid
16:13:52  <indutny>hahaha
16:13:59  <indutny>re shutdown
16:14:03  <bnoordhuis>indutny: i half-kid though - if you're really serious about coming over, we can probably work something out
16:14:04  <indutny>we hadn't decided anything
16:14:15  <bnoordhuis>but i have to be afk for now
16:14:23  <bnoordhuis>biab
16:14:45  <indutny>ok
16:27:40  * chobi_echanged nick to chobi_e_
16:31:57  <isaacs>ircretary: tell ryah I actually want to eventually move http out of core
16:31:58  <ircretary>isaacs: I'll be sure to tell ryah
16:33:01  <mmalecki>isaacs: really? that'd be lulz
16:33:04  <isaacs>ircretary: tell ryah but the way to do that is to make the module system even more tightly wed to the npm registry, and make npm a lot simpler. it's a very long-term goal.
16:33:05  <ircretary>isaacs: I'll be sure to tell ryah
16:33:08  <isaacs>mmalecki: yes.
16:33:34  <mmalecki>I'll send you a bottle of scotch when you do that
16:33:49  <isaacs>but we won't get tehre by naively making every decision that seems to make node smaller, just seeking the nearest local minimum
16:33:51  <mmalecki>dang, I'll send you a crate of scotch
16:33:53  <indutny>viva la resistance!
16:34:12  <indutny>will it happen in post nuclear world when people will be finding food in fall outs?
16:34:28  <isaacs>indutny: well, it's pretty lofty
16:34:38  <indutny>well, actually moving everything out of core seems to be reasonable for me
16:34:40  <isaacs>it might not even be node by that point
16:35:06  <isaacs>core would be net, zlib, fs, and the module system.
16:35:15  * blackorzar_joined
16:35:17  <mmalecki>dgram?
16:35:20  <isaacs>no
16:35:24  <indutny>no?
16:35:30  <indutny>no dgram - no fun
16:35:40  <isaacs>the only things included in core would be those things that are strictly necessary to bootstrap loading modules from the registry
16:35:52  <isaacs>then we automatically figure out what your program needs, and load it
16:35:58  <isaacs>no `npm install blerg`
16:36:05  <isaacs>just require('blerg') and it Just Works
16:36:13  <isaacs>there are MANY details i do not know here.
16:36:15  <indutny>isaacs: btw, have
16:36:17  <isaacs>this is a fantasy :)
16:36:22  <indutny>you changed something in npm recently?
16:36:41  <indutny>I accidently has two different node install in different iTerm tabs
16:36:47  <indutny>like 0.8.1 and 0.8.3
16:36:53  <indutny>and things were really borked
16:37:28  <indutny>isaacs: https://github.com/joyent/node/pull/3745 thoughts?
16:37:38  * blackorzarquit (Ping timeout: 252 seconds)
16:38:28  <indutny>oh, do we have require('bluetooth')?
16:38:40  <indutny>no :(
16:38:44  * loladiroquit (Ping timeout: 252 seconds)
16:39:04  * indutnytopic: Liberty. Unity. Velocity.
16:39:35  <mmalecki>current status: over 30 tabs open
16:39:42  <mmalecki>yeah, looking for an airbnb :<
16:44:29  <indutny>isaacs: ?
16:44:42  <indutny>isaacs: should we revert back that options propagation change
16:45:28  <isaacs>ah, yes.
16:45:33  <isaacs>ok, revert that in 0.8
16:45:56  <isaacs>is it still possible to verify the identity against the host without that?
16:46:20  * chobi_e_changed nick to chobi_e
16:47:01  <indutny>yes
16:47:03  <indutny>by creating Agent
16:47:22  <isaacs>ok
16:47:29  <isaacs>sounds good then
16:47:29  <indutny>revert in master too?
16:47:32  <isaacs>we over-reached :)
16:47:37  <indutny>sorry for missing that:(
16:47:46  <isaacs>no problem, i missed it too
16:47:58  * theColequit (Ping timeout: 245 seconds)
16:47:59  <isaacs>but that's why we can't change API ever in a stable branch :)
16:48:10  * isaacswondering how many times i'll have to learn that lesson...
16:48:21  <isaacs>don't worry about master, we're gonna blow that all away anyway
16:48:37  <indutny>haha
16:48:37  <indutny>ok
16:48:55  <indutny>isaacs: review please https://github.com/indutny/node/compare/gh-3743
16:49:00  <indutny>isaacs: related to https://github.com/joyent/node/issues/3743#issuecomment-7125516
16:49:49  <isaacs>lgtm
16:50:06  <indutny>ok
16:50:16  <isaacs>we can release 0.8.4 on Tuesday with this change and basically nothing else :)
16:50:27  <indutny>and backport?
16:50:30  <indutny>to 0.8
16:50:31  <indutny>right?
16:50:36  <indutny>(about that commit)
16:50:49  <CIA-108>node: Fedor Indutny master * r0cf2354 / (lib/tls.js test/simple/test-tls-check-server-identity.js): tls: localhost is valid against identity-check - http://git.io/6MH0qQ
16:51:59  * mikealjoined
16:52:48  <isaacs>yes
16:53:04  <indutny>k
16:53:12  <indutny>I'll run tests again
16:53:16  <indutny>just to check if everything works fine
16:53:26  <indutny>also, I would like to ask you about backporting following commit:
16:53:52  <indutny>https://github.com/joyent/node/commit/f210530f46e8ddbd9e7cc0d0c37778888c27f526
16:53:58  <indutny>and probably https://github.com/joyent/node/commit/d923269e13f903b02506d86f138369586862364e
16:54:16  <indutny>we may need to wait for bnoordhuis to return before that
16:54:46  <CIA-108>node: isaacs v0.9.0-release * r1b9f78e / (AUTHORS ChangeLog src/node_version.h): 2012.07.20, Version 0.9.0 (Unstable) - http://git.io/ZHr85A
16:55:04  <mmalecki>indutny: +1 on the slab buffer commit
16:56:28  * dapquit (Quit: Leaving.)
16:56:51  <isaacs>anyone wanna test this? http://nodejs.org/dist/v0.9.0/node-v0.9.0-RC0.tar.gz
16:57:10  <isaacs>changelog: http://nodejs.org/dist/v0.9.0/email.md
16:57:40  * chobi_echanged nick to chobi_e_
16:57:47  <isaacs>should probably re-pull libuv.
16:59:01  <indutny>well, em...
16:59:22  <indutny>I've one more commit to come to that branch before release
16:59:23  <indutny>ok?
16:59:29  <indutny>fix test failures
16:59:50  <indutny>give me 10 minutes
17:00:02  <isaacs>k
17:00:24  <isaacs>indutny: if it's going to be back-ported to 0.8, then it should not be in the 0.9 changelog
17:00:31  <isaacs>since it'll show up there anyway
17:06:04  <indutny>nonon
17:06:05  * TooTallNatejoined
17:06:41  <indutny>this is not about changelog
17:07:04  <indutny>I've accidentaly changed API
17:08:11  <isaacs>oh, i see it
17:08:12  <isaacs>k
17:08:17  <isaacs>yeah, i'll wait for you :)
17:08:20  * theColejoined
17:08:31  <indutny>so test fixes for 0.9
17:08:40  <indutny>and a patch for 0.8 to make old tests pass :P
17:09:05  <CIA-108>node: Fedor Indutny v0.8 * re43fe5c / (lib/http.js lib/https.js): Revert "http/https: pass request to .createConnection()" - http://git.io/TaIqlg
17:09:05  <CIA-108>node: Fedor Indutny v0.8 * r4aa09d1 / (lib/tls.js test/simple/test-tls-check-server-identity.js): tls: localhost is valid against identity-check - http://git.io/2GFQOw
17:09:15  <indutny>that's not all
17:12:26  <indutny>isaacs: review https://gist.github.com/b76871e86a08726c2ecc
17:12:50  <indutny>that's for 0.8
17:13:04  <indutny>and for master too, actually
17:13:09  <indutny>(just realized)
17:13:44  <isaacs>k, lgtm
17:13:53  * theColequit (Quit: theCole)
17:14:24  <indutny>ok
17:14:36  <indutny>tests should be silent now
17:14:38  <CIA-108>node: Fedor Indutny v0.8 * r5950db1 / (lib/tls.js test/simple/test-tls-sni-server-client.js): tls: revert accidental API change - http://git.io/v6u23A
17:14:58  <indutny>ok, I've no other objections for 0.9 now
17:14:58  <CIA-108>node: Fedor Indutny master * r93d496a / (lib/tls.js test/simple/test-tls-sni-server-client.js): tls: revert accidental API change - http://git.io/iW6Qzg
17:16:28  <isaacs>kewl, mak-testing now
17:18:00  <mmalecki>indutny: why revert the change on master tho?
17:18:04  <indutny>yeah, me too
17:18:12  <indutny>because it was accidental
17:18:19  <indutny>and inconsistent
17:18:26  <mmalecki>ok lol
17:18:33  <indutny>i.e. server got authorizationError as string
17:18:36  <indutny>and client as Error instance
17:18:39  <mmalecki>ah, lol
17:18:43  <indutny>we'll address that in 0.9 later
17:18:49  <indutny>after rewrite of tls/http
17:18:54  <indutny>and https
17:18:56  <indutny>:D
17:19:06  <indutny>still hadn't realized that 0.8.x is released
17:22:02  <indutny>hm...
17:22:07  <indutny>do we need `node -` ?
17:22:30  <indutny>like read everything from stdin and evaluate it
17:22:46  <indutny>I'm quite sure that was discussed before, but want to hear objections if anyone has ones
17:23:20  <TooTallNate>indutny: we already have that
17:23:33  <indutny>node - ?
17:23:35  <TooTallNate>if you just pipe a script that is
17:23:38  <TooTallNate>- is not required
17:23:41  * perezdjoined
17:23:47  <TooTallNate>echo "console.log('hello')" | node
17:23:49  <indutny>aah
17:23:52  <indutny>yes, I see
17:23:58  <indutny>I was just running `node -`
17:24:03  <TooTallNate>it checks for a tty
17:24:06  <indutny>and expecting it to accept input until ^D
17:24:25  <indutny>but that thing works too
17:24:30  <isaacs>indutny: i'm still seeing those tests failing on master
17:24:37  <isaacs>AssertionError: "DEPTH_ZERO_SELF_SIGNED_CERT" == "UNABLE_TO_GET_ISSUER_CERT"
17:25:32  <isaacs>indutny: https://gist.github.com/3151927
17:26:13  <indutny>oh, that's because of https.connect({ options })
17:26:24  <indutny>looks like we need to revert commit for master too
17:26:37  <isaacs>oh, ok
17:26:43  <isaacs>i misunderstood you before, sorry
17:26:52  <indutny>np
17:26:56  <indutny>running tests on 0.8 now
17:27:36  <indutny>oh
17:27:38  <isaacs>it'd be nice if - explicitly meant "read from stdin, not from a file"
17:27:39  <indutny>the same stuff in 0.8
17:27:41  <isaacs>even if it is a tty
17:27:47  <indutny>why it is happening?!
17:30:57  * mmaleckiquit (Ping timeout: 264 seconds)
17:31:36  <indutny>well, suppose I understand last failure
17:31:59  <indutny>but first two seems to be magical
17:32:22  <indutny>ok first one is because I hadn't reverted commit
17:33:34  <TooTallNate>isaacs: well we have the inverse (always force a repl) with the -i flag
17:33:39  <indutny>ah, ok
17:33:41  <TooTallNate>so +1 for - i suppose :p
17:33:54  <indutny>so, basically all certificates in test/fixtures are borked
17:33:59  <indutny>or verification algo is borked
17:34:17  <indutny>either one of two
17:41:25  <indutny>fix is coming
17:41:31  <indutny>running tests before push this time
17:42:10  <isaacs>:D
17:42:12  <isaacs>good habit :)
17:43:50  <indutny>test-http-dns-fail
17:43:56  <indutny>hm... is that expected on osx?
17:45:03  <indutny>isaacs: for v0.8 https://gist.github.com/6ddfd4cdcdad13d8d394
17:45:30  <isaacs>indutny: no, it's not expected
17:45:39  <indutny>well, I'm in VPN
17:45:44  <indutny>probably that matters
17:45:47  <indutny>I'll rerun it later
17:46:06  <isaacs>oh, yeah, VPNs are weird with dns
17:46:14  <indutny>indeed
17:46:21  <isaacs>indutny: if you do net.connect({port:1234}) then that connects to localhost, right?
17:46:34  <indutny>yes
17:46:40  <indutny>I hadn't expected that
17:46:58  <isaacs>what if the cert allows 127.0.0.1 or ::1?
17:46:58  * philips_quit (Excess Flood)
17:47:10  <indutny>and no localhost?
17:47:14  <isaacs>yeah
17:47:15  <indutny>it's invalid
17:47:22  <indutny>that's not the same
17:47:29  <isaacs>just has subjectaltname:'DNS:127.0.0.1'
17:47:37  <indutny>nono
17:47:39  <indutny>that won't work
17:47:43  <indutny>IP Address:127.0.0.1
17:47:47  <isaacs>er, right
17:47:54  <isaacs>just has subjectaltname:'IP Address:127.0.0.1'
17:48:04  <indutny>well, it may have CN: localhost
17:48:07  <indutny>or DNS: localhost
17:48:14  <indutny>otherwise it won't be considered legal
17:48:19  <isaacs>ok
17:48:24  <isaacs>sure, if tests pass land it.
17:48:59  <indutny>why have we turned off travis?
17:49:02  <CIA-108>node: Fedor Indutny v0.8 * r50122fe / (lib/tls.js test/simple/test-tls-client-verify.js): tls: fix 'hostless' tls connection verification - http://git.io/YOzb7A
17:49:29  * philips_joined
17:49:31  <indutny>(porting it to master, and running tests again, also porting reverse to master)
17:52:57  <isaacs>indutny: i iddn't think we did turn off travis
17:53:07  <indutny>interesting
17:53:10  <indutny>it isn't working for 3 months
17:53:19  <indutny>ok, tests are passing on master too
17:53:20  <indutny>pushing
17:53:21  <isaacs>really? i saw it just the other day, i thought
17:53:39  <indutny>well, that's what travis site told me yesterday
17:53:41  <tjfontaine>libuv vs node
17:53:47  <indutny>yes
17:53:58  <CIA-108>node: Fedor Indutny master * r92e7433 / (lib/tls.js test/simple/test-tls-client-verify.js): tls: fix 'hostless' tls connection verification - http://git.io/8-EoRw
17:54:09  <CIA-108>node: Fedor Indutny master * r1ccdde9 / (lib/http.js lib/https.js): Revert "http/https: pass request to .createConnection()" - http://git.io/ztTKxg
17:54:12  <isaacs>whoa, indeed
17:54:58  <isaacs>hm... the hook is there, has a valid key
17:55:04  * ericktjoined
17:55:11  <isaacs>i just hit the "test hook" button, maybe that'll unclog the tubes?
17:56:14  * lohkeyjoined
17:56:32  <indutny>hm...
17:56:41  <indutny>looks like a travis error then
17:57:04  <indutny>ircretary: tell mmalecki that travis isn't processing node's commits (hook is present in github)
17:57:05  <ircretary>indutny: I'll be sure to tell mmalecki
17:57:16  <indutny>isaacs: is it enabled in travis-ci.org options?
17:57:31  <isaacs>indutny: not sure. they only show the first hundred repos
17:57:43  <isaacs>indutny: i have many hundreds of repos
17:58:57  <isaacs>interesting, but probably unrelated:
17:59:00  <isaacs>=== release test-child-process-fork-net2 ===
17:59:00  <isaacs>Path: simple/test-child-process-fork-net2
17:59:00  <isaacs>timers.js:103
17:59:00  <isaacs> if (!process.listeners('uncaughtException').length) throw e;
17:59:02  <isaacs> ^
17:59:04  <isaacs>Error: channel closed
17:59:07  * mjr_joined
17:59:07  <isaacs> at ChildProcess.target.send (child_process.js:332:26)
17:59:09  <isaacs> at Object.closeServer [as _onTimeout] (/Users/isaacs/dev/js/node-master/test/simple/test-child-process-fork-net2.js:118:14)
17:59:13  <isaacs> at Timer.list.ontimeout (timers.js:101:19)
17:59:15  <isaacs> at process.startup.processMakeCallback.process._makeCallback (node.js:238:20)
17:59:18  <isaacs>Command: out/Release/node /Users/isaacs/dev/js/node-master/test/simple/test-child-process-fork-net2.js
17:59:21  <indutny>not mine
17:59:22  <indutny>:)
17:59:35  <indutny>looks like child has died
17:59:40  <indutny>do you have core dumps or anything?
18:04:21  <isaacs>indutny: many lint failures in lib/tls.js
18:04:28  <indutny>em...
18:04:51  <indutny>can you remind me
18:04:54  <isaacs>(which means.. all other tests passed :)
18:04:56  <indutny>is make test running linting?
18:04:58  <indutny>:)
18:05:01  <isaacs>indutny: only when tests pass
18:05:08  <isaacs>it should run all the time, but... meh.
18:05:09  <indutny>aaaaaaah
18:05:13  <isaacs>tests should also pass all the time :)
18:05:15  <indutny>haha
18:05:16  <indutny>yes
18:05:24  <isaacs>make jslint
18:05:32  <isaacs>don't worry, it won't lint all the tests and tools and bs
18:05:33  <isaacs>just lib
18:06:18  <indutny>k
18:06:38  <isaacs>i can fix it up, no worries
18:06:42  * avalanche123joined
18:06:44  <indutny>I've already fixed it
18:07:04  * mjr_quit (Quit: mjr_)
18:07:16  <indutny>https://gist.github.com/c165668735f8755414e6
18:08:02  <isaacs>ok, cool
18:08:27  <isaacs>ha, same exact patch i was just about to land
18:08:29  <isaacs>lgtm
18:08:29  <CIA-108>node: Fedor Indutny master * r85185bb / lib/tls.js : tls: pass linting - http://git.io/d_EUoQ
18:08:37  <isaacs>backport to v0.8, too
18:08:41  <indutny>huh?
18:08:41  <CIA-108>node: Fedor Indutny v0.8 * r42c6952 / lib/tls.js : tls: pass linting - http://git.io/eyclsg
18:08:42  <indutny>really?
18:08:43  <indutny>:D
18:09:40  <CIA-108>node: isaacs master * re16d506 / (59 files in 7 dirs): uv: Upgrade to ad382bca - http://git.io/9Dv2Ww
18:10:21  <CIA-108>node: isaacs v0.9.0-release * rf9b237f / (AUTHORS ChangeLog src/node_version.h): 2012.07.20, Version 0.9.0 (Unstable) - http://git.io/fup8hg
18:13:24  * EhevuTovjoined
18:17:28  * beachdogjoined
18:24:43  <mitsuhiko>damn you heisenbugs
18:24:56  <mitsuhiko>code crashes on shutdown if executed through valgrind with a segfault in a error logging function
18:28:53  <indutny>oh my
18:44:19  <isaacs>pkg uploaded
18:45:55  * EhevuTov_joined
18:47:58  * EhevuTovquit (Ping timeout: 245 seconds)
18:49:59  <isaacs>windows binaries uploaded
18:50:21  * xaqjoined
18:52:10  <CIA-108>node: isaacs master * rf9b237f / (AUTHORS ChangeLog src/node_version.h): 2012.07.20, Version 0.9.0 (Unstable) - http://git.io/fup8hg
18:52:10  <CIA-108>node: isaacs master * r839dfe7 / (AUTHORS ChangeLog src/node_version.h): Merge branch 'v0.9.0-release' - http://git.io/_gqjjw
18:52:11  <CIA-108>node: isaacs master * rec299a1 / src/node_version.h : Now working on 0.9.0 - http://git.io/xakUsQ
18:57:17  <CIA-108>node: isaacs master * r5bb2fe6 / doc/blog/release/v0.9.0.md : Blog post about 0.9.0 - http://git.io/2dh4sA
18:57:23  <isaacs>and we're live :)
18:57:36  <isaacs>indutny: thanks for the fast fixups
18:57:44  <indutny>haha
18:57:55  <indutny>fast fixups of my mistakes
18:57:59  <isaacs>indutny: i'll push 0.8.4 out tuesday as well
18:58:29  <isaacs>making mistakes is fine if you're willing to fix them :)
18:59:23  * einarosquit (Remote host closed the connection)
18:59:58  <indutny>haha
19:00:00  <indutny>right
19:04:06  * einarosjoined
19:04:15  <isaacs>ok, i'm gonna be offline for a while. have a nice weekend :)
19:07:37  <indutny>you too
19:07:43  <indutny>thank you for hanging out here today :P
19:11:08  <indutny>bnoordhuis: back, no?
19:13:00  <tjfontaine>how can he answer no to that? :)
19:19:41  <indutny>no, back
19:19:44  <indutny>yes, not
19:19:47  <indutny>:D
19:25:03  <indutny>meeh
19:25:06  <indutny>TCP is so flaky
19:38:14  * perezd_joined
19:40:03  * perezdquit (Ping timeout: 245 seconds)
19:40:04  * perezd_changed nick to perezd
19:40:42  * `3rdEdenjoined
19:43:45  * mjr_joined
19:50:10  * mjr__joined
19:53:56  * mjr_quit (Ping timeout: 246 seconds)
19:53:56  * mjr__changed nick to mjr_
20:03:25  * lohkey_joined
20:04:00  * xaqquit (Remote host closed the connection)
20:07:21  * lohkeyquit (Ping timeout: 276 seconds)
20:07:21  * lohkey_changed nick to lohkey
20:13:17  * EhevuTovjoined
20:13:32  * TooTallNatequit (Ping timeout: 246 seconds)
20:14:41  * `3rdEdenquit (Quit: Leaving...)
20:16:41  * EhevuTov_quit (Ping timeout: 260 seconds)
20:16:51  * TooTallNatejoined
20:32:14  * mmaleckijoined
20:36:38  * mmaleckiquit (Ping timeout: 246 seconds)
20:41:26  * xaqjoined
20:42:53  * xaqquit (Remote host closed the connection)
20:50:19  * loladirojoined
20:52:12  * avalanche123quit (Quit: Computer has gone to sleep.)
20:52:46  * loladiroquit (Client Quit)
20:54:17  * loladirojoined
21:07:36  <bnoordhuis>indutny: back
21:07:47  <indutny>bnoordhuis: https://github.com/joyent/node/issues/3613#issuecomment-7141697
21:07:59  <indutny>bnoordhuis: so TCP is really borked
21:08:08  * mjr_quit (Ping timeout: 246 seconds)
21:09:11  * mjr_joined
21:09:19  <bnoordhuis>indutny: yes
21:09:56  <indutny>what about SOCK_LINGER?
21:10:11  * mjr__joined
21:10:18  <indutny>I'm trying to figure out how it's working by reading source
21:10:21  <indutny>but it's really complicated
21:11:06  <indutny>may be we can give it some hand-picked options that may work in many cases?
21:12:01  <bnoordhuis>indutny: it needs some investigation, yes
21:12:20  <bnoordhuis>and yes, the kernel's socket/inet/tcp code is quite complicated
21:12:28  <indutny>yes
21:12:44  <indutny>so basically linger allows us to wait for all data to be sent when we're calling close()
21:12:55  <indutny>bad news - it'll block
21:13:24  <indutny>good news - interval is configurable
21:13:51  * mjr_quit (Ping timeout: 260 seconds)
21:13:51  * mjr__changed nick to mjr_
21:14:39  <bnoordhuis>swap on ssd? good idea, bad idea?
21:15:01  <bnoordhuis>i guess it'll speed up resume
21:15:52  <indutny>probably
21:16:54  <bnoordhuis>it takes up 25% of my ssd, which seems kind of wasteful
21:17:17  <bnoordhuis>this machine has 16 gb memory so i won't be hitting swap much otherwise
21:17:50  <indutny>bnoordhuis: btw, probably swap is not such a good idea
21:17:57  <indutny>bnoordhuis: it will be rewritten often
21:18:00  <indutny>AFAIK
21:18:06  <bnoordhuis>that too is an issue
21:18:12  * `3rdEdenjoined
21:18:29  <bnoordhuis>that ubuntu installer is just too easy - i just clicked yes all the time and now i have this :)
21:19:01  <indutny>hahaha
21:19:11  <indutny>you had installed freebsd, ain't you? :)
21:19:17  <indutny>you know the other side of this
21:19:36  <indutny>I'm going to help some guys installing smartos on their server(s)
21:19:52  <bnoordhuis>oh dear
21:20:49  <indutny>yeah
21:20:55  <indutny>I expect a lot of PITA
21:21:45  <bnoordhuis>so why are you doing it?
21:21:56  <indutny>well, dtrace and all the stuff
21:22:11  <indutny>and it should be connected to their VPN
21:22:13  <bnoordhuis>install freebsd
21:22:29  <bnoordhuis>though admittedly it was something of a pain to get dtrace working on fbsd 9
21:22:34  <indutny>hahaha
21:22:48  <indutny>well, I'm going to play with it
21:23:00  * lohkeyquit (Remote host closed the connection)
21:23:10  * lohkeyjoined
21:25:31  <indutny>so
21:25:37  <indutny>linger thing doesn't really works good with ab
21:25:45  <indutny>I mean apache benchmark
21:25:59  <indutny>I do not know what are this guys doing, but they're doing it bad
21:25:59  <bnoordhuis>how so?
21:26:38  <indutny>well
21:26:48  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
21:26:58  <indutny>I'm just doing: send("HTTP/1.1 200 Ok\n\n"); close();
21:27:06  <indutny>(abstract language)
21:27:20  <indutny>I think their send()'s are ending badly
21:27:46  <indutny>linger guarantees that data will be delivired
21:27:57  <indutny>not that all data that was sent by client will be accepted
21:28:03  <indutny>actually, forget this
21:28:06  <indutny>my server is borked
21:28:15  <indutny>it isn't representing anything real
21:29:04  <indutny>I'll try patch libuv in node
21:29:12  <bnoordhuis>side question, / on ssd, /tmp + /var + /home on hdd?
21:29:36  <bnoordhuis>yeah, i think i
21:29:43  <bnoordhuis>*i'm going with that
21:29:59  <indutny> /tmp in memory?
21:30:06  <indutny>I really like it
21:30:24  <indutny>otherwise lgtm
21:30:25  <bnoordhuis>hrm, i guess that could work too
21:30:35  <indutny>but ubuntu should already do so AFAIK
21:30:40  <indutny>if you're using default config
21:30:48  <indutny>but I may be wrong
21:30:53  <indutny>I was using it almost year ago
21:31:12  <bnoordhuis>i don't think it did (reinstalling now) but i could be wrong
21:32:22  <indutny>em... just to be sure
21:32:27  <indutny>as I understand it
21:32:30  <indutny>and please correct me
21:32:47  <indutny>we're calling close(fd) after finishing with incoming TCP connections
21:32:56  <indutny>i.e. uv_close() == uv_stream_close() == close()
21:33:17  <indutny>em...
21:36:30  <indutny>I'm still not sure
21:36:34  <indutny>need to add logging there
21:37:59  <bnoordhuis>indutny: correct
21:38:01  <indutny>yeah, it's calling close()
21:38:13  <bnoordhuis>shutdown is done with uv_shutdown()
21:38:21  <indutny>yes, I seen it
21:38:34  <indutny>so there're two possibilities
21:38:44  <indutny>after shutdown socket may be in closed state
21:38:55  <indutny>and then double close() will send RST packet which will terminate TCP session
21:39:16  <indutny>or it's in half-closed state, i.e. FIN_WAIT2
21:39:26  <indutny>in this case it'll probably send RST too :P
21:39:33  <indutny>so, the question:
21:39:41  <indutny>why does sockets hang up there
21:40:06  <bnoordhuis>i'm afraid i don't understand the question
21:40:13  <lohkey>lol
21:40:18  <lohkey>wrong channel >_<
21:40:21  <indutny>and why isn't that user seeing close() in dtruss
21:40:36  <indutny>lohkey: you better not know what "loh" means in russian
21:40:48  <lohkey>i don't, what does it mean
21:41:03  <indutny>it's a curse word
21:41:04  * hzquit
21:41:11  <indutny>soft one
21:41:27  <lohkey>"1. loh. A russian word describing a naive and extremly trusting person, subject to various frauds and fails."?
21:42:06  <indutny>yes
21:42:17  <indutny>but there're also some other usages
21:42:24  <indutny>bnoordhuis: so
21:42:31  <indutny>my opinion is that we have a bug in js code here :P
21:42:54  <indutny>aaah
21:44:05  <indutny>bnoordhuis: you still there?
21:44:17  <bnoordhuis>indutny: yes, somewhat
21:44:20  <bnoordhuis>busy installing stuff
21:44:48  <indutny>bnoordhuis: how are we detecting that uv_shutdown has ended?
21:45:02  <indutny>bnoordhuis: are we relying on some backend like kqueue, epoll?
21:45:04  <bnoordhuis>indutny: grep for afterShutdown in lib/net.js
21:45:07  <indutny>nono
21:45:16  <indutny>lib/net doesn't interest me much
21:45:24  <bnoordhuis>installing on ssd is so fast!
21:45:26  <bnoordhuis>love it
21:45:27  <indutny>hahaha
21:45:44  <bnoordhuis>shutdown itself is just a syscall
21:46:12  <bnoordhuis>it doesn't do anything interesting, just flips a state flag in the socket
21:46:39  <indutny>not only
21:46:50  <indutny>it also drains some buffers
21:46:55  <bnoordhuis>oh, right - and that
21:46:56  <indutny>and sends FIN packet in some cases
21:47:02  <indutny>yes, FIN packet
21:47:04  <indutny>really
21:47:10  <indutny>if it can
21:47:18  <bnoordhuis>right, that's the important part
21:47:23  <bnoordhuis>but that's the same thing close() does
21:47:26  <indutny>so are we just running it in another thread
21:47:29  <indutny>not really
21:47:33  <indutny>close() may also send RST packet
21:47:42  <indutny>and will do if some data transfer is in progress
21:47:55  <indutny>so
21:48:00  <bnoordhuis>right
21:48:04  <indutny>how do we get in uv that uv_shutdown() has ended
21:48:08  <bnoordhuis>and that's what's making clients fall over
21:48:10  <indutny>i.e. it's time to call it's callback
21:48:11  <bnoordhuis>they don't expect the RST
21:48:25  <indutny>idk
21:48:38  <indutny>I think clients are failing because send buffer is destroyed
21:48:49  <indutny>and no delivery is guaranteed
21:48:56  <indutny>and of course because they can't send any data
21:49:08  <indutny>but that's fine since they may continue sending it more and more
21:49:12  <indutny>even after connection
21:49:19  <indutny>they should expect failures
21:49:25  <bnoordhuis>but they don't :)
21:49:34  <indutny>like we received all required data for processing HTTP request
21:49:39  <indutny>and answered you
21:49:43  <indutny>and closed connection
21:49:56  <indutny>so I think the only problem is send+close, where data is lost
21:50:04  <indutny>so, getting back to uv_shutdown
21:50:11  <indutny>when is it calling that callback?
21:50:43  <bnoordhuis>hmm, i think i broke my computer
21:50:56  <indutny>bnoordhuis: huh?
21:50:57  <indutny>how?
21:51:13  <bnoordhuis>probably installed the boot loader on the wrong drive
21:52:02  <indutny>oh
21:52:19  <indutny>you should be able to fix it by loading from usb stick or cd
21:52:26  * theColejoined
21:52:28  <indutny>just run live cd
21:52:34  <indutny>or enter the grub repl
21:52:47  <bnoordhuis>yeah, doing that now
21:52:56  <indutny>have you mounted /boot somewhere?
21:53:09  <indutny>it's really tricky
21:54:31  <indutny>bnoordhuis: so, as I can see
21:54:43  <indutny>we're calling shutdown callback only if write buffers was drained
21:55:03  <indutny>and we're doing shutdown at the same time too
21:55:09  <indutny>obviously
21:56:13  <indutny>and looks like that isn't usually happening
21:56:25  <indutny>like connection was abandoned
21:59:38  <bnoordhuis>indutny: you're talking about libuv now, right?
21:59:46  <indutny>yes
21:59:55  <indutny>so from the short look
22:00:04  <indutny>it seems that http.js isn't calling socket.end() at all :D
22:00:57  <indutny>haha
22:01:01  <bnoordhuis>but then we'd be leaking file descriptors, right?
22:01:25  <indutny>idk
22:01:28  <indutny>close is called
22:01:34  <indutny>we just ain't calling shutdown on those connections
22:02:45  <indutny>may be we're calling .destroy() from js land
22:03:39  <bnoordhuis>i'm only half following
22:03:46  <bnoordhuis>you're saying shutdown() is not the issue?
22:04:18  <indutny>ah
22:04:24  <indutny>we're calling .destorySoon() from http
22:04:43  <indutny>which just close() socket
22:04:48  <indutny>once all writes finished
22:05:15  <bnoordhuis>yay, fixed the boot loader
22:05:20  <indutny>I think we need some code from bug reporter
22:05:32  <indutny>looks like he's using net.Server not http.Server
22:07:02  * mjr_quit (Quit: mjr_)
22:08:36  <indutny>and if so - he's just doing something wrong
22:10:23  <bnoordhuis>the thing is, he's right about shutdown() and FIN_WAIT2
22:10:44  <indutny>what do you mean?
22:11:10  <indutny>do you think we should not call it at all?
22:11:32  <indutny>users are able to do this manually now
22:11:51  <indutny>one can either .close() or .destroy() socket
22:12:00  <indutny>first one will call shutdown and only after close it
22:12:07  <indutny>latter one will immediately close socket
22:12:38  * EhevuTovquit (Quit: This computer has gone to sleep)
22:13:27  <indutny>bnoordhuis: what do you think?
22:13:38  <indutny>I'm going to write a reply on that issue
22:14:50  * EhevuTovjoined
22:16:09  <indutny>probably he's just running out of ephemeral ports
22:16:14  <indutny>like I do on osx
22:16:22  <indutny>and OS needs some time to cleanup those
22:17:06  <bnoordhuis>lets discuss it tomorrow
22:17:14  <bnoordhuis>i'm switching from one pc to another all the time :)
22:17:17  <indutny>haha
22:17:18  <indutny>ok
22:17:23  <indutny>ttyl then
22:17:29  <bnoordhuis>sleep tight, fedor
22:18:07  <indutny>bnoordhuis: you too, ben
22:23:09  * rendarquit
22:27:16  * chobi_e_changed nick to chobi_e
22:28:14  * lohkeypart
22:33:40  * mjr_joined
22:34:15  * mjr__joined
22:38:09  * mjr_quit (Ping timeout: 264 seconds)
22:38:10  * mjr__changed nick to mjr_
22:39:00  * mjr_quit (Client Quit)
22:47:38  * theColequit (Quit: theCole)
22:52:03  * philips_quit (Excess Flood)
22:53:03  * philips_joined
22:59:11  <indutny>bnoordhuis: yt?
22:59:20  <indutny>I think I've figured out the source of the problem
22:59:39  <indutny> struct linger ling;
22:59:40  <indutny> ling.l_onoff = 1;
22:59:40  <indutny> ling.l_linger = 10;
22:59:40  <indutny> if (setsockopt(fd, SOL_SOCKET, SO_LINGER, &ling, sizeof ling) == -1) {
22:59:44  <indutny>oops
22:59:46  <indutny>l_linger = 0
22:59:51  <indutny>and everything will be fixed
22:59:56  <indutny>see ya tomorrow :D
23:00:00  <indutny>(though it breaks ab)
23:06:05  * chobi_echanged nick to chobi_e_
23:09:23  * piscisaureus_joined
23:09:28  <philips_>piscisaureus_: http://happybirfday.aws.af.cm/O_o
23:10:04  * paddybyersquit (Quit: paddybyers)
23:10:19  <indutny>spam?
23:11:00  <indutny>piscisaureus_: happy birthday?
23:12:21  <piscisaureus_>indutny: nope
23:18:32  * loladiroquit (Ping timeout: 248 seconds)
23:23:28  * bnoordhuis_joined
23:24:38  * mjr_joined
23:37:40  * indexzerojoined
23:37:50  * piscisaureus_quit (Read error: No route to host)
23:37:54  * piscisaureus__joined
23:45:48  * indexzeroquit (Quit: indexzero)
23:49:38  * piscisaureus__quit (Ping timeout: 245 seconds)