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)

Reply via email to