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

PluginVC crashes with TSFetchURL

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.1.0, 3.0.2
    • None

    Description

      On TSFetchURL call, the call_event in PluginVC does not match with any of the events(active_event,inactive_event,core_lock_retry_event,sm_lock_retry_event). However, on trace analysis it actually matches with sm_lock_retry_event.

      (gdb) bt
      #0 0xb7fe1424 in __kernel_vsyscall ()
      #1 0xb7a1ae71 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
      #2 0xb7a1e34e in abort () at abort.c:92
      #3 0xb7fad9a4 in ink_die_die_die (retval=1) at ink_error.cc:43
      #4 0xb7fada79 in ink_fatal_va (return_code=1, message_format=0xb5767f5c "PluginVC.cc:193: failed assert `call_event == core_lock_retry_event`",
      ap=0xb5767f38 "") at ink_error.cc:65
      #5 0xb7fadabd in ink_fatal (return_code=1, message_format=0xb5767f5c "PluginVC.cc:193: failed assert `call_event == core_lock_retry_event`")
      at ink_error.cc:73
      #6 0xb7fac684 in _ink_assert (a=0x8302b10 "call_event == core_lock_retry_event", f=0x8302a2d "PluginVC.cc", l=193) at ink_assert.cc:44
      #7 0x0813e0fa in PluginVC::main_handler (this=0x896a7fc, event=1, data=0x8999890) at PluginVC.cc:193
      #8 0x0810bd47 in Continuation::handleEvent (this=0x896a7fc, event=1, data=0x8999890) at ../iocore/eventsystem/I_Continuation.h:146
      #9 0x082f2a8a in EThread::process_event (this=0xb6577008, e=0x8999890, calling_code=1) at UnixEThread.cc:140
      #10 0x082f2f30 in EThread::execute (this=0xb6577008) at UnixEThread.cc:232
      #11 0x082f1b75 in spawn_thread_internal (a=0x891a1e0) at Thread.cc:85
      #12 0xb7f89e99 in start_thread (arg=0xb5768b70) at pthread_create.c:304
      #13 0xb7ac073e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
      (gdb) f 7
      #7 0x0813e0fa in PluginVC::main_handler (this=0x896a7fc, event=1, data=0x8999890) at PluginVC.cc:193
      193 ink_release_assert(call_event == core_lock_retry_event);
      (gdb) print *this
      $1 = {<NetVConnection> = {<VConnection> = {<Continuation> = {<force_VFPT_to_top> = {_vptr.force_VFPT_to_top = 0x8303188}, handler = (
      int (Continuation::)(Continuation *, int, void *)) 0x813dc66 <PluginVC::main_handler(int, void)>,
      handler_name = 0x8302a06 "&PluginVC::main_handler", mutex =

      {m_ptr = 0x8979c30}

      , link = {<SLink<Continuation>> =

      {next = 0x0}

      ,
      prev = 0x0}}, lerrno = 0}, options =

      {ip_proto = NetVCOptions::USE_TCP, local_port = 0, port_binding = NetVCOptions::ANY_PORT, local_addr = 0, addr_binding = NetVCOptions::ANY_ADDR, f_blocking = false, f_blocking_connect = false, socks_support = 0 '\000', socks_version = 0 '\000', socket_recv_bufsize = 0, socket_send_bufsize = 0, sockopt_flags = 0, static SOCK_OPT_NO_DELAY = 1, static SOCK_OPT_KEEP_ALIVE = 2, etype = 0}

      , socks_addr = {type = 0 '\000', addr = {ipv4 = "\000\000\000", buf = 0x0}}, attributes = 0,
      thread = 0xb6a7c008, local_addr =

      {ss_family = 0, __ss_align = 0, __ss_padding = '\000' <repeats 119 times>}

      , remote_addr =

      {ss_family = 0, __ss_align = 0, __ss_padding = '\000' <repeats 119 times>}

      , got_local_addr = 0, got_remote_addr = 0, is_internal_request = false,
      is_transparent = 49, is_other_side_transparent = false}, magic = 2864434397, vc_type = PLUGIN_VC_ACTIVE, core_obj = 0x896a7e0,
      other_side = 0x896a9fc, read_state = {vio = {_cont = 0x8970e30, nbytes = 9223372036854775807, ndone = 0, op = 1, buffer =

      {mbuf = 0x8995b40, entry = 0x0, name = 0x0}

      , vc_server = 0x896a7fc, mutex = {m_ptr = 0x89b8a60}}, shutdown = false}, write_state = {vio = {
      _cont = 0x8970e30, nbytes = 188, ndone = 0, op = 2, buffer =

      {mbuf = 0x8994d80, entry = 0x8994d94, name = 0x0}

      , vc_server = 0x896a7fc,
      mutex = {m_ptr = 0x89b8a60}}, shutdown = false}, need_read_process = true, need_write_process = true, closed = false,
      sm_lock_retry_event = 0x8999890, core_lock_retry_event = 0x0, deletable = false, reentrancy_count = 1, active_timeout = 0,
      inactive_timeout = 0, active_event = 0x0, inactive_event = 0x0}
      (gdb) print sm_lock_retry_event
      $5 = (Event *) 0x8999890
      (gdb) print call_event
      $6 = (Event *) 0x8999890
      (gdb) print this->write_state->vio->_cont->handler_name
      $7 = 0x82fae82 "&FetchSM::fetch_handler"
      (gdb) print this->read_state->vio->_cont->handler_name
      $8 = 0x82fae82 "&FetchSM::fetch_handler"

      Attachments

        Activity

          People

            i.galic Igor Galić
            naveenatceg Naveen Somasundaram
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: