Address already in use

Jérémy Lecour jeremy.lecour at gmail.com
Mon Jun 25 13:41:04 UTC 2012


Le 25 juin 2012 à 15:02, Manuel Palenciano Guerrero a écrit :

> Hello there,
> 
> I seem to have a problem with unix-sockets, and cannot see many people with the same situation when googling.
> 
> The problem is when upgrading (USR2 + QUIT) our applications. I get the following error very frequently but not always.
> 
> E, [2012-06-21T11:40:46.386486 #29401] ERROR -- : adding listener failed addr=/tmp/unicorn.app.sock (in use)
> E, [2012-06-21T11:40:46.386669 #29401] ERROR -- : retrying in 0.5 seconds (4 tries left)
> E, [2012-06-21T11:40:46.887724 #29401] ERROR -- : adding listener failed addr=/tmp/unicorn.app.sock (in use)
> E, [2012-06-21T11:40:46.887832 #29401] ERROR -- : retrying in 0.5 seconds (3 tries left)
> E, [2012-06-21T11:40:47.388813 #29401] ERROR -- : adding listener failed addr=/tmp/unicorn.app.sock (in use)
> E, [2012-06-21T11:40:47.388894 #29401] ERROR -- : retrying in 0.5 seconds (2 tries left)
> E, [2012-06-21T11:40:47.889878 #29401] ERROR -- : adding listener failed addr=/tmp/unicorn.app.sock (in use)
> E, [2012-06-21T11:40:47.889957 #29401] ERROR -- : retrying in 0.5 seconds (1 tries left)
> E, [2012-06-21T11:40:48.390939 #29401] ERROR -- : adding listener failed addr=/tmp/unicorn.app.sock (in use)
> E, [2012-06-21T11:40:48.391020 #29401] ERROR -- : retrying in 0.5 seconds (0 tries left)
> E, [2012-06-21T11:40:48.892002 #29401] ERROR -- : adding listener failed addr=/tmp/unicorn.app.sock (in use)
> /var/www/app/staging/shared/bundle/ruby/1.8/gems/unicorn-4.3.0/lib/unicorn/socket_helper.rb:140:in `initialize': Address already in use - /tmp/unicorn.app.sock (Errno::EADDRINUSE)
> 
> ...and the only way around that I know is stoping and starting the app, even in production.
> 
> We have preload_app => true, and ONLY listening on unix-sockets, no TCP-sockets.
> 
> The only solution I can think of would we switching to TCP, but would there be a reason on doing such ?
> 
> Is this happening to any body else ? and would you know a possible solution ?


Hi,

I've had the same issue, in the exact same context, and I've found found a fix.

As I was starting to play with Unicorn, I copied/pasted an init script and an Unicorn config script separately.

They were both trying to do a rolling upgrade and obviously one of them failed.

I've remove the rolling upgrade from the init script and do it only in the "before_fork" part of my Unicorn script.

You can find my configuration and init scripts in this Gist : https://gist.github.com/2988648


I hope this helps you.


Jérémy Lecour
Conception et développement d'applications web
06 22 43 88 94 - http://jeremy.wordpress.com - http://twitter.com/jlecour



More information about the mongrel-unicorn mailing list