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 =
, link = {<SLink<Continuation>> =
{next = 0x0},
prev = 0x0}}, lerrno = 0}, options =
, socks_addr = {type = 0 '\000', addr = {ipv4 = "\000\000\000", buf = 0x0}}, attributes = 0,
thread = 0xb6a7c008, local_addr =
, 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 =
, vc_server = 0x896a7fc, mutex = {m_ptr = 0x89b8a60}}, shutdown = false}, write_state = {vio = {
_cont = 0x8970e30, nbytes = 188, ndone = 0, op = 2, buffer =
, 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"