Created
October 5, 2015 16:18
-
-
Save blewa/0859a1d5fcc31e6ab7e0 to your computer and use it in GitHub Desktop.
EventMachine WS Crash
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <body> | |
| <script> | |
| // websocket setup | |
| var websocket = new WebSocket('ws://localhost:8123'); | |
| // var websocket = new WebSocket('ws://' + window.location.hostname + ':8080'); | |
| websocket.onmessage = function(msg) { | |
| console.log('got a moo'); | |
| }; | |
| </script> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'em-websocket' | |
| require 'thread' | |
| EventMachine.run { | |
| @channel = EM::Channel.new | |
| Thread.new { | |
| loop do | |
| @channel.push("moo") | |
| puts "pushed a moo" | |
| sleep 1 | |
| end | |
| } | |
| EventMachine::WebSocket.start(:host => '0.0.0.0', :port => 8123, :debug => true) do |ws| | |
| ws.onopen { | |
| sub = @channel.subscribe { |msg| ws.send msg } | |
| } | |
| ws.onclose { puts "Connection closed" } | |
| end | |
| } |
blewa
commented
Oct 5, 2015
Author
Author
Output from jruby 1.7.22:
$ ruby ws-test.rb
pushed a moo
pushed a moo
[[:initialize]]
[[:receive_data,
"GET / HTTP/1.1\r\nHost: localhost:8123\r\nConnection: Upgrade\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\nOrigin: null\r\nSec-WebSocket-Version: 13\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\r\nAccept-Encoding: gzip, deflate, sdch\r\nAccept-Language: en-US,en;q=0.8\r\nSec-WebSocket-Key: VN6hf2x5EdjPeBSICmmlsg==\r\nSec-WebSocket-Extensions: permessage-deflate; client_max_window_bits\r\n\r\n"]]
[[:accepting_ws_version, 13]]
[[:upgrade_response,
"HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: M4uCr0j0bsBwwR70QhvhhYSf2rI=\r\n\r\n"]]
pushed a moo
[[:sending_frame, :text, "moo"]]
pushed a moo
[[:sending_frame, :text, "moo"]]
pushed a moo
[[:sending_frame, :text, "moo"]]
pushed a moo
[[:sending_frame, :text, "moo"]]
pushed a moo
[[:sending_frame, :text, "moo"]]
[[:receive_data, "\x88\x82Q\xC3\x14\xD7R*"]]
[[:message_received, :close, "\x03\xE9"]]
[[:close_frame_received, 1001, ""]]
[[:sending_frame, :close, "\x03\xE9"]]
[[:unbind, :connection]]
Connection closed
pushed a moo
[[:sending_frame, :text, "moo"]]
com/rubyeventmachine/EmReactor.java:434:in `sendData': java.lang.NullPointerException
from com/rubyeventmachine/EmReactor.java:438:in `sendData'
from java/lang/reflect/Method.java:497:in `invoke'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:127:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:127:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:127:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:127:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/connection.rb:328:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/connection.rb:328:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/connection.rb:328:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/connection.rb:328:in `send_data'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:151:in `send_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:151:in `send_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:151:in `send_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:151:in `send_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:155:in `send_text_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:155:in `send_text_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:155:in `send_text_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/framing07.rb:155:in `send_text_frame'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/connection.rb:167:in `send_text'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/connection.rb:167:in `send_text'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/connection.rb:167:in `send_text'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/em-websocket-0.5.1/lib/em-websocket/connection.rb:167:in `send_text'
from ws-test.rb:17:in `(root)'
from ws-test.rb:17:in `(root)'
from ws-test.rb:17:in `(root)'
from ws-test.rb:17:in `(root)'
from ws-test.rb:17:in `(root)'
from ws-test.rb:17:in `(root)'
from ws-test.rb:17:in `(root)'
from ws-test.rb:17:in `(root)'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from org/jruby/RubyArray.java:1613:in `each'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from org/jruby/RubyArray.java:1613:in `each'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/em/channel.rb:43:in `push'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:250:in `schedule'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:250:in `schedule'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:250:in `schedule'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:250:in `schedule'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:959:in `run_deferred_callbacks'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:959:in `run_deferred_callbacks'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:959:in `run_deferred_callbacks'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:959:in `run_deferred_callbacks'
from org/jruby/RubyFixnum.java:280:in `times'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:956:in `run_deferred_callbacks'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:956:in `run_deferred_callbacks'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:956:in `run_deferred_callbacks'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:956:in `run_deferred_callbacks'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:1486:in `event_callback'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:1486:in `event_callback'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:1486:in `event_callback'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:1486:in `event_callback'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:92:in `eventCallback'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:92:in `eventCallback'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:92:in `eventCallback'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:92:in `eventCallback'
from com/rubyeventmachine/EmReactor.java:89:in `eventCallback'
from java/lang/reflect/Method.java:497:in `invoke'
from com/rubyeventmachine/EmReactor.java:349:in `runLoopbreaks'
from com/rubyeventmachine/EmReactor.java:102:in `run'
from java/lang/reflect/Method.java:497:in `invoke'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:111:in `run_machine'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:111:in `run_machine'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:111:in `run_machine'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/jeventmachine.rb:111:in `run_machine'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:187:in `run'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:187:in `run'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:187:in `run'
from /home/ablew/.rvm/gems/jruby-1.7.22@transaction_map/gems/eventmachine-1.0.3-java/lib/eventmachine.rb:187:in `run'
from ws-test.rb:4:in `(root)'
from ws-test.rb:4:in `(root)'
from ws-test.rb:4:in `(root)'
from ws-test.rb:4:in `(root)'
from ws-test.rb:4:in `(root)'
from ws-test.rb:4:in `(root)'
from ws-test.rb:4:in `(root)'
from ws-test.rb:4:in `(root)'
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment