jrushford opened a new issue #7314:
URL: https://github.com/apache/trafficserver/issues/7314


   On a ATS master while reviewing a PR, I came across an assertion failure in 
http_hdr_status_get() with a debug build.  I immediately get an assertion crash 
after sending a curl for an object not in cache and that is forwarded upstream 
to a parent.  When checking the server response at HttpTransact.cc:383, ats 
crashes an assertion on s->hdr_info.server_response.m_http is checked.
   
   Here is data collected in the debug build, breakpoint at 
HttpTransact::simple_or_unavailable_server_retry():383
   
   (gdb) break HttpTransact.cc:383
   Breakpoint 1 at 0x71c181: file HttpTransact.cc, line 383.
   (gdb) c
   Continuing.
   [Switching to Thread 0x2afffedb4700 (LWP 12352)]
   
   Thread 14 "[ET_NET 11]" hit Breakpoint 1, simple_or_unavailable_server_retry 
(s=0x2b000ceddce8) at HttpTransact.cc:383
   `383   HTTPStatus server_response = 
http_hdr_status_get(s->hdr_info.server_response.m_http);
   (gdb) print s->hdr_info.server_response
   $1 = {<MIMEHdr> = {<HdrHeapSDKHandle> = {m_heap = 0x0}, m_mime = 0x0}, 
m_http = 0x0, m_url_cached = {<HdrHeapSDKHandle> = {
         m_heap = 0x0}, m_url_impl = 0x0, static VERIFY_HOST_CHARACTERS = 
true}, m_host_mime = 0x0, m_host_length = 0, m_port = 0,
     m_target_cached = false, m_target_in_url = false, m_100_continue_required 
= false, m_port_in_header = false, early_data = false,
     static USE_HDR_HEAP_MAGIC = 0x1}
   (gdb)
   `
   
   In a production build NON debug build a repeat of the test at the same 
breakpoint with an empty cache shows the server_response headers are normal and 
no crash occurs.
   
   `(gdb) break HttpTransact.cc:383
   Breakpoint 1 at 0x587058: file HttpTransact.cc, line 383.
   (gdb) c
   Continuing.
   [Switching to Thread 0x2ae185071700 (LWP 12989)]
   
   Thread 14 "[ET_NET 11]" hit Breakpoint 1, 
HttpTransact::handle_response_from_parent (s=s@entry=0x2ae197250d00)
       at HttpTransact.cc:3597
   3597   simple_or_unavailable_server_retry(s);
   (gdb) print s->hdr_info.server_response
   $1 = {<MIMEHdr> = {<HdrHeapSDKHandle> = {m_heap = 0x2ae173ff9800}, m_mime = 
0x2ae173ff98b8}, m_http = 0x2ae173ff9888,
     m_url_cached = {<HdrHeapSDKHandle> = {m_heap = 0x0}, m_url_impl = 0x0, 
static VERIFY_HOST_CHARACTERS = true}, m_host_mime = 0x0,
     m_host_length = 0, m_port = 0, m_target_cached = false, m_target_in_url = 
false, m_100_continue_required = false,
     m_port_in_header = false, early_data = false, static USE_HDR_HEAP_MAGIC = 
0x1}
   (gdb)`
   
   
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to