You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficcontrol.apache.org by GitBox <gi...@apache.org> on 2019/03/28 15:13:53 UTC

[GitHub] [trafficcontrol] limited opened a new issue #3444: Range Requests are cached incorrectly when ignoring query strings and caching exact ranges

limited opened a new issue #3444: Range Requests are cached incorrectly when ignoring query strings and caching exact ranges
URL: https://github.com/apache/trafficcontrol/issues/3444
 
 
   When a delivery service is configured with qstring_ignore = 1 and cache_range_request plugin enabled, byte range requests will be cached incorrectly. 
   
   ATS only allows the cachekey to be set once per transaction, and both the cachekey plugin (for qstring_ignore=1) and the cache_range_request plugin are trying to modify the cachekey. As cachekey.so runs first, it determines the cachekey without respect for the byte range requested. When cache_range_requests.so runs, it tries to set the cache key a second time, but fails silently. 
   
   Example:
   ```
   GET http://customer.com/master.m3u8
   Range: bytes=0-100
   ```
   
   Results in a cache key of `http://customer.com/master.m3u8` which is missing the critical byte range value. When a viewer requests a different byte range from the same URL (ie. bytes=101-300), their request will match the existing cache key and they will be delivered the wrong content. 
   
   Strangely enough, this includes the response headers from the original request so you can see a request for 101-300 answered with an actual range of 0-100.
   
   See also #3393 and #1085 for some related issues in this area.

----------------------------------------------------------------
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


With regards,
Apache Git Services