[
https://issues.apache.org/jira/browse/TS-253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12848340#action_12848340
]
John Plevyak commented on TS-253:
---------------------------------
I tried to build a regression for this, but it didn't catch the problem,
however I did fix another issue.
Backing out the URL change does fix it:
Index: URL.cc
===================================================================
--- URL.cc (revision 926339)
+++ URL.cc (working copy)
@@ -210,25 +210,9 @@
void
url_copy_onto(URLImpl * s_url, HdrHeap * s_heap, URLImpl * d_url, HdrHeap *
d_heap, bool inherit_strs)
{
- if (s_url != d_url) {
- obj_copy_data((HdrHeapObjImpl *) s_url, (HdrHeapObjImpl *) d_url);
- if (inherit_strs && (s_heap != d_heap))
- d_heap->inherit_string_heaps(s_heap);
-
- // m_ptr_host is reused by the object if it has capacity and not
- // reallocated on every url_host_set(); obj_copy_data() above does
- // a "shallow" copy and inherit_string_heaps() inherits strings as
- // "read-only" (see HdrHeap.cc). Hence we have to make sure the
- // copied object uses a different buffer
- if (s_url->m_ptr_host && (s_url->m_capacity_host > 0) && d_heap) {
- d_url->m_ptr_host = d_heap->allocate_str(d_url->m_capacity_host);
- if (d_url->m_ptr_host) {
- memcpy(const_cast<char *>(d_url->m_ptr_host), s_url->m_ptr_host,
s_url->m_capacity_host);
- } else {
- d_url->m_capacity_host = d_url->m_len_host = 0;
- }
- }
- }
+ obj_copy_data((HdrHeapObjImpl *) s_url, (HdrHeapObjImpl *) d_url);
+ if (inherit_strs && (s_heap != d_heap))
+ d_heap->inherit_string_heaps(s_heap);
}
/*-------------------------------------------------------------------------
@@ -240,7 +224,7 @@
d_url->m_len_scheme = 0;
d_url->m_len_user = 0;
d_url->m_len_password = 0;
- d_url->m_len_host = d_url->m_capacity_host = 0;
+ d_url->m_len_host = 0;
d_url->m_len_port = 0;
d_url->m_ptr_scheme = NULL;
> HTTP Header Host ptr field not set
> ----------------------------------
>
> Key: TS-253
> URL: https://issues.apache.org/jira/browse/TS-253
> Project: Traffic Server
> Issue Type: Bug
> Components: Core
> Reporter: John Plevyak
>
> I noticed while lookup at cache scan that the host field of URLImpl is not
> set correctly.
> the m_ptr_host field is 0x0 while the m_len_host is correct (14).
> here is what it looks like:
> $20 = {<HdrHeapObjImpl> = {m_type = 2, m_length = 120, m_obj_flags = 0},
> m_len_scheme = 4,
> m_len_user = 0, m_len_password = 0, m_len_host = 14, m_len_port = 0,
> m_len_path = 0,
> m_len_params = 27, m_len_query = 0, m_len_fragment = 0,
> m_len_printed_string = 0,
> m_ptr_scheme = 0x0,
> m_ptr_user = 0x7ffff2fe9d2f
> "http://www.google.com/intl/en_ALL/images/logo.gif HTTP/1.1\r\nHost:
> www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
> rv:1.9.2) Gecko/20100115 Firefox/3.6\r\nAccept: image/png,im"...,
> m_ptr_password = 0x0,
> m_ptr_host = 0x0,
> m_ptr_port = 0x7ffff2fe9d36 "www.google.com/intl/en_ALL/images/logo.gif
> HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows; U;
> Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6\r\nAccept:
> image/png,image/*;q"..., m_ptr_path = 0x0,
> m_ptr_params = 0x7ffff2fe9d45 "intl/en_ALL/images/logo.gif
> HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows; U;
> Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6\r\nAccept:
> image/png,image/*;q=0.8,*/*;q=0.5\r"..., m_ptr_query = 0x0,
> m_ptr_fragment = 0x0, m_ptr_printed_string = 0x0, clean = false,
> m_scheme_wks_idx = 0,
> m_port = 0, m_url_type = 0 '\000', m_type_code = 0 '\000', m_capacity_host
> = 1}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.