Jungwoo Lee created TS-2307:
-------------------------------
Summary: Range request with If-Range does not work
Key: TS-2307
URL: https://issues.apache.org/jira/browse/TS-2307
Project: Traffic Server
Issue Type: Bug
Components: HTTP
Reporter: Jungwoo Lee
1. Precondition
– Upload file such as video or music file on Origin server
– On Chrome, access to the content file
– Repeat followings
– Delete the cache of Chrome
– Refresh( press F5 )
2. Result
– Chrome does not play the content.
3. Cause
– When Chrome requests including Range and If-Range headers, the value of
If-Range header can be set to the one of ETAG and Last Modified Date. ATS core
has unreasonable condition to check if the value of If-Range is ETAG and it
makes a bug that the valud of If-Range will be compared with Last Modified Date
event if ETAG is set to the value of If-Range.
As a result, response header does not include Content-Range when the value of
If-Range is ETAG. Sometimes this makes client abort.
- The condition to check ETAG is following(
HttpTransactCache::match_response_to_request_conditionals(HTTPHdr * request,
HTTPHdr * response) function )
- if (!if_value || if_value[0] == '"' || (comma_sep_list_len > 1 &&
if_value[1] == '/'))
- The if_value points the string of value of If-Range
4. Expected Behaviour
– Video and music file will be played in all the time on all case.
– When the value of If-Range is ETAG and is matched with ETAG of cached
content header, response should include the header related with range request
--
This message was sent by Atlassian JIRA
(v6.1#6144)