[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