[ https://issues.apache.org/jira/browse/TS-2782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13992603#comment-13992603 ]
Feifei Cai commented on TS-2782: -------------------------------- Hi [~sudheerv], I think it's caused by [TS-2766|https://issues.apache.org/jira/browse/TS-2766]. The [commit|https://github.com/apache/trafficserver/commit/1630af7f76643c86751398838fbdf8a1363ce292] in [TS-2766|https://issues.apache.org/jira/browse/TS-2766] changes/corrects HdrHeap::coalesce_str_heaps(), which is called by HdrHeap::inherit_string_heaps(). So HdrHeap after this commit is not compliant with the previous versions. I tested some versions after this commit, and there's no such kind of crash issues during upgrades and downgrades. > ats crash in master in HdrHeap::inherit_string_heaps > ---------------------------------------------------- > > Key: TS-2782 > URL: https://issues.apache.org/jira/browse/TS-2782 > Project: Traffic Server > Issue Type: Bug > Components: Core > Reporter: Sudheer Vinukonda > Labels: spdy, yahoo > > When testing master on production hosts, noticed the below crash occuring > repeatedly every time ats version is changed. This crash stops happening > after clearing the cache. This needs further investigation, but, I remember a > discussion between briang and zwoop about duplicate string fields in HdrHeap. > Not sure if this core is related to that. Would appreciate if briang or zwoop > can comment. Thank you. > {code} > [example_prep.sh] Checking/Moving old cores... > [TrafficServer] using root directory '/home/y' > NOTE: Traffic Server received Sig 11: Segmentation fault > /home/y/bin/traffic_server - STACK TRACE: > /lib64/libpthread.so.0(+0x30d3c0f500)[0x2aae27e2d500] > /home/y/bin/traffic_server(_ZN7HdrHeap20inherit_string_heapsEPKS_+0x271)[0x61caa1] > /home/y/bin/traffic_server(_Z14http_hdr_cloneP11HTTPHdrImplP7HdrHeapS2_+0x93)[0x619f83] > /home/y/bin/traffic_server(_ZN19HttpTransactHeaders18copy_header_fieldsEP7HTTPHdrS1_bl+0x1be)[0x5c201e] > /home/y/bin/traffic_server(_ZN12HttpTransact14build_responseEPNS_5StateEP7HTTPHdrS3_11HTTPVersion10HTTPStatusPKc+0x3ed)[0x5a287d] > /home/y/bin/traffic_server(_ZN12HttpTransact25build_response_from_cacheEPNS_5StateE15HTTPWarningCode+0x354)[0x5b67f4] > /home/y/bin/traffic_server(_ZN12HttpTransact22HandleCacheOpenReadHitEPNS_5StateE+0x448)[0x5b84c8] > /home/y/bin/traffic_server(_ZN6HttpSM32call_transact_and_set_next_stateEPFvPN12HttpTransact5StateEE+0x66)[0x573816] > /home/y/bin/traffic_server(_ZN6HttpSM17handle_api_returnEv+0x2d2)[0x58ba72] > /home/y/bin/traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x583070] > /home/y/bin/traffic_server(_ZN6HttpSM14set_next_stateEv+0x1ea)[0x58d06a] > /home/y/bin/traffic_server(_ZN6HttpSM17handle_api_returnEv+0x2d2)[0x58ba72] > /home/y/bin/traffic_server(_ZN6HttpSM17state_api_calloutEiPv+0x2b0)[0x583070] > /home/y/bin/traffic_server(_ZN6HttpSM14set_next_stateEv+0x1ea)[0x58d06a] > /home/y/bin/traffic_server(_ZN6HttpSM21state_cache_open_readEiPv+0xfe)[0x58533e] > /home/y/bin/traffic_server(_ZN6HttpSM12main_handlerEiPv+0xd8)[0x587de8] > /home/y/bin/traffic_server(_ZN11HttpCacheSM21state_cache_open_readEiPv+0x1b2)[0x566e12] > /home/y/bin/traffic_server(_ZN7CacheVC8callcontEi+0x53)[0x653453] > /home/y/bin/traffic_server(_ZN7CacheVC17openReadStartHeadEiP5Event+0x7cf)[0x6be9af] > /home/y/bin/traffic_server(_ZN7CacheVC14handleReadDoneEiP5Event+0x1ed)[0x69d40d] > /home/y/bin/traffic_server(_ZN19AIOCallbackInternal11io_completeEiPv+0x35)[0x6539c5] > /home/y/bin/traffic_server(_ZN7EThread13process_eventEP5Eventi+0x8f)[0x714aef] > /home/y/bin/traffic_server(_ZN7EThread7executeEv+0x61b)[0x71561b] > /home/y/bin/traffic_server[0x713e9a] > /lib64/libpthread.so.0(+0x30d3c07851)[0x2aae27e25851] > /lib64/libc.so.6(clone+0x6d)[0x30d38e890d] > {code} > gdb output below: > {code} > (gdb) bt > #0 ink_atomic_increment<int, int> (this=0x2afb60113010, > inherit_from=0x2afaa824e688) at ../../lib/ts/ink_atomic.h:162 > #1 refcount_inc (this=0x2afb60113010, inherit_from=0x2afaa824e688) at > ../../lib/ts/Ptr.h:279 > #2 operator= (this=0x2afb60113010, inherit_from=0x2afaa824e688) at > ../../lib/ts/Ptr.h:408 > #3 attach_str_heap (this=0x2afb60113010, inherit_from=0x2afaa824e688) at > HdrHeap.cc:1000 > #4 HdrHeap::inherit_string_heaps (this=0x2afb60113010, > inherit_from=0x2afaa824e688) at HdrHeap.cc:1081 > #5 0x0000000000619f83 in http_hdr_clone (s_hh=0x2afaa824e710, > s_heap=0x2afaa824e688, d_heap=0x2afb60113010) at HTTP.cc:375 > #6 0x00000000005c201e in copy (src_hdr=0x2afaa824e0b8, > new_hdr=0x2afac4058c50, retain_proxy_auth_hdrs=false, date=0) at > ../../proxy/hdrs/HTTP.h:867 > #7 HttpTransactHeaders::copy_header_fields (src_hdr=0x2afaa824e0b8, > new_hdr=0x2afac4058c50, retain_proxy_auth_hdrs=false, date=0) at > HttpTransactHeaders.cc:201 > #8 0x00000000005a287d in HttpTransact::build_response (s=0x2afac4058570, > base_response=0x2afaa824e0b8, outgoing_response=0x2afac4058c50, > outgoing_version=<value optimized out>, > status_code=HTTP_STATUS_NONE, reason_phrase=0x7323ac "None") at > HttpTransact.cc:7926 > #9 0x00000000005b67f4 in HttpTransact::build_response_from_cache > (s=0x2afac4058570, warning_code=HTTP_WARNING_CODE_NONE) at > HttpTransact.cc:2925 > #10 0x00000000005b84c8 in HttpTransact::HandleCacheOpenReadHit > (s=0x2afac4058570) at HttpTransact.cc:2811 > #11 0x0000000000573816 in HttpSM::call_transact_and_set_next_state > (this=0x2afac4058500, f=<value optimized out>) at HttpSM.cc:6748 > #12 0x000000000058ba72 in HttpSM::handle_api_return (this=0x2afac4058500) at > HttpSM.cc:1501 > #13 0x0000000000583070 in HttpSM::state_api_callout (this=0x2afac4058500, > event=60000, data=0x0) at HttpSM.cc:1433 > #14 0x0000000000587fdb in HttpSM::state_api_callback (this=0x2afac4058500, > event=60000, data=0x0) at HttpSM.cc:1251 > #15 0x00000000004c0acc in TSHttpTxnReenable (txnp=0x2afac4058500, > event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5548 > #16 0x00002afa68cb19b7 in yca_cache_access_control (contp=<value optimized > out>, event=<value optimized out>, edata=<value optimized out>) at > yca_plugin.cpp:747 > #17 yca_auth_plugin_local_handler (contp=<value optimized out>, event=<value > optimized out>, edata=<value optimized out>) at yca_plugin.cpp:955 > #18 0x0000000000582ed4 in HttpSM::state_api_callout (this=0x2afac4058500, > event=<value optimized out>, data=<value optimized out>) at HttpSM.cc:1358 > #19 0x000000000058d06a in HttpSM::set_next_state (this=0x2afac4058500) at > HttpSM.cc:6790 > #20 0x000000000058ba72 in HttpSM::handle_api_return (this=0x2afac4058500) at > HttpSM.cc:1501 > #21 0x0000000000583070 in HttpSM::state_api_callout (this=0x2afac4058500, > event=0, data=0x0) at HttpSM.cc:1433 > #22 0x000000000058d06a in HttpSM::set_next_state (this=0x2afac4058500) at > HttpSM.cc:6790 > #23 0x000000000058533e in HttpSM::state_cache_open_read (this=0x2afac4058500, > event=1102, data=0x2afbd4006e80) at HttpSM.cc:2423 > #24 0x0000000000587de8 in HttpSM::main_handler (this=0x2afac4058500, > event=1102, data=0x2afbd4006e80) at HttpSM.cc:2482 > #25 0x0000000000566e12 in handleEvent (this=0x2afac4059ed8, event=<value > optimized out>, data=0x2afbd4006e80) at > ../../iocore/eventsystem/I_Continuation.h:146 > #26 HttpCacheSM::state_cache_open_read (this=0x2afac4059ed8, event=<value > optimized out>, data=0x2afbd4006e80) at HttpCacheSM.cc:118 > #27 0x0000000000653453 in handleEvent (this=0x2afbd4006e80, event=<value > optimized out>) at ../../iocore/eventsystem/I_Continuation.h:146 > #28 CacheVC::callcont (this=0x2afbd4006e80, event=<value optimized out>) at > ../../iocore/cache/P_CacheInternal.h:657 > #29 0x00000000006be9af in CacheVC::openReadStartHead (this=0x2afbd4006e80, > event=3900, e=0x0) at CacheRead.cc:1206 > #30 0x000000000069d40d in handleEvent (this=0x2afbd4006e80, event=<value > optimized out>, e=<value optimized out>) at > ../../iocore/eventsystem/I_Continuation.h:146 > #31 CacheVC::handleReadDone (this=0x2afbd4006e80, event=<value optimized > out>, e=<value optimized out>) at Cache.cc:2521 > #32 0x00000000006539c5 in handleEvent (this=<value optimized out>, > event=<value optimized out>, data=<value optimized out>) at > ../../iocore/eventsystem/I_Continuation.h:146 > #33 AIOCallbackInternal::io_complete (this=<value optimized out>, > event=<value optimized out>, data=<value optimized out>) at > ../../iocore/aio/P_AIO.h:123 > #34 0x0000000000714aef in handleEvent (this=0x2afa54b18010, e=0x2afaac01ac90, > calling_code=1) at I_Continuation.h:146 > #35 EThread::process_event (this=0x2afa54b18010, e=0x2afaac01ac90, > calling_code=1) at UnixEThread.cc:145 > #36 0x000000000071561b in EThread::execute (this=0x2afa54b18010) at > UnixEThread.cc:196 > #37 0x0000000000713e9a in spawn_thread_internal (a=0x16c3220) at Thread.cc:88 > #38 0x00002afa4f271851 in start_thread () from /lib64/libpthread.so.0 > #39 0x000000361a0e894d in clone () from /lib64/libc.so.6 > (gdb) print mem > $1 = (volatile int *) 0x70d87d9700000008 > (gdb) print *mem > Cannot access memory at address 0x70d87d9700000008 > (gdb) up > #1 refcount_inc (this=0x2afb60113010, inherit_from=0x2afaa824e688) at > ../../lib/ts/Ptr.h:279 > 279 ../../lib/ts/Ptr.h: No such file or directory. > in ../../lib/ts/Ptr.h > (gdb) print this > $2 = (RefCountObj * const) 0x70d87d9700000000 > (gdb) print *this > Cannot access memory at address 0x70d87d9700000000 > (gdb) up > #2 operator= (this=0x2afb60113010, inherit_from=0x2afaa824e688) at > ../../lib/ts/Ptr.h:408 > 408 in ../../lib/ts/Ptr.h > (gdb) print this > $3 = (Ptr<RefCountObj> * const) 0x2afb60113060 > (gdb) print *this > $4 = {m_ptr = 0x70d87d9700000000} > (gdb) up > #3 attach_str_heap (this=0x2afb60113010, inherit_from=0x2afaa824e688) at > HdrHeap.cc:1000 > 1000 HdrHeap.cc: No such file or directory. > in HdrHeap.cc > (gdb) print this > $5 = (HdrHeap * const) 0x2afb60113010 > (gdb) print *this > $6 = {m_magic = 2882404077, m_free_start = 0x2afb60113360 "\002p", > m_data_start = 0x2afb601130e0 "\003\060", m_size = 2048, m_writeable = true, > m_next = 0x0, m_free_size = 1200, > m_read_write_heap = {m_ptr = 0x0}, m_ronly_heap = {{m_ref_count_ptr = > {m_ptr = 0x2afa6c0019a0}, > m_heap_start = 0x2afaa824e990 "HTTP/1.1 200 OK\r\nDate: Mon, 05 May > 2014 19:02:05 GMT\r\nP3P: policyref=\"http://info.yahoo.com/w3c/p3p.xml\", > CP=\"CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi > SAMi OTRi UNRi PUBi "..., m_heap_len = 539, m_locked = false}, > {m_ref_count_ptr = {m_ptr = 0x70d87d9700000000}, m_heap_start = 0x0, > m_heap_len = 0, > m_locked = false}, {m_ref_count_ptr = {m_ptr = 0x0}, m_heap_start = > 0x0, m_heap_len = 0, m_locked = false}, {m_ref_count_ptr = {m_ptr = 0x0}, > m_heap_start = 0x0, m_heap_len = 0, > m_locked = false}, {m_ref_count_ptr = {m_ptr = 0x0}, m_heap_start = > 0x0, m_heap_len = 0, m_locked = false}, {m_ref_count_ptr = {m_ptr = 0x0}, > m_heap_start = 0x0, m_heap_len = 0, > m_locked = false}}, m_lost_string_space = 0} > (gdb) > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)