From add2edafb14f72788823af2707d457357f717983 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 29 Dec 2018 21:07:16 +0000 Subject: server: extra shutdown timeout debugging 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... --- lib/yahns/server.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lib') 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 -- cgit v1.2.3-24-ge0c7