ryanb / private_pub

Handle pub/sub messaging through private channels in Rails using Faye.
MIT License
864 stars 228 forks source link

ERROR] [Faye::RackAdapter] undefined method `[]' for nil:NilClass #47

Open ghost opened 12 years ago

ghost commented 12 years ago

I followed the video and read the instructions over and over and I keep getting this error when trying to use priviate_pub. I can get everything to work fine with just faye but when I try to use priviate_pub I get these nil errors. I discovered it couldn't find the 'server' variable when trying to load the chat and when I supplied it using the following

It worked, so I believe my config file is not being read for some reason. Has anyone else ran into this issue?

pctechjon commented 12 years ago

Seem to be connected to https://github.com/faye/faye/issues/129

Supposed to be fixed for faye already in this commit: https://github.com/faye/faye/commit/91b9b1d5

but still affecting private_pub

$ rackup private_pub.ru -s thin -E production
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:9292, CTRL+C to stop
2012-03-19 19:47:52 [ERROR] [Faye::RackAdapter] undefined method `[]' for nil:NilClass
Backtrace:
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/private_pub-1.0.1/lib/private_pub/faye_extension.rb:20:in `authenticate_subscribe'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/private_pub-1.0.1/lib/private_pub/faye_extension.rb:9:in `incoming'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/protocol/extensible.rb:33:in `block in pipe_through_extensions'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/protocol/extensible.rb:38:in `call'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/protocol/extensible.rb:38:in `pipe_through_extensions'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/protocol/server.rb:62:in `block in process'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/protocol/server.rb:61:in `each'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/protocol/server.rb:61:in `process'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/adapters/rack_adapter.rb:123:in `handle_request'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/faye-0.8.1/lib/faye/adapters/rack_adapter.rb:83:in `call'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/connection.rb:80:in `block in pre_process'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/connection.rb:78:in `catch'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/connection.rb:78:in `pre_process'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/connection.rb:53:in `process'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/connection.rb:38:in `receive_data'    
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run_machine'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/eventmachine-1.0.0.beta.4/lib/eventmachine.rb:179:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/backends/base.rb:61:in `start'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/server.rb:159:in `start'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler/thin.rb:13:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:265:in `start'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:137:in `start'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/rack-1.4.1/bin/rackup:4:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.3-p125/bin/rackup:19:in `load'
/usr/local/rvm/gems/ruby-1.9.3-p125/bin/rackup:19:in `<main>'
^C>> Stopping ...
ghost commented 12 years ago

Yeah I built the from the source in the git and it didn't resolve my issue. My issue seems to stem from the fact that the config file is not being properly loaded. Not sure how to resolve it.

ghost commented 12 years ago

Yeah It only happens twice, I believe once for the server and once for the token. If I find a solution Ill post it.

pctechjon commented 12 years ago

I'm not exactly sure what I did to resolve this -- but it's working for me after I re-did the private_pub installation today.

ghost commented 12 years ago

I will give it another try, I would love for it to magically resolve itself for me.

ghost commented 12 years ago

Yeah, I tried re-downloading the gem, redoing the rails generate install and I'm still receiving this error. I even tried to specify n the gem file to use the newest one from the git by doing ,:git => 'git address'.

Been banging my head against this problem for more then a day =(

pctechjon commented 12 years ago

Did you try adding this to private_pub.ru

Faye::WebSocket.load_adapter('thin')

Should look like this

# private_pub.ru
require "bundler/setup"
require "yaml"
require "faye"
require "private_pub"

Faye::WebSocket.load_adapter('thin')

PrivatePub.load_config(File.expand_path("../config/private_pub.yml", __FILE__), ENV["RAILS_ENV"] || "development")
run PrivatePub.faye_app

If you didn't, it would give an error similar to https://github.com/faye/faye/issues/131

ghost commented 12 years ago

Yeah unfortunately I do have that line, without the line 'Faye::Websocket.load_adapter('thin') I get the following error:

api.rb:75:in block in close': undefined methodclose_connection_after_writing' for nil:NilClass (NoMethodError)

When I add it in or use your exact config file I get this error:

2012-03-21 22:26:20 [ERROR] [Faye::RackAdapter] undefined method []' for nil:NilClass Backtrace: /usr/local/rvm/gems/ruby-1.9.3-p0/bundler/gems/private_pub-914871a67eca/lib/private_pub/faye_extension.rb:20:inauthenticate_subscribe' /usr/local/rvm/gems/ruby-1.9.3-p0/bundler/gems/private_pub-914871a67eca/lib/private_pub/faye_extension.rb:9:in incoming' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-0.8.1/lib/faye/protocol/extensible.rb:33:inblock in pipe_through_extensions' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-0.8.1/lib/faye/protocol/extensible.rb:38:in call' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-0.8.1/lib/faye/protocol/extensible.rb:38:inpipe_through_extensions' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-0.8.1/lib/faye/protocol/server.rb:62:in block in process' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-0.8.1/lib/faye/protocol/server.rb:61:ineach' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-0.8.1/lib/faye/protocol/server.rb:61:in process' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-0.8.1/lib/faye/adapters/rack_adapter.rb:149:inblock in handle_websocket' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/websocket/api/event_target.rb:24:in call' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/websocket/api/event_target.rb:24:indispatch_event' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/websocket/api.rb:45:in receive' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/websocket/hybi_parser.rb:259:inemit_frame' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/websocket/hybi_parser.rb:124:in parse' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/websocket.rb:172:inparse' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/websocket.rb:202:in receive' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/faye-websocket-0.4.4/lib/faye/adapters/thin.rb:46:inreceive_data' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in run_machine' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:inrun' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/thin-1.3.1/lib/thin/backends/base.rb:61:in start' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/thin-1.3.1/lib/thin/server.rb:159:instart' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/handler/thin.rb:13:in run' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:265:instart' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:137:in start' /usr/local/rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/bin/rackup:4:in<top (required)>' /usr/local/rvm/gems/ruby-1.9.3-p0/bin/rackup:19:in load' /usr/local/rvm/gems/ruby-1.9.3-p0/bin/rackup:19:in

'

It prints this twice. The program stays open but it fails to work. Unfortunately I know this issue is with private_pub because when I setup faye without private pub it works fine. However I would really like to use the features provided by private_pub so it is very important to me to get this to work.

ghost commented 12 years ago

I deleted everything and started from scratch and it worked. I don't know exactly what did it. Oddly enough I could even leave out the 'Faye::WebSocket.load_adapter('thin')' and it still worked. Im so confused but Im not gonna fight with it.

ghost commented 12 years ago

I'm actually still having this issue. I start a fresh application, I install faye, thin and private pub and launch it and I get the error.

dubenko commented 12 years ago

You can change in private_pub.ru file: run PrivatePub.faye_app to run PrivatePub.faye_app.listen(9292) and this solve problem!

tokenvolt commented 11 years ago

@chemicalfire Did you manage to fix this error?

danil-z commented 11 years ago

same is for me:

rackup private_pub.ru -s thin -E production

Thin web server (v1.5.0 codename Knife) Maximum connections set to 1024 Listening on 0.0.0.0:9292, CTRL+C to stop

2012-12-03 10:44:08 [ERROR] [Faye::RackAdapter] undefined method []' for nil:NilClass Backtrace: /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:20:inauthenticate_subscribe' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:9:in incoming' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/extensible.rb:33:inblock in pipe_through_extensions' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/extensible.rb:38:in call' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/extensible.rb:38:inpipe_through_extensions' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/server.rb:64:in block in process' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/server.rb:63:ineach' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/server.rb:63:in process' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/adapters/rack_adapter.rb:143:inblock in handle_websocket' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/api/event_target.rb:24:in call' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/api/event_target.rb:24:indispatch_event' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/api.rb:45:in receive' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/hybi_parser.rb:260:inemit_frame' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/hybi_parser.rb:125:in parse' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket.rb:172:inparse' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket.rb:202:in receive' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/adapters/thin.rb:46:inreceive_data' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in run_machine' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:inrun' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/backends/base.rb:63:in start' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/server.rb:159:instart' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/handler/thin.rb:13:in run' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/server.rb:265:instart' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/server.rb:137:in start' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/bin/rackup:4:in<top (required)>' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/rackup:19:in load' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/rackup:19:in

' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in eval' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in
' 2012-12-03 10:44:08 [ERROR] [Faye::RackAdapter] undefined method []' for nil:NilClass Backtrace: /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:20:inauthenticate_subscribe' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:9:in incoming' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/extensible.rb:33:inblock in pipe_through_extensions' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/extensible.rb:38:in call' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/extensible.rb:38:inpipe_through_extensions' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/server.rb:64:in block in process' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/server.rb:63:ineach' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/protocol/server.rb:63:in process' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.6/lib/faye/adapters/rack_adapter.rb:143:inblock in handle_websocket' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/api/event_target.rb:24:in call' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/api/event_target.rb:24:indispatch_event' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/api.rb:45:in receive' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/hybi_parser.rb:260:inemit_frame' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket/hybi_parser.rb:125:in parse' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket.rb:172:inparse' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/websocket.rb:202:in receive' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/adapters/thin.rb:46:inreceive_data' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in run_machine' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:inrun' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/backends/base.rb:63:in start' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/server.rb:159:instart' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/handler/thin.rb:13:in run' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/server.rb:265:instart' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/server.rb:137:in start' /Users/danil/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/bin/rackup:4:in<top (required)>' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/rackup:19:in load' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/rackup:19:in
' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in eval' /Users/danil/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in
'

danil-z commented 11 years ago

you can reproduce it:

rails g new dummy
cd dummy
echo "gem 'private_pub' " >>  Gemfile
echo "gem 'thin' " >>  Gemfile
bundle
rackup private_pub.ru -s thin -E production
ryanb commented 11 years ago

@blackbumer I followed those commands (adding rails g private_pub:install) but am unable to reproduce the problem. What version of Rails are you using? Maybe toss that dummy app which is causing the problem on GitHub and I will see if that reproduces the problem for me.

tokenvolt commented 11 years ago

I'm getting the same issue after reproducing that dummy app. I'am using rails 3.2.9.

danil-z commented 11 years ago

3.2.9

danil-z commented 11 years ago

Ryan the problem has gone after reinstalling all gems and reboot. Thanks for you attention and good job :) Are are my joy in rails world.

mimmo commented 11 years ago

Hi ryan, there are some news about this issue? I don't know how to solve it. I paste you my stack trace, hoping it helps

2013-02-07 16:28:42 [ERROR] [Faye::RackAdapter] undefined method `[]' for nil:NilClass
Backtrace:
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:32:in `authenticate_publish'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:11:in `incoming'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/protocol/extensible.rb:33:in `block in pipe_through_extensions'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/protocol/extensible.rb:38:in `call'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/protocol/extensible.rb:38:in `pipe_through_extensions'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/protocol/server.rb:66:in `block in process'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/protocol/server.rb:65:in `each'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/protocol/server.rb:65:in `process'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/adapters/rack_adapter.rb:115:in `handle_request'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-0.8.8/lib/faye/adapters/rack_adapter.rb:91:in `call'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/connection.rb:81:in `block in pre_process'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/connection.rb:79:in `catch'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/connection.rb:79:in `pre_process'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/connection.rb:54:in `process'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/adapters/thin.rb:41:in `process'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/connection.rb:39:in `receive_data'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/faye-websocket-0.4.6/lib/faye/adapters/thin.rb:45:in `receive_data'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/backends/base.rb:63:in `start'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/thin-1.5.0/lib/thin/server.rb:159:in `start'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.4/lib/rack/handler/thin.rb:13:in `run'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.4/lib/rack/server.rb:268:in `start'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.4/lib/rack/server.rb:137:in `start'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.4/bin/rackup:4:in `<top (required)>'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/bin/rackup:23:in `load'
/Users/dome/.rvm/gems/ruby-1.9.3-p194/bin/rackup:23:in `<main>'
mimmo commented 11 years ago

Now it's working. The issue is generated from the old faye javascript included in the page. Leaving the page opened in a browser the js still send message subscription to the faye server, even if it was changed. Now it's fully working. I have added in the private_pub.ru file this lines for verbose logging, maybe useful for someone.

Faye::Logging.log_level = :debug
Faye.logger = lambda { |m| puts m }

bye

Neodelf commented 10 years ago

How solved this problem with /usr/local/lib/ruby/gems/2.0.0/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:20:in authenticate_subscribe': undefined method[]' for nil:NilClass (NoMethodError) ? Thanks!

ahmedmelhady7 commented 9 years ago

@ryanb I am still facing this problem for few days now and I can't figure it out

Thin web server (v1.6.2 codename Doc Brown)
Maximum connections set to 1024
Listening on 0.0.0.0:9292, CTRL+C to stop
/Library/Ruby/Gems/2.0.0/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:20:in `authenticate_subscribe': undefined method `[]' for nil:NilClass (NoMethodError)
from /Library/Ruby/Gems/2.0.0/gems/private_pub-1.0.3/lib/private_pub/faye_extension.rb:9:in `incoming'
        from /Library/Ruby/Gems/2.0.0/gems/faye-1.0.3/lib/faye/protocol/extensible.rb:38:in `block in pipe_through_extensions'
        from /Library/Ruby/Gems/2.0.0/gems/faye-1.0.3/lib/faye/protocol/extensible.rb:41:in `call'
        from /Library/Ruby/Gems/2.0.0/gems/faye-1.0.3/lib/faye/protocol/extensible.rb:41:in `pipe_through_extensions'
        from /Library/Ruby/Gems/2.0.0/gems/faye-1.0.3/lib/faye/protocol/server.rb:66:in `block in process'
        from /Library/Ruby/Gems/2.0.0/gems/faye-1.0.3/lib/faye/protocol/server.rb:65:in `each'
        from /Library/Ruby/Gems/2.0.0/gems/faye-1.0.3/lib/faye/protocol/server.rb:65:in `process'
        from /Library/Ruby/Gems/2.0.0/gems/faye-1.0.3/lib/faye/adapters/rack_adapter.rb:113:in `block in handle_request'
        from /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:959:in `call'
        from /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:959:in `block in run_deferred_callbacks'
        from /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:956:in `times'
        from /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:956:in `run_deferred_callbacks'
        from /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
        from /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
        from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
        from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
        from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/handler/thin.rb:16:in `run'
        from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:264:in `start'
        from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:141:in `start'
        from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/bin/rackup:4:in `<top (required)>'
        from /usr/bin/rackup:23:in `load'
        from /usr/bin/rackup:23:in `<main>'
liangtfm commented 9 years ago

Hey has anyone figured out how to fix this issue? I'm getting this error on Ruby 2/Rails 4. It was working fine but then something happened and I can't seem to get it to run anymore. Also getting the 'authenticate_subscribe' nomethoderror.

zia-mking commented 5 years ago

I am also getting same error. Tried different versions of private_pub with rails 4.2 and rails 5.0.2 and ruby version 2.2.2. With all of this I got same error