[ 
https://issues.apache.org/jira/browse/TS-4832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Susan Hinrichs updated TS-4832:
-------------------------------
    Backport to Version:   (was: 6.2.1)

> HTTP/2 delete on stack crash
> ----------------------------
>
>                 Key: TS-4832
>                 URL: https://issues.apache.org/jira/browse/TS-4832
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: HTTP/2
>            Reporter: Susan Hinrichs
>
> A crash we had seen in production.
> {code}
> #0  0x000000000051589a in Mutex_lock (m=0x0, t=0x2b859fe1e010) at 
> ../iocore/eventsystem/I_Lock.h:380
> #1  0x000000000053d518 in MutexLock::MutexLock (this=0x2b85a571f1d0, am=0x0, 
> t=0x2b859fe1e010) at ../iocore/eventsystem/I_Lock.h:447
> #2  0x0000000000653944 in Http2Stream::initiating_close (this=0x2b86a10995c0) 
> at Http2Stream.cc:367
> #3  0x0000000000650210 in Http2ConnectionState::delete_stream 
> (this=0x2b85ac54ce28, stream=0x2b86a10995c0)
>     at Http2ConnectionState.cc:879
> #4  0x000000000065097d in Http2ConnectionState::send_data_frame 
> (this=0x2b85ac54ce28, stream=0x2b86a10995c0)
>     at Http2ConnectionState.cc:986
> #5  0x000000000064f441 in rcv_window_update_frame (cs=..., cstate=..., 
> frame=...) at Http2ConnectionState.cc:591
> #6  0x000000000064fcdb in Http2ConnectionState::main_event_handler 
> (this=0x2b85ac54ce28, event=2253, edata=0x2b85a5721610)
>     at Http2ConnectionState.cc:753
> #7  0x0000000000515a58 in Continuation::handleEvent (this=0x2b85ac54ce28, 
> event=2253, data=0x2b85a5721610)
>     at ../iocore/eventsystem/I_Continuation.h:150
> #8  0x0000000000649ef9 in send_connection_event (cont=0x2b85ac54ce28, 
> event=2253, edata=0x2b85a5721610) at Http2ClientSession.cc:61
> #9  0x000000000064c247 in Http2ClientSession::state_complete_frame_read 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:482
> #10 0x000000000064b009 in Http2ClientSession::main_event_handler 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:304
> #11 0x0000000000515a58 in Continuation::handleEvent (this=0x2b85ac54cbf0, 
> event=100, data=0x2b86fc70bff0)
>     at ../iocore/eventsystem/I_Continuation.h:150
> #12 0x000000000064bf8f in Http2ClientSession::state_start_frame_read 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:455
> #13 0x000000000064b009 in Http2ClientSession::main_event_handler 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:304
> #14 0x0000000000515a58 in Continuation::handleEvent (this=0x2b85ac54cbf0, 
> event=100, data=0x2b86fc70bff0)
>     at ../iocore/eventsystem/I_Continuation.h:150
> #15 0x000000000064c2b8 in Http2ClientSession::state_complete_frame_read 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:487
> #16 0x000000000064b009 in Http2ClientSession::main_event_handler 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:304
> #17 0x0000000000515a58 in Continuation::handleEvent (this=0x2b85ac54cbf0, 
> event=100, data=0x2b86fc70bff0)
>     at ../iocore/eventsystem/I_Continuation.h:150
> #18 0x000000000064bf8f in Http2ClientSession::state_start_frame_read 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:455
> #19 0x000000000064b009 in Http2ClientSession::main_event_handler 
> (this=0x2b85ac54cbf0, event=100, edata=0x2b86fc70bff0)
>     at Http2ClientSession.cc:304
> #20 0x0000000000515a58 in Continuation::handleEvent (this=0x2b85ac54cbf0, 
> event=100, data=0x2b86fc70bff0)
>     at ../iocore/eventsystem/I_Continuation.h:150
> #21 0x000000000078679d in read_signal_and_update (event=100, 
> vc=0x2b86fc70bed0) at UnixNetVConnection.cc:148
> #22 0x00000000007895ba in UnixNetVConnection::readSignalAndUpdate 
> (this=0x2b86fc70bed0, event=100) at UnixNetVConnection.cc:1013
> #23 0x000000000076de67 in SSLNetVConnection::net_read_io 
> (this=0x2b86fc70bed0, nh=0x2b859fe21d60, lthread=0x2b859fe1e010)
>     at SSLNetVConnection.cc:576
> ---Type <return> to continue, or q <return> to quit---
> #24 0x0000000000780011 in NetHandler::waitForActivity (this=0x2b859fe21d60, 
> timeout=60000000) at UnixNet.cc:547
> #25 0x00000000007a7c69 in EThread::execute_regular (this=0x2b859fe1e010) at 
> UnixEThread.cc:266
> #26 0x00000000007a7dac in EThread::execute (this=0x2b859fe1e010) at 
> UnixEThread.cc:304
> #27 0x00000000007a6965 in spawn_thread_internal (a=0x112f520) at Thread.cc:85
> #28 0x00002b859d8deaa1 in start_thread () from /lib64/libpthread.so.0
> #29 0x00000031d68e893d in clone () from /lib64/libc.so.6
> {code}
> I think the issue was that I removed a schedule_immediate _EOS to do the 
> Http2Stream destroy in an earlier fi and instead did the destroy inline. But 
> that class does not include recursion logic to delay the delete until the 
> stack is unbound. By sending the event again it unwinds the stack before 
> doing the destroy of Http2Stream.



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

Reply via email to