diff options
author | Eric Wong <e@80x24.org> | 2018-12-29 21:07:16 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2018-12-30 02:23:48 +0000 |
commit | add2edafb14f72788823af2707d457357f717983 (patch) | |
tree | e7487460b755c2168c564fa97616e01ce9693c8a | |
parent | 86ea6ed1417bfe731cadeced0f6c386cfc0e0894 (diff) | |
download | yahns-add2edafb14f72788823af2707d457357f717983.tar.gz |
Still not sure what's going on with the proxy_pass code, but something in the Fdmap code is causing shutdowns to take way longer than expected...
-rw-r--r-- | lib/yahns/server.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/yahns/server.rb b/lib/yahns/server.rb index 128b894..2ad65a9 100644 --- a/lib/yahns/server.rb +++ b/lib/yahns/server.rb @@ -500,7 +500,18 @@ class Yahns::Server # :nodoc: if drop_acceptors[0] || fdmap.size > 0 timeout = @shutdown_expire < Yahns.now ? -1 : @shutdown_timeout n = fdmap.desperate_expire(timeout) - return false if timeout == -1 + return false if n == 0 # all done! + + # FIXME: sometimes shutdowns take a long time when using proxy_pass + # Still not sure what's going on and it takes a while to reproduce.. + if timeout == -1 + @logger.error( +"exiting on shutdown_timeout=#@shutdown_timeout #{fdmap.size} FD(s) remain" + ) + + system('lsof', '-n', '-p', "#$$") if RUBY_PLATFORM =~ /linux/ + return false + end $0 = "yahns quitting, #{n} FD(s) remain" true |