[
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)