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)

Reply via email to