[Varnish] #1465: Empty chunked response on storage failure
Varnish
varnish-bugs at varnish-cache.org
Fri Mar 28 09:21:33 CET 2014
#1465: Empty chunked response on storage failure
----------------------+-------------------
Reporter: lkarsten | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: varnishd | Version: trunk
Severity: normal | Keywords:
----------------------+-------------------
When Varnish is not able to get storage for a new object, it appears to
send a 200 OK with Transfer-Encoding: chunked, but no body data.
Expected result: Varnish resetting the TCP connection to indicate failure.
What is happening: packet trace shows a well-formed HTTP header, then the
connection is closed by
the remote/Varnish with FIN+ACK, which my system happily responds FIN+ACK
to.
varnishd (varnish-4.0.0-tp2 revision 405aad9)
From Wireshark's "follow TCP connection":
{{{
GET / HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: hyse.org
User-Agent: lwp-request/6.03 libwww-perl/6.05
HTTP/1.1 200 OK
Server: nginx/1.4.1 (Ubuntu)
Content-Type: text/html
Last-Modified: Wed, 26 Feb 2014 10:16:05 GMT
Date: Fri, 28 Mar 2014 07:24:58 GMT
X-Varnish: 136268
Age: 0
Via: 1.1 varnish (v4)
Transfer-Encoding: chunked
Connection: close
Accept-Ranges: bytes
}}}
varnishlog of the failing request:
{{{
* << Session >> 136267
- Begin sess 0 HTTP/1
- SessOpen 84.215.144.99 41700 :80 91.227.249.12 80
1395991497.998688 15
- Link req 136268 rxreq
- SessClose REM_CLOSE 0.030 1 0 0 1 1 0
- End
** << Request >> 136268
-- Begin req 136267 rxreq
-- ReqStart 84.215.144.99 41700
-- ReqMethod GET
-- ReqURL /
-- ReqProtocol HTTP/1.1
-- ReqHeader TE: deflate,gzip;q=0.3
-- ReqHeader Connection: TE, close
-- ReqHeader Host: hyse.org
-- ReqHeader User-Agent: lwp-request/6.03 libwww-perl/6.05
-- ReqHeader X-Forwarded-For: 84.215.144.99
-- VCL_call RECV
-- VCL_return hash
-- VCL_call HASH
-- VCL_return lookup
-- Debug "XXXX MISS"
-- VCL_call MISS
-- VCL_return fetch
-- Link bereq 136269 fetch
-- RespProtocol HTTP/1.1
-- RespStatus 200
-- RespResponse OK
-- RespHeader Server: nginx/1.4.1 (Ubuntu)
-- RespHeader Date: Fri, 28 Mar 2014 07:24:58 GMT
-- RespHeader Content-Type: text/html
-- RespHeader Last-Modified: Wed, 26 Feb 2014 10:16:05 GMT
-- RespHeader Content-Encoding: gzip
-- RespUnset Date: Fri, 28 Mar 2014 07:24:58 GMT
-- RespHeader Date: Fri, 28 Mar 2014 07:24:58 GMT
-- RespHeader X-Varnish: 136268
-- RespHeader Age: 0
-- RespHeader Via: 1.1 varnish (v4)
-- VCL_call DELIVER
-- VCL_return deliver
-- Debug "RES_MODE 48"
-- RespUnset Content-Encoding: gzip
-- RespHeader Transfer-Encoding: chunked
-- RespHeader Connection: close
-- RespHeader Accept-Ranges: bytes
-- Gzip U D - 0 0 0 0 0
-- Debug "XXX REF 2"
-- ReqEnd 1395991498.026633501 1395991497.998687983 -0.029036760
0.001091242 -0.029036760
-- End
*** << BeReq >> 136269
--- Begin bereq 136268 fetch
--- BereqMethod GET
--- BereqURL /
--- BereqProtocol HTTP/1.1
--- BereqHeader Host: hyse.org
--- BereqHeader User-Agent: lwp-request/6.03 libwww-perl/6.05
--- BereqHeader X-Forwarded-For: 84.215.144.99
--- BereqHeader Accept-Encoding: gzip
--- BereqHeader X-Varnish: 136269
--- VCL_call BACKEND_FETCH
--- VCL_return fetch
--- BackendOpen 18 default(127.0.0.1,,8085) 127.0.0.1 47270
--- Backend 18 default default(127.0.0.1,,8085)
--- BerespProtocol HTTP/1.1
--- BerespStatus 200
--- BerespResponse OK
--- BerespHeader Server: nginx/1.4.1 (Ubuntu)
--- BerespHeader Date: Fri, 28 Mar 2014 07:24:58 GMT
--- BerespHeader Content-Type: text/html
--- BerespHeader Last-Modified: Wed, 26 Feb 2014 10:16:05 GMT
--- BerespHeader Transfer-Encoding: chunked
--- BerespHeader Connection: keep-alive
--- BerespHeader Content-Encoding: gzip
--- TTL RFC 20 -1 -1 1395991498 1395991498 1395991498 0 0
--- VCL_call BACKEND_RESPONSE
--- TTL VCL 20 60 0 1395991498
--- TTL VCL 20 60 86400 1395991498
--- VCL_return deliver
--- Storage malloc s0
--- ObjProtocol HTTP/1.1
--- ObjStatus 200
--- ObjResponse OK
--- ObjHeader Server: nginx/1.4.1 (Ubuntu)
--- ObjHeader Date: Fri, 28 Mar 2014 07:24:58 GMT
--- ObjHeader Content-Type: text/html
--- ObjHeader Last-Modified: Wed, 26 Feb 2014 10:16:05 GMT
--- ObjHeader Content-Encoding: gzip
--- Fetch_Body 2 chunked stream
--- ExpKill LRU_Cand p=0x7ff3c400ce90 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3c405d7c0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3c4030a50 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b8254ce0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b8254d70 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b8254f00 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3c03a7120 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3c03a7440 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3c0412ed0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3c04131f0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b840e320 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b806d240 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b800b960 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b800bdb0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3c04183d0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff3b80b8780 f=0x0 r=2
[ 560 lines of ExpKill removed ]
--- ExpKill LRU_Cand p=0x7ff3c10439b0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff2c40ffec0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff2c4126ec0 f=0x0 r=2
--- ExpKill LRU_Cand p=0x7ff2b58a2920 f=0x0 r=7
--- ExpKill LRU_Cand p=0x7ff38c000e00 f=0x200 r=3
--- ExpKill LRU_Fail
--- FetchError Could not get storage
--- Gzip u F - 0 0 0 0 0
--- BackendClose 18 default(127.0.0.1,,8085)
--- BereqEnd 1395991498.026790142 1395991498.028229713 0.000505485
0.000008513 0.000057440 0.000065953
--- End
}}}
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1465>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list