Ruby 2.0 Bad file descriptor (Errno::EBADF)

Eric Wong normalperson at
Wed Sep 4 19:29:31 UTC 2013

Eric Chapweske <eac at> wrote:
> We ran into the same issue. For us, it was because we were executing the 
> process using bundle exec.  Bundler doesn't preserve the 1.9 behavior around
> FD inheritance.

Thanks Eric!  I just pushed out the following and updated the website.

Subject: [PATCH] Sandbox: document SIGUSR2 + bundler issue with 2.0.0

Thanks to Eric Chapweske for the heads up.

 Sandbox | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Sandbox b/Sandbox
index 1df149b..3c7f226 100644
--- a/Sandbox
+++ b/Sandbox
@@ -60,6 +60,13 @@ If you're using an older Bundler version (0.9.x), you may need to set or
 reset GEM_HOME, GEM_PATH and PATH environment variables in the
 before_exec hook as illustrated by
+=== Ruby 2.0.0 close-on-exec and SIGUSR2 incompatibility
+Ruby 2.0.0 enforces FD_CLOEXEC on file descriptors by default.  unicorn
+has been prepared for this behavior since unicorn 4.1.0, but we forgot
+to remind the Bundler developers.  This issue is being tracked here:
 == Isolate
 === Running
Eric Wong

More information about the mongrel-unicorn mailing list