Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Duplicate
-
None
-
None
-
None
Description
There is a continuation that is being scheduled with a NULL handler. I added an assert to Event::init() to catch the code trying to do it:
backtrace of the assert:
(gdb) bt #0 0x0000003818032625 in raise () from /lib64/libc.so.6 #1 0x0000003818033d8d in abort () from /lib64/libc.so.6 #2 0x00002b3186ed60c8 in ink_die_die_die (fmt=0x2b3186ee262f "%s:%d: failed assert `%s`", ap=0x2b318b536718) at ../../../trafficserver/lib/ts/ink_error.cc:43 #3 ink_fatal_va(const char *, typedef __va_list_tag __va_list_tag *) (fmt=0x2b3186ee262f "%s:%d: failed assert `%s`", ap=0x2b318b536718) at ../../../trafficserver/lib/ts/ink_error.cc:65 #4 0x00002b3186ed615c in ink_fatal (message_format=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/lib/ts/ink_error.cc:73 #5 0x00002b3186ed4445 in _ink_assert (expression=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/lib/ts/ink_assert.cc:37 #6 0x00000000004fcd4c in init (this=0x2b31e800dd48, event=1108, data=0x2b31e80a70b0) at ../../trafficserver/iocore/eventsystem/P_UnixEvent.h:30 #7 schedule_imm (this=0x2b31e800dd48, event=1108, data=0x2b31e80a70b0) at ../../trafficserver/iocore/eventsystem/P_UnixEThread.h:52 #8 ProxyClientTransaction::adjust_thread (this=0x2b31e800dd48, event=1108, data=0x2b31e80a70b0) at ../../trafficserver/proxy/ProxyClientTransaction.cc:95 #9 0x0000000000540af3 in HttpSM::state_cache_open_write (this=0x2b3241116800, event=1108, data=0x2b31e80a70b0) at ../../../trafficserver/proxy/http/HttpSM.cc:2459 #10 0x000000000054fa38 in HttpSM::main_handler (this=0x2b3241116800, event=1108, data=0x2b31e80a70b0) at ../../../trafficserver/proxy/http/HttpSM.cc:2661 #11 0x0000000000526bad in handleEvent (this=0x2b3241118110, event=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/eventsystem/I_Continuation.h:153 #12 HttpCacheSM::state_cache_open_write (this=0x2b3241118110, event=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/proxy/http/HttpCacheSM.cc:186 #13 0x000000000064d71b in handleEvent (this=0x2b31e80a70b0, event=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/eventsystem/I_Continuation.h:153 #14 CacheVC::callcont (this=0x2b31e80a70b0, event=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/cache/P_CacheInternal.h:637 #15 0x00000000006d67f0 in Cache::open_write (this=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/cache/CacheWrite.cc:1754 #16 0x0000000000526f6f in HttpCacheSM::open_write (this=0x2b3241118110, key=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/proxy/http/HttpCacheSM.cc:343 #17 0x000000000053a635 in HttpSM::do_cache_prepare_action (this=0x2b3241116800, c_sm=0x2b3241118110, object_read_info=0x0, retry=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/proxy/http/HttpSM.cc:4645 #18 0x000000000054ddc6 in do_cache_prepare_write (this=0x2b3241116800) at ../../../trafficserver/proxy/http/HttpSM.cc:4567 #19 HttpSM::set_next_state (this=0x2b3241116800) at ../../../trafficserver/proxy/http/HttpSM.cc:7347 #20 0x000000000054994b in HttpSM::state_api_callout (this=0x2b3241116800, event=0, data=0x0) at ../../../trafficserver/proxy/http/HttpSM.cc:1537 #21 0x000000000054de2b in HttpSM::set_next_state (this=0x2b3241116800) at ../../../trafficserver/proxy/http/HttpSM.cc:7116 #22 0x0000000000542528 in HttpSM::state_hostdb_lookup (this=0x2b3241116800, event=500, data=0x2b31909a4820) at ../../../trafficserver/proxy/http/HttpSM.cc:2219 #23 0x000000000054fa38 in HttpSM::main_handler (this=0x2b3241116800, event=500, data=0x2b31909a4820) at ../../../trafficserver/proxy/http/HttpSM.cc:2661 #24 0x000000000063ae5c in handleEvent (cont=0x2b3241116800, r=0x2b31909a4820, is_srv=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/eventsystem/I_Continuation.h:153 #25 reply_to_cont (cont=0x2b3241116800, r=0x2b31909a4820, is_srv=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/hostdb/HostDB.cc:604 #26 0x00000000006425db in HostDBContinuation::probeEvent (this=0x2b31934fc3c0, e=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/hostdb/HostDB.cc:1912 #27 0x0000000000642778 in HostDBContinuation::dnsPendingEvent (this=0x2b31934fc3c0, event=1, e=0x0) at ../../../trafficserver/iocore/hostdb/HostDB.cc:1379 #28 0x000000000063ab84 in handleEvent (this=0x2b31934fd5e0) at ../../../trafficserver/iocore/eventsystem/I_Continuation.h:153 #29 HostDBContinuation::remove_trigger_pending_dns (this=0x2b31934fd5e0) at ../../../trafficserver/iocore/hostdb/HostDB.cc:1969 #30 0x0000000000640d5d in HostDBContinuation::dnsEvent (this=Unhandled dwarf expression opcode 0xf3 ) at ../../../trafficserver/iocore/hostdb/HostDB.cc:1661 #31 0x0000000000659af5 in handleEvent (this=0x2b31e003ab00) at ../../../trafficserver/iocore/eventsystem/I_Continuation.h:153 #32 DNSEntry::postEvent (this=0x2b31e003ab00) at ../../../trafficserver/iocore/dns/DNS.cc:1269 #33 0x0000000000756f0a in handleEvent (this=0x2b3189d20010, e=0x2b31f00878c0, calling_code=1) at ../../../trafficserver/iocore/eventsystem/I_Continuation.h:153 #34 EThread::process_event (this=0x2b3189d20010, e=0x2b31f00878c0, calling_code=1) at ../../../trafficserver/iocore/eventsystem/UnixEThread.cc:148 #35 0x0000000000757d38 in EThread::execute (this=0x2b3189d20010) at ../../../trafficserver/iocore/eventsystem/UnixEThread.cc:202 #36 0x00000000007569b5 in spawn_thread_internal (a=0x1957730) at ../../../trafficserver/iocore/eventsystem/Thread.cc:86 #37 0x00002b3187d33aa1 in start_thread () from /lib64/libpthread.so.0 #38 0x00000038180e893d in clone () from /lib64/libc.so.6
Attachments
Issue Links
- duplicates
-
TS-4529 HttpSM doesn't assign the right continuation when adjusting threads
- Closed
- relates to
-
TS-4478 AsyncHttpFetch hangs forever after ProxyClientSession changes
- Closed
-
TS-4529 HttpSM doesn't assign the right continuation when adjusting threads
- Closed
-
TS-3612 Restructure Proxy Client Sessions to support transaction oriented Sessions execute transaction hooks and connection oriented Sessions execute session hooks
- Closed