You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by GitBox <gi...@apache.org> on 2020/06/17 12:39:06 UTC

[GitHub] [trafficserver] ema opened a new issue #6907: Transfer-Encoding set to 'chunked' on cache update

ema opened a new issue #6907:
URL: https://github.com/apache/trafficserver/issues/6907


   One of our origin servers incorrectly returns `Transfer-Encoding: chunked` on conditional HEAD requests:
   
   ```
   $ curl -I -H "Host: noc.wikimedia.org" -H "If-Modified-Since: Wed, 17 Jun 2020 05:13:37 GMT" https://mwmaint.discovery.wmnet 2>&1
   HTTP/1.1 304 Not Modified
   date: Wed, 17 Jun 2020 08:24:12 GMT
   server: Apache
   etag: "c7c-5a83b16373584"
   cache-control: s-maxage=60, must-revalidate, max-age=0
   x-envoy-upstream-service-time: 0
   transfer-encoding: chunked
   ```
   
   If (1) ATS had previously cached the corresponding object upon receiving a GET request and (2) a HEAD request is later received after "maxage" is expired, then ATS sends a conditional HEAD request to the origin, and upon receiving a 304 like the one mentioned above with `Transfer-Encoding: chunked` it adds `Transfer-Encoding: chunked` to the object in cache. All subsequent cache hits served by ATS for the object will return both `Content-Length` and `Transfer-Encoding`, which must not be done according to rfc2616 section-4.4. Also, clients get very confused when receiving both.
   
   ```
   $ curl -v -H Host: noc.wikimedia.org localhost:3128/
   [...]
   > GET / HTTP/1.1
   > Host: noc.wikimedia.org
   > User-Agent: curl/7.64.0
   > Accept: */*
   > 
   < HTTP/1.1 200 OK
   < date: Wed, 17 Jun 2020 11:06:17 GMT
   < server: Apache
   < last-modified: Tue, 16 Jun 2020 22:30:12 GMT
   < etag: "c7c-5a83b16373584"
   < accept-ranges: bytes
   < content-length: 3196
   < vary: Accept-Encoding
   < backend-timing: D=269 t=1592391978258588
   < cache-control: s-maxage=60, must-revalidate, max-age=0
   < content-type: text/html
   < x-envoy-upstream-service-time: 0
   < Age: 1
   < Connection: keep-alive
   < X-Cache-Int: cp2027 miss
   < X-ATS-Timestamp: 1592391978
   < 
   [regular response body follows, object gets cached by ATS]
   $ sleep 62
   $ curl -v -I -H Host: noc.wikimedia.org localhost:3128/
   [...]
   > HEAD / HTTP/1.1
   > Host: noc.wikimedia.org
   > User-Agent: curl/7.64.0
   > Accept: */*
   > 
   < HTTP/1.1 200 OK
   < date: Wed, 17 Jun 2020 11:22:03 GMT
   < server: Apache
   < last-modified: Tue, 16 Jun 2020 22:30:12 GMT
   < accept-ranges: bytes
   < content-length: 3196
   < vary: Accept-Encoding
   < backend-timing: D=196 t=1592392861556186
   < cache-control: s-maxage=60, must-revalidate, max-age=0
   < content-type: text/html
   < x-envoy-upstream-service-time: 0
   < Etag: "c7c-5a83b16373584"
   < Transfer-Encoding: chunked
   < Age: 0
   < Connection: keep-alive
   < X-Cache-Int: cp2027 hit
   < X-ATS-Timestamp: 1592392923
   < 
   [note that TE:chunked is returned in response to the HEAD request]
   $ curl -v -H Host: noc.wikimedia.org localhost:3128/
   > GET / HTTP/1.1
   > Host: noc.wikimedia.org
   > User-Agent: curl/7.64.0
   > Accept: */*
   > 
   < HTTP/1.1 200 OK
   < date: Wed, 17 Jun 2020 11:22:03 GMT
   < server: Apache
   < last-modified: Tue, 16 Jun 2020 22:30:12 GMT
   < accept-ranges: bytes
   < content-length: 3196
   < vary: Accept-Encoding
   < backend-timing: D=196 t=1592392861556186
   < cache-control: s-maxage=60, must-revalidate, max-age=0
   < content-type: text/html
   < x-envoy-upstream-service-time: 0
   < Etag: "c7c-5a83b16373584"
   < Transfer-Encoding: chunked
   < Age: 0
   < Connection: keep-alive
   < X-Cache-Int: cp2027 hit
   < X-ATS-Timestamp: 1592392923
   < 
   { [3196 bytes data]
   * Illegal or missing hexadecimal sequence in chunked-encoding
   [both Content-Length and Transfer-Encoding: chunked are returned, curl complains]
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] shinrich closed issue #6907: Transfer-Encoding set to 'chunked' on cache update

Posted by GitBox <gi...@apache.org>.
shinrich closed issue #6907:
URL: https://github.com/apache/trafficserver/issues/6907


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] shinrich commented on issue #6907: Transfer-Encoding set to 'chunked' on cache update

Posted by GitBox <gi...@apache.org>.
shinrich commented on issue #6907:
URL: https://github.com/apache/trafficserver/issues/6907#issuecomment-779919961


   Fixed on master and marked for the 9.1.x branch with PR #7499 and #7473


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org