Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-4830

Http2 write_vio.reenable crash

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • 7.0.0
    • HTTP/2
    • None

    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

          Activity

            People

              shinrich Susan Hinrichs
              shinrich Susan Hinrichs
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: