Hi, I'm using ATS 3.0.1 and when using TSContSchedule its causing the
assertion on line 4124 in InkAPI.cc to be triggered. That corresponds
to the following code:
if (ink_atomic_increment((int *) &i->m_event_count, 1) < 0)
ink_assert (!"not reached");
Using GDB I checked and yes m_event_count is well below 0. What could
be causing this? I've attached the full backtrace for this.
Thanks in advance!
Brian
(gdb) bt full
#0 0x00007fff82a8fe4e in __semwait_signal_nocancel ()
No symbol table info available.
#1 0x00007fff82a8fd50 in nanosleep$NOCANCEL ()
No symbol table info available.
#2 0x00007fff82aec6ae in usleep$NOCANCEL ()
No symbol table info available.
#3 0x00007fff82b0bce0 in abort ()
No symbol table info available.
#4 0x0000000100b1d9ef in ink_die_die_die (retval=Could not find the
frame base for "ink_die_die_die".
) at ink_error.cc:43
No locals.
#5 0x0000000100b1dca9 in ink_fatal_va (return_code=1,
message_format=0x10564d3a0 "InkAPI.cc:4128: failed assert `!\"not
reached\"`", ap=0x10564d2a0) at ink_error.cc:65
extended_format = "FATAL: InkAPI.cc:4128: failed assert `!\"not
reached\"`", '\0' <repeats 27 times>, "
\000\000\0000\000\000\000??d\005\001\000\000\000\000?d\005\001", '\0'
<repeats 19 times>, "???2", '\0' <repeats 72 times>, "?", '\0'
<repeats 130 times>, "@KOp?\000\000???2", '\0' <repeats 60 times>,
";\000\000\000\000\000\000\000?\023?a??\002gTue Aug
?Ѧ??\000\000@?d\005\001\000\000\000\035Ѧ??\000\000\001\000\000\000\000\000\000\000?\""...
message = "FATAL: InkAPI.cc:4128: failed assert `!\"not
reached\"`\000\000\000=?d\005\001\000\000\000??d\005\001\000\000\0000?d\005\001\000\000\000>?d\005\001\000\000\000@?d\005\001\000\000\000\000?d\005\001\000\000\000(?d\005\001\000\000\000,?d\005\001\000\000\000
?d\005\001\000\000\0006?d\005\001\000\000\000B?d\005\001\000\000\000C?d\005\001\000\000\000@?d\005\001\000\000\0000?d\005\001\000\000\000\020?d\005\001\000\000\000@?d\005\001\000\000\000$?d\005\001\000\000\000??d\005\001\000\000\000"...
#6 0x0000000100b1de8a in ink_fatal (return_code=1,
message_format=0x10564d3a0 "InkAPI.cc:4128: failed assert `!\"not
reached\"`") at ink_error.cc:73
ap = {{
gp_offset = 16,
fp_offset = 48,
overflow_arg_area = 0x10564d380,
reg_save_area = 0x10564d2c0
}}
#7 0x0000000100b1be52 in _ink_assert (a=0x100268fb8 "!\"not
reached\"", f=0x100268f83 "InkAPI.cc", l=4128) at ink_assert.cc:44
buf1 =
"InkAPI.cc\000?\000\001\000\000\000\000\020\000\000\000\000\000\000?????\000\000\020I\025\006\001\000\000\000\020I\025\006\001\000\000\000\020?d\005\001\000\000\000?)???\000\000:59.125\000\000\000?\003\001",
'\0' <repeats 11 times>,
"\003P\000\000\000\000\000\000\037?%\000\001\000\000\000P̐\001\001\000\000\0000?d\005\001\000\000\000?]#\000\001\000\000\000P?d\005\001\000\000\000\020I\025\006\001\000\000\000p?d\005\001\000\000\000\002?#\000\001\000\000\000\000?d\005\001\000\000\000\000\000?\003\001\000\000\000\000I\025\006\001",
'\0' <repeats 11 times>, "p?d\005\032\020\000\000??"...
buf2 = "InkAPI.cc:4128: failed assert `!\"not
reached\"`\000\000???\000\001\000\000\000???\000\001\000\000\000\000\000\000\000\002\000\000\000????\000\000\000\000P\022?\001\001\000\000\000???\000\001",
'\0' <repeats 19 times>,
"???\000\001\000\000\000???\000\001\000\000\000\000\000\000\000\002\000\000\000????\000\000\000\000P\022?\001\001\000\000\000???\000\001",
'\0' <repeats 19 times>,
"???\000\001\000\000\000???\000\001\000\000\000\000\000\000\000\002\000\000\000????\000\000\000\000??d\005\001\000\000\000?\023"...
#8 0x000000010003416e in TSContSchedule (contp=0x10617a200,
timeout=0, tp=TS_THREAD_POOL_DEFAULT) at InkAPI.cc:4128
ml = {
m = {
m_ptr = 0x106154900
}
}
i = (INKContInternal *) 0x10617a200
action = (TSAction) 0x100000104c00e80
etype = 1
#9 0x0000000100cea435 in FrameServer::skeleton::newResolvedElement
(this=0x10196fd00) at SkeletonParser.cc:126
__FUNCTION__ = "newResolvedElement"
#10 0x0000000100cea4dc in FrameServer::EmbedResultProcessor::process
(this=0x101806c20, url=@0x101806cb0,
result=FetchResultProcessor::SUCCESS, status=TS_HTTP_STATUS_OK,
body=0x10f910883 " "..., bodyLen=15621) at SkeletonParser.cc:167
__FUNCTION__ = "process"
#11 0x0000000100ce9749 in handleFetchEvents (cont=0x10bc9d440,
event=10000, edata=0x10c037870) at Utils.cc:115
status = TS_HTTP_STATUS_OK
bodyLen = 15621
dataLen = 15752
dataEnd = 0x10f914588 ""
buf = (TSMBuffer) 0x104c00140
hdrLoc = (TSMLoc) 0x117701088
txn = (TSHttpTxn) 0x10c037870
dataStart = 0x10f910883 " "...
parser = (TSHttpParser) 0x104c00e80
contData = (FetchContData *) 0x101806cb0
__FUNCTION__ = "handleFetchEvents"
#12 0x000000010002a646 in INKContInternal::handle_event
(this=0x10bc9d440, event=10000, edata=0x10c037870) at InkAPI.cc:978
No locals.
#13 0x000000010001fee6 in Continuation::handleEvent (this=0x10bc9d440,
event=10000, data=0x10c037870) at I_Continuation.h:146
No locals.
#14 0x00000001000417d5 in FetchSM::InvokePlugin (this=0x10c037870,
event=10000, data=0x10c037870) at FetchSM.cc:76
mythread = (EThread *) 0x103810000
ret = 1
#15 0x0000000100042115 in FetchSM::process_fetch_read
(this=0x10c037870, event=104) at FetchSM.cc:166
bytes = 15752
bytes_used = 1
actual_bytes_copied = 0
__FUNCTION__ = "process_fetch_read"
#16 0x00000001000422c2 in FetchSM::fetch_handler (this=0x10c037870,
event=104, edata=0x10bca0fe8) at FetchSM.cc:207
__FUNCTION__ = "fetch_handler"
#17 0x000000010001fee6 in Continuation::handleEvent (this=0x10c037870,
event=104, data=0x10bca0fe8) at I_Continuation.h:146
No locals.
#18 0x000000010005ae83 in PluginVC::process_read_side
(this=0x10bca0e38, other_side_call=false) at PluginVC.cc:626
core_reader = (IOBufferReader *) 0x10c0144d8
my_ethread = (EThread *) 0x103810000
lock = {
m = {
m_ptr = 0x10d0a5000
},
lock_acquired = true
}
ntodo = 9223372036854760055
bytes_avail = 0
act_on = 0
output_buffer = (MIOBuffer *) 0x10564dd00
water_mark = 4296781039
buf_space = 4385463488
added = 259
__FUNCTION__ = "process_read_side"
#19 0x000000010005bc2d in PluginVC::main_handler (this=0x10bca0e38,
event=1, data=0x10614c480) at PluginVC.cc:196
call_event = (Event *) 0x10614c480
my_ethread = (EThread *) 0x103810000
read_mutex_held = true
write_mutex_held = true
read_side_mutex = {
m_ptr = 0x10d0a5000
}
write_side_mutex = {
m_ptr = 0x10d0a5000
}
__FUNCTION__ = "main_handler"
#20 0x000000010001fee6 in Continuation::handleEvent (this=0x10bca0e38,
event=1, data=0x10614c480) at I_Continuation.h:146
No locals.
#21 0x000000010025ba0b in EThread::process_event (this=0x103810000,
e=0x10614c480, calling_code=1) at UnixEThread.cc:140
c_temp = (Continuation *) 0x10bca0e38
lock = {
m = {
m_ptr = 0x10d0a4f80
},
lock_acquired = true
}
#22 0x000000010025be6a in EThread::execute (this=0x103810000) at
UnixEThread.cc:232
done_one = false
e = (Event *) 0x10614c480
NegativeQueue = {
<DLL<Event, Event::Link_link>> = {
head = 0x102035320
},
members of Queue<Event, Event::Link_link>:
tail = 0x102035320
}
next_time = 1312912242708813000
#23 0x000000010025b288 in spawn_thread_internal (a=0x10190cc50) at Thread.cc:88
p = (thread_data_internal *) 0x10190cc50
#24 0x00007fff82a564f6 in _pthread_start ()
No symbol table info available.
#25 0x00007fff82a563a9 in thread_start ()
No symbol table info available.
(gdb)
//INKContInternal *i = (INKContInternal *) contp;
// contents of i below:
(gdb) p *i
$11 = {
<DummyVConnection> = {
<VConnection> = {
<Continuation> = {
<force_VFPT_to_top> = {
_vptr$force_VFPT_to_top = 0x10617b601
},
members of Continuation:
handler = {
__pfn = 0xefbeaddeefbeadde,
__delta = -1171307680053154338
},
handler_name = 0xefbeaddeefbeadde <Address 0xefbeaddeefbeadde
out of bounds>,
mutex = {
m_ptr = 0xefbeaddeefbeadde
},
link = {
<SLink<Continuation>> = {
next = 0xefbeaddeefbeadde
},
members of Link<Continuation>:
prev = 0xefbeaddeefbeadde
}
},
members of VConnection:
lerrno = -272716322
}, <No data fields>},
members of INKContInternal:
mdata = 0xefbeaddeefbeadde,
m_event_func = 0xefbeaddeefbeadde,
m_event_count = -272716321,
m_closed = -272716322,
m_deletable = -272716322,
m_deleted = -272716322,
m_free_magic = -272716322
}
(gdb)