You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Bryan Call (JIRA)" <ji...@apache.org> on 2016/01/26 04:00:44 UTC

[jira] [Commented] (TS-4150) SPDY crashes under ASAN

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

Bryan Call commented on TS-4150:
--------------------------------

Changing the Request alloctor to use new and delete fixed the issue.  Since this is not a regression and has been there for awhile I don't think it is a blocker.

{code}
 SpdyRequest *
 SpdyRequest::alloc()
 {
-  return spdyRequestAllocator.alloc();
+  return new SpdyRequest;
 }

 void
 SpdyRequest::destroy()
 {
   this->clear();
-  spdyRequestAllocator.free(this);
+  delete this;
 }
{code}

> SPDY crashes under ASAN
> -----------------------
>
>                 Key: TS-4150
>                 URL: https://issues.apache.org/jira/browse/TS-4150
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: SPDY
>    Affects Versions: 6.1.0
>            Reporter: Bryan Call
>             Fix For: 6.1.0
>
>
> {code}
> [bcall@l29 trafficserver]$ sudo /home/y/bin/traffic_server -f
> traffic_server: using root directory '/home/y'
> =================================================================
> ==6497==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x0000011e0dc8 in thread T4 ([ET_NET 3])
>     #0 0x7fde6f5aa31a in operator delete(void*) ../../.././libsanitizer/asan/asan_new_delete.cc:92
>     #1 0x7fde6f019551 in __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned long) /home/bcall/gcc-5.3.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/new_allocator.h:110
>     #2 0x7fde6f019551 in std::allocator_traits<std::allocator<char> >::deallocate(std::allocator<char>&, char*, unsigned long) /home/bcall/gcc-5.3.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/alloc_traits.h:386
>     #3 0x7fde6f019551 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy(unsigned long) /home/bcall/gcc-5.3.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:185
>     #4 0x7fde6f019551 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose() /home/bcall/gcc-5.3.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:180
>     #5 0x7fde6f019551 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/bcall/gcc-5.3.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:270
>     #6 0x851b40 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/opt/gcc/include/c++/5.3.0/bits/basic_string.h:1096
>     #7 0x851b40 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/opt/gcc/include/c++/5.3.0/bits/basic_string.h:552
>     #8 0x851b40 in spdy_process_syn_stream_frame /home/bcall/ytrafficserver-6.0.x/trafficserver/proxy/spdy/SpdyCallbacks.cc:282
>     #9 0x851b40 in spdy_on_ctrl_recv_callback(spdylay_session*, spdylay_frame_type, spdylay_frame*, void*) /home/bcall/ytrafficserver-6.0.x/trafficserver/proxy/spdy/SpdyCallbacks.cc:317
>     #10 0xd50e2f in spdylay_session_call_on_ctrl_frame_received /home/bcall/ytrafficserver-6.0.x/spdylay-1.2.3/lib/spdylay_session.c:1634
>     #11 0xd50e2f in spdylay_session_on_syn_stream_received /home/bcall/ytrafficserver-6.0.x/spdylay-1.2.3/lib/spdylay_session.c:1782
>     #12 0xd527dc in spdylay_session_process_ctrl_frame /home/bcall/ytrafficserver-6.0.x/spdylay-1.2.3/lib/spdylay_session.c:2246
>     #13 0xd527dc in spdylay_session_mem_recv /home/bcall/ytrafficserver-6.0.x/spdylay-1.2.3/lib/spdylay_session.c:2805
>     #14 0xd52bbc in spdylay_session_recv /home/bcall/ytrafficserver-6.0.x/spdylay-1.2.3/lib/spdylay_session.c:2828
>     #15 0x8482fb in spdy_process_read /home/bcall/ytrafficserver-6.0.x/trafficserver/proxy/spdy/SpdyClientSession.cc:325
>     #16 0x8482fb in SpdyClientSession::state_session_readwrite(int, void*) /home/bcall/ytrafficserver-6.0.x/trafficserver/proxy/spdy/SpdyClientSession.cc:272
>     #17 0xca0719 in Continuation::handleEvent(int, void*) ../../iocore/eventsystem/I_Continuation.h:153
>     #18 0xca0719 in read_signal_and_update /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/net/UnixNetVConnection.cc:150
>     #19 0xca0719 in UnixNetVConnection::readSignalAndUpdate(int) /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/net/UnixNetVConnection.cc:1026
>     #20 0xc3259e in SSLNetVConnection::net_read_io(NetHandler*, EThread*) /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/net/SSLNetVConnection.cc:616
>     #21 0xc58fd9 in NetHandler::mainNetEvent(int, Event*) /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/net/UnixNet.cc:518
>     #22 0xd48b70 in Continuation::handleEvent(int, void*) /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/eventsystem/I_Continuation.h:153
>     #23 0xd48b70 in EThread::process_event(Event*, int) /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/eventsystem/UnixEThread.cc:128
>     #24 0xd48b70 in EThread::execute() /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/eventsystem/UnixEThread.cc:252
>     #25 0xd44648 in spawn_thread_internal /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/eventsystem/Thread.cc:86
>     #26 0x7fde6d454df4 in start_thread (/lib64/libpthread.so.0+0x7df4)
>     #27 0x7fde6c6fc1ac in __clone (/lib64/libc.so.6+0xf61ac)
> AddressSanitizer can not describe address in more detail (wild memory access suspected).
> SUMMARY: AddressSanitizer: bad-free ../../.././libsanitizer/asan/asan_new_delete.cc:92 operator delete(void*)
> Thread T4 ([ET_NET 3]) created by T0 ([ET_NET 0]) here:
>     #0 0x7fde6f54b0c4 in __interceptor_pthread_create ../../.././libsanitizer/asan/asan_interceptors.cc:179
>     #1 0xd450ea in ink_thread_create ../../lib/ts/ink_thread.h:150
>     #2 0xd450ea in Thread::start(char const*, unsigned long, void* (*)(void*), void*) /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/eventsystem/Thread.cc:101
>     #3 0xd4df32 in EventProcessor::start(int, unsigned long) /home/bcall/ytrafficserver-6.0.x/trafficserver/iocore/eventsystem/UnixEventProcessor.cc:140
>     #4 0x49bcca in main /home/bcall/ytrafficserver-6.0.x/trafficserver/proxy/Main.cc:1728
>     #5 0x7fde6c627af4 in __libc_start_main (/lib64/libc.so.6+0x21af4)
> ==6497==ABORTING
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)