beakr
beakr

Reputation: 5867

What is a Rack - "no acceptor" error?

While trying to run my config.ru, I'm getting an odd error I can't seem to debug called a 'No acceptor' error.

Full error message:

eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError)

Does anyone know what this error means? Thanks.

Upvotes: 8

Views: 2247

Answers (3)

Tim Inman
Tim Inman

Reputation: 61

I am getting this error although there are no zombie processes and the port is not binded.

This works:

thin -p9292 start

But this does not:

rackup

Upvotes: 0

Telemachus
Telemachus

Reputation: 19715

As @Fivell says, I think the problem is that you have a previous instance of thin still running. Rather than start on another port though, I would recommend killing the previous instance. Something like this should do the job (I recreated the problem here, so this is real output on my end):

telemachus caps $ ps ax | grep ruby
  153   ??  S      7:52.18 ruby /usr/local/bin/djsd
15801   ??  S      0:00.40 ruby caps.rb  # this is our problem, get it's PID
15973 s000  S+     0:00.00 grep ruby

telemachus caps $ kill -9 15801 # thin needs -9 - hard to kill
telemachus caps $ ps ax | grep ruby
  153   ??  R      7:52.86 ruby /usr/local/bin/djsd
16057 s000  S+     0:00.00 grep ruby

Depending on how you started your app, you may need to grep for something different (say if you used shotgun or rackup).

Upvotes: 12

Fivell
Fivell

Reputation: 11929

I think the problem is that using port is already binded (maybe you started your application earlier) Try to change port

rackup config.ru -p port    #default port is 9292 change to something else

or if you use thin

thin start  -p port -a 0.0.0.0  -R config.ru #default port is 8080 change to something else

Upvotes: 1

Related Questions