You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Uri Shachar (JIRA)" <ji...@apache.org> on 2012/11/01 10:31:13 UTC

[jira] [Created] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Uri Shachar created TS-1558:
-------------------------------

             Summary: use_client_addr breaks control over upstream HTTP protocol version
                 Key: TS-1558
                 URL: https://issues.apache.org/jira/browse/TS-1558
             Project: Traffic Server
          Issue Type: Bug
          Components: Core, HTTP
    Affects Versions: 3.3.3, 3.2.3
         Environment: Trunc running on CentOS 6.3, 64bit
            Reporter: Uri Shachar
            Priority: Critical


If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.

This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.

I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "James Peach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13489236#comment-13489236 ] 

James Peach commented on TS-1558:
---------------------------------

Uri, with your patch do we still obey  proxy.config.http.send_http11_request? Is HTTP/0.9 the best choice for the final else branch; maybe HTTP/1.1 would be better?
                
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunk running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: comment_typos.patch, use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "James Peach (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13489233#comment-13489233 ] 

James Peach commented on TS-1558:
---------------------------------

a3fa8b6edfa4c5144f0716e8ef34f43b959cce94 Spell authorized consistently

                
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunk running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: comment_typos.patch, use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "Uri Shachar (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Uri Shachar updated TS-1558:
----------------------------

    Attachment:     (was: use_client_version.patch)
    
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunk running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: comment_typos.patch, use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "Uri Shachar (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Uri Shachar updated TS-1558:
----------------------------

    Environment: Trunk running on CentOS 6.3, 64bit  (was: Trunc running on CentOS 6.3, 64bit)
    
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunk running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: comment_typos.patch, use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "Uri Shachar (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Uri Shachar updated TS-1558:
----------------------------

    Attachment: comment_typos.patch

Completely non-related and probably belongs in another jira -- but I've added a small patch to fix two comment typos in HttpTransact...
(I know authorized can be spelt with an s -- but we don't do that anywhere else in the code)
                
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunc running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: comment_typos.patch, use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "Uri Shachar (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Uri Shachar updated TS-1558:
----------------------------

    Attachment: use_client_version.patch
    
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunc running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "Uri Shachar (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Uri Shachar updated TS-1558:
----------------------------

    Attachment: use_client_version.patch

New patch - Use HTTP/1.1 if the client request version isn't 0.9/1.0 + comment in records.config
                
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunk running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: comment_typos.patch, use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (TS-1558) use_client_addr breaks control over upstream HTTP protocol version

Posted by "Uri Shachar (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/TS-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13489345#comment-13489345 ] 

Uri Shachar commented on TS-1558:
---------------------------------

If we are configured to always/never send HTTP/1.1 requests, that configuration will still take precedence. Since we do not do a hostdb lookup, the last two options:
#   2 - if the server has returned http1.1 before
#   3 - if the client request is 1.1 & the server has returned 1.1 before

are problematic as we will never know if the server has previously returned a 1.1 response. All the patch does is set the 'previously seen server version' to be equal to the client request version -- so if we are running with config option 2/3 set we will always send a request version that equals the client request version (which seems the best thing we can do in this transparent use case).

I'll add a patch that flips the check order so we mark the server as HTTP/1.1 if the client request version is unfamiliar + add a comment to records.config.








                
> use_client_addr breaks control over upstream HTTP protocol version
> ------------------------------------------------------------------
>
>                 Key: TS-1558
>                 URL: https://issues.apache.org/jira/browse/TS-1558
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, HTTP
>    Affects Versions: 3.3.3, 3.2.3
>         Environment: Trunk running on CentOS 6.3, 64bit
>            Reporter: Uri Shachar
>            Priority: Critical
>         Attachments: comment_typos.patch, use_client_version.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> If use_client_addr is turned on, we skip the hostdb lookup so we never know if the upstream has previously responded with an HTTP/1.1 response.
> This means that unless proxy.config.http.send_http11_requests is set to 1 we will always send HTTP/1.0 requests to upstream.
> I'll attach a patch that sets 'upstream server version = client request version' (which seems correct for a transparent interception scenario) -- an alternative implementation might be to modify the hostdb lookup flow to skip the actual DNS resolving and treat the client provided address as a DNS provided one -- Comments?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira