diff options
author | Eric Wong <e@80x24.org> | 2016-06-07 04:07:19 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-06-07 07:18:34 +0000 |
commit | 31a7777d0c646796e9a344c54f64269c51801fb6 (patch) | |
tree | a2920109a21846fe254980b7933b12b299493895 /lib/yahns/req_res.rb | |
parent | 46614f480a8b8f54ee32e670306c554d016bf3df (diff) | |
download | yahns-31a7777d0c646796e9a344c54f64269c51801fb6.tar.gz |
This should make it easier to figure out where certain errors are coming from and perhaps fix problems with upstreams, too. This helped me track down the problem causing public-inbox WWW component running under Perl v5.20.2 on my Debian jessie system to break and drop connections going through Plack::Middleware::Deflater with gzip: https://public-inbox.org/meta/20160607071401.29325-1-e@80x24.org/ Perl 5.14.2 on Debian wheezy did not detect this problem :x
Diffstat (limited to 'lib/yahns/req_res.rb')
-rw-r--r-- | lib/yahns/req_res.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/yahns/req_res.rb b/lib/yahns/req_res.rb index 9bb8f35..041b908 100644 --- a/lib/yahns/req_res.rb +++ b/lib/yahns/req_res.rb @@ -42,7 +42,8 @@ class Yahns::ReqRes < Kgio::Socket # :nodoc: # continue looping in middle "case @resbuf" loop when :wait_readable return rv # spurious wakeup - when nil then return c.proxy_err_response(502, self, nil) + when nil + return c.proxy_err_response(502, self, 'upstream EOF (headers)') end # NOT looping here when String # continue reading trickled response headers from upstream @@ -50,7 +51,8 @@ class Yahns::ReqRes < Kgio::Socket # :nodoc: case rv = kgio_tryread(0x2000, buf) when String then res = req.headers(@hdr, resbuf << rv) and break when :wait_readable then return rv - when nil then return c.proxy_err_response(502, self, nil) + when nil + return c.proxy_err_response(502, self, 'upstream EOF (big headers)') end while true @resbuf = false |