Description
We were seeing crashes with following stack.
gdb) bt #0 0x000000368400f807 in ?? () from /lib64/libgcc_s.so.1 #1 0x00000036840100b9 in _Unwind_Backtrace () from /lib64/libgcc_s.so.1 #2 0x00000036820fe936 in backtrace () from /lib64/libc.so.6 #3 0x00002b3543897af7 in ink_stack_trace_dump () at ink_stack_trace.cc:60 #4 0x00002b3543899cd4 in signal_crash_handler (signo=11) at signals.cc:183 #5 0x0000000000512b5c in crash_logger_invoke (signo=11, info=0x2b354ce0a4f0, ctx=0x2b354ce0a3c0) at Crash.cc:169 #6 <signal handler called> #7 0x0000000200000000 in ?? () #8 0x0000000000515a0f in VIO::reenable (this=0x2b36e8020228) at ../iocore/eventsystem/P_VIO.h:112 #9 0x000000000064cbc9 in Http2ClientSession::write_reenable (this=0x2b36ad35ed10) at Http2ClientSession.h:195 #10 0x000000000064b0e5 in Http2ClientSession::main_event_handler (this=0x2b36ad35ed10, event=2254, edata=0x2b354ce0c980) at Http2ClientSession.cc:298 #11 0x00000000005159c8 in Continuation::handleEvent (this=0x2b36ad35ed10, event=2254, data=0x2b354ce0c980) at ../iocore/eventsystem/I_Continuation.h:150 #12 0x00000000006508c1 in Http2ConnectionState::send_data_frame (this=0x2b36ad35ef50, stream=0x2b362cfc1120) at Http2ConnectionState.cc:977 #13 0x000000000065360b in Http2Stream::do_io_close (this=0x2b362cfc1120) at Http2Stream.cc:293 #14 0x00000000005f5900 in HttpSM::tunnel_handler_ua (this=0x2b369a1b6750, event=103, c=0x2b369a1b7c38) at HttpSM.cc:3370 #15 0x000000000063f3f6 in HttpTunnel::consumer_handler (this=0x2b369a1b7bf8, event=103, c=0x2b369a1b7c38) at HttpTunnel.cc:1326 #16 0x000000000063fbbd in HttpTunnel::main_handler (this=0x2b369a1b7bf8, event=103, data=0x2b362cfc14a0) at HttpTunnel.cc:1576 #17 0x00000000005159c8 in Continuation::handleEvent (this=0x2b369a1b7bf8, event=103, data=0x2b362cfc14a0) at ../iocore/eventsystem/I_Continuation.h:150 #18 0x0000000000652b7b in Http2Stream::main_event_handler (this=0x2b362cfc1120, event=103, edata=0x2b36840c0910) at Http2Stream.cc:85 #19 0x00000000005159c8 in Continuation::handleEvent (this=0x2b362cfc1120, event=103, data=0x2b36840c0910) at ../iocore/eventsystem/I_Continuation.h:150 #20 0x00000000007a79ee in EThread::process_event (this=0x2b35468af010, e=0x2b36840c0910, calling_code=103) at UnixEThread.cc:145 #21 0x00000000007a7d8d in EThread::execute_regular (this=0x2b35468af010) at UnixEThread.cc:212 #22 0x00000000007a8164 in EThread::execute (this=0x2b35468af010) at UnixEThread.cc:304 #23 0x00000000007a6d1d in spawn_thread_internal (a=0x1775a60) at Thread.cc:85 #24 0x00002b35444b3aa1 in start_thread () from /lib64/libpthread.so.0 #25 0x00000036820e893d in clone () from /lib64/libc.so.6
Digging in to the data structures it looks like the client has already sent an EOS. Http2ClientSession.client_vc is NULL. But a write_vio lingers (with cont and nbytes set to 0 but buffer non-NULL). I would assume we shouldn't be doing a final write in this case if the client has initiated the shutdown.
Attachments
Issue Links
- is superceded by
-
TS-3834 Close the client session after sending GOAWAY with errors
- Closed