* Unicorn in the jail
@ 2011-08-03 16:41 Tatsuya Ono
2011-08-03 18:03 ` Eric Wong
0 siblings, 1 reply; 3+ messages in thread
From: Tatsuya Ono @ 2011-08-03 16:41 UTC (permalink / raw)
To: mongrel-unicorn
I ran into a problem when sending USR2 signal to master process which
is listening a TCP port. It shows the following error in log.
err: adding listener failed addr=0.0.0.0:3010 (in use)
I found similar error reported on this mailing list and yes, the host
I got the error was in the FreeBSD jail.
http://rubyforge.org/pipermail/mongrel-unicorn/2009-December/000205.html
http://rubyforge.org/pipermail/mongrel-unicorn/2009-December/000212.html
I dug into the problem and found some interesting thing. I want to
share it and the solution here.
* Why does it happen in the Jail?
When you bind 0.0.0.0 address to the socket on a Jail host, Jail
doesn't bind 0.0.0.0. Instead of it, it binds to the IP address of the
host such as 10.100.1.50, 192.168.1.50, etc.
Then the problem happens in Unicorn::HttpServer#inherit_listeners!
when it gets signal like USR2.
https://github.com/defunkt/unicorn/blob/406b8b0e2ed6e5be34d8ec3cd4b16048233c2856/lib/unicorn/http_server.rb#L703-731
Here you get 10.100.1.50 (for example) as inherited address from
ENV['UNICORN_FD'] but 0.0.0.0. So Unicorn tries to bind to 0.0.0.0
(again) at line 728. Then it fails because it is actually in use.
* How to solve the issue?
Thankfully unicorn.conf is ruby script so that I could write a logic
for Jail hosts without specifying IP address of those hosts (which we
want to avoid since we deploy it multiple servers). I share the
configuration file.
https://gist.github.com/1122965
Then Unicorn flies in the jail happily.
Tatsuya Ono
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Unicorn in the jail
2011-08-03 16:41 Unicorn in the jail Tatsuya Ono
@ 2011-08-03 18:03 ` Eric Wong
2011-08-03 21:57 ` Tatsuya Ono
0 siblings, 1 reply; 3+ messages in thread
From: Eric Wong @ 2011-08-03 18:03 UTC (permalink / raw)
To: unicorn list
Thanks! I've pushed out the following patch and updated the site:
>From ec8a8f32d257290aac377f1c7b1c496e1df75f73 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Wed, 3 Aug 2011 11:00:28 -0700
Subject: [PATCH] KNOWN_ISSUES: add link to FreeBSD jail workaround notes
Thanks to Tatsuya Ono on the unicorn mailing list.
---
KNOWN_ISSUES | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/KNOWN_ISSUES b/KNOWN_ISSUES
index 2bd4151..f323c68 100644
--- a/KNOWN_ISSUES
+++ b/KNOWN_ISSUES
@@ -3,6 +3,9 @@
Occasionally odd {issues}[link:ISSUES.html] arise without a transparent or
acceptable solution. Those issues are documented here.
+* Issues with FreeBSD jails can be worked around as documented by Tatsuya Ono:
+ http://mid.gmane.org/CAHBuKRj09FdxAgzsefJWotexw-7JYZGJMtgUp_dhjPz9VbKD6Q@mail.gmail.com
+
* PRNGs (pseudo-random number generators) loaded before forking
(e.g. "preload_app true") may need to have their internal state
reset in the after_fork hook. Starting with \Unicorn 3.6.1, we
--
Eric Wong
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: Unicorn in the jail
2011-08-03 18:03 ` Eric Wong
@ 2011-08-03 21:57 ` Tatsuya Ono
0 siblings, 0 replies; 3+ messages in thread
From: Tatsuya Ono @ 2011-08-03 21:57 UTC (permalink / raw)
To: unicorn list
Thank you, Eric!
Tatsuya
On 3 August 2011 19:03, Eric Wong <normalperson@yhbt.net> wrote:
>
> Thanks! I've pushed out the following patch and updated the site:
>
> >From ec8a8f32d257290aac377f1c7b1c496e1df75f73 Mon Sep 17 00:00:00 2001
> From: Eric Wong <normalperson@yhbt.net>
> Date: Wed, 3 Aug 2011 11:00:28 -0700
> Subject: [PATCH] KNOWN_ISSUES: add link to FreeBSD jail workaround notes
>
> Thanks to Tatsuya Ono on the unicorn mailing list.
> ---
> KNOWN_ISSUES | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/KNOWN_ISSUES b/KNOWN_ISSUES
> index 2bd4151..f323c68 100644
> --- a/KNOWN_ISSUES
> +++ b/KNOWN_ISSUES
> @@ -3,6 +3,9 @@
> Occasionally odd {issues}[link:ISSUES.html] arise without a transparent or
> acceptable solution. Those issues are documented here.
>
> +* Issues with FreeBSD jails can be worked around as documented by Tatsuya Ono:
> + http://mid.gmane.org/CAHBuKRj09FdxAgzsefJWotexw-7JYZGJMtgUp_dhjPz9VbKD6Q@mail.gmail.com
> +
> * PRNGs (pseudo-random number generators) loaded before forking
> (e.g. "preload_app true") may need to have their internal state
> reset in the after_fork hook. Starting with \Unicorn 3.6.1, we
> --
> Eric Wong
> _______________________________________________
> Unicorn mailing list - mongrel-unicorn@rubyforge.org
> http://rubyforge.org/mailman/listinfo/mongrel-unicorn
> Do not quote signatures (like this one) or top post when replying
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-08-03 22:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-03 16:41 Unicorn in the jail Tatsuya Ono
2011-08-03 18:03 ` Eric Wong
2011-08-03 21:57 ` Tatsuya Ono
Code repositories for project(s) associated with this public inbox
https://yhbt.net/unicorn.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).