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(-)
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 @@ def dropping(fdmap)
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
--
EW
--
unsubscribe: [email protected]
archive: https://yhbt.net/yahns-public/