On Thu, Jan 13, 2011 at 3:06 PM, Eric Wong <[email protected]> wrote: > [email protected] wrote: >> Strange error which took down my server today: >> >> Unhandled listen loop exception #<Errno::EMFILE: Too many open files - >> accept>. >> ... >> >> My unicorn.stderr.log is 7.6GB, and I rotate it every day... >> >> Before all that started I got: >> >> Read error: #<IOError: closed stream> >> /usr/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/unicorn-3.3.1/lib/unicorn/http_response.rb:37:in >> >> But the servers seemed to be basically operating at that point. > > Weird. I have many questions: > > Are you processing uploads at all?
Yes, but I have been processing uploads on Unicorn since 0.99.something > Is nginx in front of Unicorn? Yes. > Do you open a lot of files in your application and never close them?[1] I don't believe so, and certain nothing has changed there in quite awhile. > How does lsof output look for your workers? Hm. The workers seem to be at 80-90 file descriptors each. I did catch one at 787 (!) with mostly handles to a geoip database from the geoip gem, but they got collected pretty quickly. Perhaps that's the cause! > Can you check any exception capturing/logging middleware you have > for any other errors that may be swallowed? (especially > while reading env["rack.input"]) I don't have any non-standard Rails 2.3.10 middleware which reads rack.input. > I changed the socket close ordering for 3.3.1 to workaround an esoteric > "bug", but I don't see how this could happen right now... > > Does this happen with 3.3.0? I've only seen it once. If I manage to reproduce it I'll try with 3.3.0. -Greg _______________________________________________ Unicorn mailing list - [email protected] http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
