[ 
https://issues.apache.org/jira/browse/TS-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14019919#comment-14019919
 ] 

Sudheer Vinukonda edited comment on TS-2878 at 6/6/14 3:28 PM:
---------------------------------------------------------------

>From the gdb, it looks like field->m_ptr_value is NULL and field->m_len_value 
>is 103 and field->m_readiness shows it as MIME_FIELD_SLOT_READINESS_LIVE (2) 
>in the code below:

{code}
int
mime_field_print(MIMEField *field, char *buf_start, int buf_length, int 
*buf_index_inout, int *buf_chars_to_skip_inout)
{
#define TRY(x)  if (!x) return 0

  int total_len;

  // Don't print names that begin with an '@'.
  if (field->m_ptr_name[0] == '@') {
    return 1;
  }

  if (field->m_n_v_raw_printable) {

    total_len = field->m_len_name + field->m_len_value + 
field->m_n_v_raw_printable_pad;

    if ((buf_start != NULL) && (*buf_chars_to_skip_inout == 0) && (total_len <= 
(buf_length - *buf_index_inout))) {

      buf_start += *buf_index_inout;
      memcpy(buf_start, field->m_ptr_name, total_len);
      *buf_index_inout += total_len;

    } else {
      TRY(mime_mem_print(field->m_ptr_name, total_len, buf_start, buf_length, 
buf_index_inout, buf_chars_to_skip_inout));
    }    
  } else {
    total_len = field->m_len_name + field->m_len_value + 2 + 2; 

    // try to handle on fast path

    if ((buf_start != NULL) && (*buf_chars_to_skip_inout == 0) && (total_len <= 
(buf_length - *buf_index_inout))) {
      buf_start += *buf_index_inout;

      memcpy(buf_start, field->m_ptr_name, field->m_len_name);
      buf_start += field->m_len_name;

      buf_start[0] = ':'; 
      buf_start[1] = ' '; 
      buf_start += 2;

      memcpy(buf_start, field->m_ptr_value, field->m_len_value);
{code}
gdb output
=========
(gdb) down
#0  0x000000366a489932 in memcpy () from /lib64/libc.so.6
(gdb) up
#1  0x00000000006440ec in mime_field_print (field=0x2ba0a7912398, 
    buf_start=0x2ba0e58dd71f 
"1400292739148%7C1494900739148%3B%20s_c20_s%3DLess%2520than%25207%2520days%7C1400294539148%3B%20s_gpv_pn%3DGMAY%253Alifeandstyle%253Aparenting%253AHospital%2520Welcomes%2520Second%2520Set%2520of%2520Ra"...,
 buf_length=4096, buf_index_inout=0x2ba0684c374c, 
buf_chars_to_skip_inout=0x2ba0684c3748) at MIME.cc:2745
2745    in MIME.cc
(gdb) print field
$12 = (MIMEField *) 0x2ba0a7912398
(gdb) print *field
$13 = {m_ptr_name = 0x2ba12accb7ac 
"SSLCOOKIEw/legobpengine/frontpage/02063673", m_ptr_value = 0x0, m_next_dup = 
0x0, m_wks_idx = -1, m_len_name = 9, m_len_value = 103, 
  m_n_v_raw_printable = 0 '\000', m_n_v_raw_printable_pad = 0 '\000', 
m_readiness = 2 '\002', m_flags = 1 '\001'}
(gdb) print field->m_ptr_value
$14 = 0x0
(gdb) print field->m_len_value
$15 = 103
(gdb) print field->m_readiness
$18 = 2 '\002'






was (Author: sudheerv):
>From the gdb, it looks like field->m_ptr_value is NULL and field->m_len_value 
>is 103. in the code below:

{code}
int
mime_field_print(MIMEField *field, char *buf_start, int buf_length, int 
*buf_index_inout, int *buf_chars_to_skip_inout)
{
#define TRY(x)  if (!x) return 0

  int total_len;

  // Don't print names that begin with an '@'.
  if (field->m_ptr_name[0] == '@') {
    return 1;
  }

  if (field->m_n_v_raw_printable) {

    total_len = field->m_len_name + field->m_len_value + 
field->m_n_v_raw_printable_pad;

    if ((buf_start != NULL) && (*buf_chars_to_skip_inout == 0) && (total_len <= 
(buf_length - *buf_index_inout))) {

      buf_start += *buf_index_inout;
      memcpy(buf_start, field->m_ptr_name, total_len);
      *buf_index_inout += total_len;

    } else {
      TRY(mime_mem_print(field->m_ptr_name, total_len, buf_start, buf_length, 
buf_index_inout, buf_chars_to_skip_inout));
    }    
  } else {
    total_len = field->m_len_name + field->m_len_value + 2 + 2; 

    // try to handle on fast path

    if ((buf_start != NULL) && (*buf_chars_to_skip_inout == 0) && (total_len <= 
(buf_length - *buf_index_inout))) {
      buf_start += *buf_index_inout;

      memcpy(buf_start, field->m_ptr_name, field->m_len_name);
      buf_start += field->m_len_name;

      buf_start[0] = ':'; 
      buf_start[1] = ' '; 
      buf_start += 2;

      memcpy(buf_start, field->m_ptr_value, field->m_len_value);
{code}
gdb output
=========
(gdb) down
#0  0x000000366a489932 in memcpy () from /lib64/libc.so.6
(gdb) up
#1  0x00000000006440ec in mime_field_print (field=0x2ba0a7912398, 
    buf_start=0x2ba0e58dd71f 
"1400292739148%7C1494900739148%3B%20s_c20_s%3DLess%2520than%25207%2520days%7C1400294539148%3B%20s_gpv_pn%3DGMAY%253Alifeandstyle%253Aparenting%253AHospital%2520Welcomes%2520Second%2520Set%2520of%2520Ra"...,
 buf_length=4096, buf_index_inout=0x2ba0684c374c, 
buf_chars_to_skip_inout=0x2ba0684c3748) at MIME.cc:2745
2745    in MIME.cc
(gdb) print field
$12 = (MIMEField *) 0x2ba0a7912398
(gdb) print *field
$13 = {m_ptr_name = 0x2ba12accb7ac 
"SSLCOOKIEw/legobpengine/frontpage/02063673", m_ptr_value = 0x0, m_next_dup = 
0x0, m_wks_idx = -1, m_len_name = 9, m_len_value = 103, 
  m_n_v_raw_printable = 0 '\000', m_n_v_raw_printable_pad = 0 '\000', 
m_readiness = 2 '\002', m_flags = 1 '\001'}
(gdb) print field->m_ptr_value
$14 = 0x0
(gdb) print field->m_len_value
$15 = 103
(gdb) 




> Core dump in mime_field_print
> -----------------------------
>
>                 Key: TS-2878
>                 URL: https://issues.apache.org/jira/browse/TS-2878
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core
>            Reporter: Sudheer Vinukonda
>
> Found a new core dump on one of our production hosts with the latest master.
> {code}
> (gdb) 
> #0  0x000000366a489932 in memcpy () from /lib64/libc.so.6
> #1  0x00000000006440ec in mime_field_print (field=0x2ad0c12eb398, 
>     buf_start=0x2ad0ccddf6fc 
> "b=4&d=N8yEv7ppYEIU22_VquwWHph5uWBFcIT0fZmeGg--&s=l0&i=jE4n8cjO._g4wBfgSzBR; 
> F=a=d7RTbXcMvSscJ6tvYRkm3uidpW7e4pvmEH8Vl9bGaVDpBGZ6bL4NJuiQDJLIQ1MsxDYfXJc-&b=pfgj;
>  Y=v=1&n=3kntebmsf6jf7&l=43m0h3.2705544@"..., buf_length=4096, 
> buf_index_inout=0x2acf1cd0883c, buf_chars_to_skip_inout=0x2acf1cd08838) at 
> MIME.cc:2745
> #2  0x000000000064422c in mime_hdr_print (mh=<value optimized out>, 
>     buf_start=0x2ad0ccddf000 "POST 
> /w/ygo-mail/msgedit.bp?ci=1&.ts=1401981151&_httpHost=m.yahoo.com&.intl=MX&.lang=es-mx
>  HTTP/1.1\r\nHost: m.yahoo.com\r\nAccept-Charset: utf-8, iso-8859-1, 
> iso-8859-2, iso-10646, us-ascii, *\r\nAccept-La"..., buf_length=4096, 
> buf_index_inout=0x2acf1cd0883c, buf_chars_to_skip_inout=0x2acf1cd08838) at 
> MIME.cc:2623
> #3  0x0000000000639b52 in http_hdr_print (heap=0x2ad0c12eb010, 
> hdr=0x2ad0c12eb098, 
>     buf=0x2ad0ccddf000 "POST 
> /w/ygo-mail/msgedit.bp?ci=1&.ts=1401981151&_httpHost=m.yahoo.com&.intl=MX&.lang=es-mx
>  HTTP/1.1\r\nHost: m.yahoo.com\r\nAccept-Charset: utf-8, iso-8859-1, 
> iso-8859-2, iso-10646, us-ascii, *\r\nAccept-La"..., bufsize=4096, 
> bufindex=0x2acf1cd0883c, dumpoffset=0x2acf1cd08838) at HTTP.cc:555
> #4  0x000000000059c676 in print (this=<value optimized out>, 
> h=0x2acf6e0e8548, b=0x2ad0240b56d0) at ../../proxy/hdrs/HTTP.h:897
> #5  HttpSM::write_header_into_buffer (this=<value optimized out>, 
> h=0x2acf6e0e8548, b=0x2ad0240b56d0) at HttpSM.cc:5457
> #6  0x000000000059e9bb in HttpSM::setup_server_send_request 
> (this=0x2acf6e0e7dc0) at HttpSM.cc:5576
> #7  0x00000000005ac1f5 in HttpSM::handle_api_return (this=0x2acf6e0e7dc0) at 
> HttpSM.cc:1508
> #8  0x00000000005a45b0 in HttpSM::state_api_callout (this=0x2acf6e0e7dc0, 
> event=60000, data=0x0) at HttpSM.cc:1437
> #9  0x00000000005a76aa in HttpSM::state_api_callback (this=0x2acf6e0e7dc0, 
> event=60000, data=0x0) at HttpSM.cc:1255
> #10 0x00000000004c99cc in TSHttpTxnReenable (txnp=0x2acf6e0e7dc0, 
> event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5543
> #11 0x00002acf12d247fc in http_hook (contp=<value optimized out>, 
> event=<value optimized out>, edata=0x2acf6e0e7dc0) at INKPluginInit.cc:177
> #12 0x00000000005a4416 in HttpSM::state_api_callout (this=0x2acf6e0e7dc0, 
> event=<value optimized out>, data=<value optimized out>) at HttpSM.cc:1362
> #13 0x00000000005a618b in HttpSM::state_http_server_open 
> (this=0x2acf6e0e7dc0, event=<value optimized out>, data=0x2ad0b88802d0) at 
> HttpSM.cc:1643
> #14 0x00000000005a70e8 in HttpSM::main_handler (this=0x2acf6e0e7dc0, 
> event=200, data=0x2ad0b88802d0) at HttpSM.cc:2501
> #15 0x000000000070f96d in handleEvent (this=0x2ad0b88802d0, t=<value 
> optimized out>, fd=-1) at ../../iocore/eventsystem/I_Continuation.h:146
> #16 UnixNetVConnection::connectUp (this=0x2ad0b88802d0, t=<value optimized 
> out>, fd=-1) at UnixNetVConnection.cc:1159
> #17 0x000000000070d01f in UnixNetProcessor::connect_re_internal (this=<value 
> optimized out>, cont=<value optimized out>, target=<value optimized out>, 
> opt=0x2acf1cd09e00, 
>     servername=0x2ad0b88804fc "\002") at UnixNetProcessor.cc:255
> #18 0x00000000005a568b in connect_re (this=0x2acf6e0e7dc0, raw=<value 
> optimized out>) at ../../iocore/net/P_UnixNetProcessor.h:87
> #19 HttpSM::do_http_server_open (this=0x2acf6e0e7dc0, raw=<value optimized 
> out>) at HttpSM.cc:4646
> #20 0x00000000005aa2bd in HttpSM::set_next_state (this=0x2acf6e0e7dc0) at 
> HttpSM.cc:6975
> #21 0x00000000005ac132 in HttpSM::handle_api_return (this=0x2acf6e0e7dc0) at 
> HttpSM.cc:1505
> #22 0x00000000005a45b0 in HttpSM::state_api_callout (this=0x2acf6e0e7dc0, 
> event=60000, data=0x0) at HttpSM.cc:1437
> #23 0x00000000005a76aa in HttpSM::state_api_callback (this=0x2acf6e0e7dc0, 
> event=60000, data=0x0) at HttpSM.cc:1255
> #24 0x00000000004c99cc in TSHttpTxnReenable (txnp=0x2acf6e0e7dc0, 
> event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5543
> #25 0x00002acf13dd3492 in append_own_yca_certificate (txnp=0x2acf6e0e7dc0, 
> contp=<value optimized out>, data=<value optimized out>) at yca_plugin.cpp:266
> #26 0x00002acf13dd3ad3 in yca_auth_plugin_local_handler 
> (contp=0x2ad03008d930, event=TS_EVENT_HTTP_OS_DNS, edata=0x2acf6e0e7dc0) at 
> yca_plugin.cpp:961
> #27 0x00000000005a4416 in HttpSM::state_api_callout (this=0x2acf6e0e7dc0, 
> event=<value optimized out>, data=<value optimized out>) at HttpSM.cc:1362
> #28 0x00000000005a9fd2 in HttpSM::set_next_state (this=0x2acf6e0e7dc0) at 
> HttpSM.cc:6826
> #29 0x0000000000593f12 in HttpSM::do_hostdb_lookup (this=0x2acf6e0e7dc0) at 
> HttpSM.cc:3915
> #30 0x00000000005aa993 in HttpSM::set_next_state (this=0x2acf6e0e7dc0) at 
> HttpSM.cc:6925
> #31 0x00000000005ac132 in HttpSM::handle_api_return (this=0x2acf6e0e7dc0) at 
> HttpSM.cc:1505
> #32 0x00000000005a45b0 in HttpSM::state_api_callout (this=0x2acf6e0e7dc0, 
> event=60000, data=0x0) at HttpSM.cc:1437
> #33 0x00000000005a76aa in HttpSM::state_api_callback (this=0x2acf6e0e7dc0, 
> event=60000, data=0x0) at HttpSM.cc:1255
> #34 0x00000000004c99cc in TSHttpTxnReenable (txnp=0x2acf6e0e7dc0, 
> event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5543
> #35 0x00002acf13dd39b7 in yca_cache_access_control (contp=<value optimized 
> out>, event=<value optimized out>, edata=<value optimized out>) at 
> yca_plugin.cpp:747
> #36 yca_auth_plugin_local_handler (contp=<value optimized out>, event=<value 
> optimized out>, edata=<value optimized out>) at yca_plugin.cpp:955
> #37 0x00000000005a4416 in HttpSM::state_api_callout (this=0x2acf6e0e7dc0, 
> event=<value optimized out>, data=<value optimized out>) at HttpSM.cc:1362
> #38 0x00000000005a73e0 in do_api_callout (this=0x2acf6e0e7dc0, event=<value 
> optimized out>, data=0xffffffffffffb050) at HttpSM.cc:444
> #39 setup_cache_lookup_complete_api (this=0x2acf6e0e7dc0, event=<value 
> optimized out>, data=0xffffffffffffb050) at HttpSM.cc:2403
> #40 HttpSM::state_cache_open_read (this=0x2acf6e0e7dc0, event=<value 
> optimized out>, data=0xffffffffffffb050) at HttpSM.cc:2459
> #41 0x00000000005a70e8 in HttpSM::main_handler (this=0x2acf6e0e7dc0, 
> event=1103, data=0xffffffffffffb050) at HttpSM.cc:2501
> #42 0x00000000005856d2 in handleEvent (this=0x2acf6e0e9790, event=1103, 
> data=0xffffffffffffb050) at ../../iocore/eventsystem/I_Continuation.h:146
> #43 HttpCacheSM::state_cache_open_read (this=0x2acf6e0e9790, event=1103, 
> data=0xffffffffffffb050) at HttpCacheSM.cc:137
> #44 0x00000000006db68e in Cache::open_read (this=<value optimized out>, 
> cont=0x2acf6e0e9790, key=<value optimized out>, request=0x2acf6e0e84c8, 
> params=0x2acf6e0e7ea0, 
>     type=<value optimized out>, 
> ---Type <return> to continue, or q <return> to quit---quit
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to