[
https://issues.apache.org/jira/browse/TS-2307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jungwoo Lee updated TS-2307:
----------------------------
Description:
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 value 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 header of
cached content , response should include the header related with range request.
was:
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 value 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 header of
cached content , response should include the header related with range request.
> 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
> Affects Versions: 3.2.5, 4.0.1, 4.0.2
> Reporter: Jungwoo Lee
> Labels: A
> Fix For: 4.2.0
>
>
> 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 value 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 header of
> cached content , response should include the header related with range
> request.
--
This message was sent by Atlassian JIRA
(v6.1#6144)