rickyrauch / Balloons.IO

Balloons.IO is a web multi-room chat server and client ready to use. It’s built with the help of node.JS, Express, Socket.IO and Redis. Balloons uses PassportJS for authentication with Twitter and Facebook
http://balloons.io
2.36k stars 491 forks source link

Abort trap 6 with node v0.10.10 when requesting socket.io.js #92

Closed curious-attempt-bunny closed 11 years ago

curious-attempt-bunny commented 11 years ago

I'm using node 0.10.10

$ node --version v0.10.10

The server starts fine.

$ DEBUG=balloons:config node balloons.js ... info - socket.io started Balloons.io started on port 6789 balloons:config Connected to redis. +101ms balloons:config Redis client ready. +3ms

I can authenticate via twitter. But once I enter a room the app dies when socket.io.js is requested.

I can replicate this and verify that the error is indeed causes by requesting socket.io.js:

$ curl 'http://lvh.me:6789/socket.io/socket.io.js' -H 'Accept: /' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Referer: http://lvh.me:6789/8cddfa' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36' --compressed curl: (52) Empty reply from server

The server console output is:

Assertion failed: (!uvio_active(&stream->io_watcher, UVPOLLOUT) || !ngx_queue_empty(&stream->write_completed_queue) || !ngx_queue_empty(&stream->write_queue) || stream->shutdown_req != NULL || stream->connect_req != NULL), function uv_read_stop, file ../deps/uv/src/unix/stream.c, line 1329. Abort trap: 6

curious-attempt-bunny commented 11 years ago

In fact this is all that's needed to cause the error:

$ curl -i 'http://lvh.me:6789/socket.io/socket.io.js' curl: (52) Empty reply from server

curious-attempt-bunny commented 11 years ago

This is a known socket.io & Mac OSX error with v0.10.8+. v0.10.7 worked for me. See https://github.com/joyent/node/issues/5622