Help with an error=no acceptor in a new install?

Dear friends,

I wonder if any of you kind folks might be willing to give a newbie a push in the right direction with installation? I’ve been trying to install Ares via the Digital Ocean self-hosting tutorial, which is fantastic. Unfortunately for me, I’m continually stuck at this error:

Couldn't start the game: error=no acceptor (port is in use or requires root privileges)

Troubleshooting wisely tells me that this is a common port-in-use error, but I can’t figure out why. I’m using the default ports; the game hasn’t started before; and I think I’ve opened the ports via ufw. Here’s my ufw status output:

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
4201                       ALLOW       Anywhere                  
4202                       ALLOW       Anywhere                  
4203                       ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
4201 (v6)                  ALLOW       Anywhere (v6)             
4202 (v6)                  ALLOW       Anywhere (v6)             
4203 (v6)                  ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)    

Here’s the game log output that seems to be the problem.

2020-05-21 02:53:21 FATAL - Couldn't start the game: error=no acceptor (port is in use or requires root privileges) backtrace=["/home/ares/.rvm/gems/ruby-2.6.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:531:in start_tcp_server’", “/home/ares/.rvm/gems/ruby-2.6.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:531:in start_server'", "/home/ares/aresmush/engine/aresmush/server.rb:31:in block in start’”, “/home/ares/.rvm/gems/ruby-2.6.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in run_machine'", "/home/ares/.rvm/gems/ruby-2.6.3/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in run’”, “/home/ares/aresmush/engine/aresmush/server.rb:22:in start'", "/home/ares/aresmush/engine/aresmush/bootstrapper.rb:72:in start’”, “/home/ares/aresmush/Rakefile.rb:27:in block in <top (required)>'", "/home/ares/.rvm/gems/ruby-2.6.3/gems/rake-12.3.3/lib/rake/task.rb:273:in block in execute’”, "/home/ares/.rvm/gems/ruby-2.6.3/gems/rake-12.3.3/lib/rake/task.rb:273:in each'"]

Thanks in advance for any pointers; and sorry for what’s probably a very obvious fix!

Great to find this thriving community here.

Welcome! The most common reason for seeing that error is, ironically, that the game is already running.

Even if you’ve never started it before yourself, the default install will configure it to start when the server reboots. It might have done it automatically without you realizing it. So the first thing I’d check is whether it is already running by trying to connect to the game.

Assuming you’ve already checked that, the next common issue (particularly for new games) is a host/IP issue.

  • If you’re using the raw IP address, check that you’re using the external IP and not ‘localhost’ or ‘127.0.0.1’. Those won’t work.
  • If you’re using a hostname, check your DNS settings to be sure that the A-record is properly configured and pointing to the right IP address.
  • Then check that the droplet can actually see the host configuration. It can take up to 24 hours for a new DNS record to propagate through the internet. You can test this by typing nslookup mygame.whatever.com in the server shell. If you see a response containing your droplet’s IP, you’re good to go.

If none of that helps, just ping back and we’ll try some more obscure reasons! :slight_smile:

Thanks so much, Faraday! I tried those possibilities, but got to the same error, so wound up rebuilding the droplet and starting the tutorial over. No problems this time, so I must have just muddled something up the first time. I learned something along the way!

Much appreciated.

Are you running any other games(or anything else) that uses port 4201? Are you trying to start the game using the Ares user that was created during the tutorial?

I’ve just run into this same startup issue using a brand new EC2 Ubuntu 18.04 instance on my AWS account. Unfortunately, it isn’t a simple fix, since the Elastic IP will NEVER match the IP of the instance. AWS does some networking magic to NAT their instances so the “public” IP is different than the “private” IP. It seems the installation scrips will only actually start the server using the “private” IP. :frowning_face:

You can see the resulting issues at: http://section14.eridanisystems.com:2023/

1 Like

That’s correct, the automated installation scripts are designed for the ‘supported environment’ of a Digital Ocean droplet. They may not work right on other environments.

For AWS though I believe you just need to set the bind_address parameter in the server config to be your private IP: https://aresmush.com/tutorials/config/server.html#bind_address Restart the game after changing that value and see if it works.

Finally got a chance to get back to this and yes, that worked. Thanks! It might be worth it to add a quick DNS lookup in the install scripts (if given a servername instead of an IP at the prompt). If it doesn’t resolve to the IP address of the machine have it add the local IP to the bind_address config or post a warning message about it. That seems to be the only thing required to get this to work smoothly on AWS Ubuntu 18.04 instances.

1 Like