Hi All, We experienced some core dumps in ATS 7.1.4. My question is whether the pointers returned by TSHttpTxnServerReqGet() might ever become invalid over the life of the transaction? The core dump occurred from the Lua plugin in the ts_lua_server_request_header_set() function --
if (!http_ctx->server_request_hdrp) { if (TSHttpTxnServerReqGet(http_ctx->txnp, &http_ctx->server_request_bufp, &http_ctx->server_request_hdrp) != TS_SUCCESS) { return 0; } } field_loc = TSMimeHdrFieldFind(http_ctx->server_request_bufp, http_ctx->server_request_hdrp, key, key_len); --once inside TSMimeHdrFieldFind() one of the sanity checks fails which causes a core to be generated. Should the sanity be pre-checked before we call out of the Lua plugin, or should we always execute the TSHttpTxnServerReqGet() call even if pointers were non-null from a previous call? Thanks, Peter #0 0x00002b46bdadb207 in raise () from /lib64/libc.so.6 #0 0x00002b46bdadb207 in raise () from /lib64/libc.so.6 #1 0x00002b46bdadca38 in abort () from /lib64/libc.so.6 #2 0x00002b46bb149eeb in ink_abort (message_format=message_format@entry=0x2b46bb156767 "%s:%d: failed assertion `%s`") at ink_error.cc:99 #3 0x00002b46bb147f75 in _ink_assert (expression=<optimized out>, file=<optimized out>, line=<optimized out>) at ink_assert.cc:37 #4 0x00000000004c9f16 in TSMimeHdrFieldFind () #5 0x00002b46c0789f80 in ts_lua_server_request_header_set (L=0x4090ea60) at experimental/ts_lua/ts_lua_server_request.c:240 #6 0x0000000000565a86 in lj_BC_FUNCC () #7 0x00002b46c078d5d2 in ts_lua_http_cont_handler (contp=<optimized out>, ev=TS_EVENT_HTTP_SEND_REQUEST_HDR, edata=0x4f8ad40) at experimental/ts_lua/ts_lua_util.c:778 #8 0x00000000004c5f5e in INKContInternal::handle_event(int, void*) () #9 0x0000000000589c64 in HttpSM::state_api_callout(int, void*) () #10 0x000000000058cc70 in HttpSM::handle_http_server_open() () #11 0x000000000058ec28 in HttpSM::state_http_server_open(int, void*) () #12 0x000000000059160d in HttpSM::main_handler(int, void*) () #13 0x000000000072cef9 in UnixNetVConnection::connectUp(EThread*, int) () #14 0x000000000072a4e3 in UnixNetProcessor::connect_re_internal(Continuation*, sockaddr const*, NetVCOptions*) () #15 0x000000000058d4af in HttpSM::do_http_server_open(bool) () #16 0x0000000000592883 in HttpSM::set_next_state() () #17 0x000000000057fa52 in HttpSM::call_transact_and_set_next_state(void (*)(HttpTransact::State*)) () #18 0x0000000000591b6a in HttpSM::handle_api_return() () #19 0x0000000000589e6e in HttpSM::state_api_callout(int, void*) () #20 0x000000000059258b in HttpSM::set_next_state() () #21 0x000000000057fa52 in HttpSM::call_transact_and_set_next_state(void (*)(HttpTransact::State*)) () #22 0x0000000000590300 in HttpSM::state_hostdb_lookup(int, void*) () #23 0x000000000059160d in HttpSM::main_handler(int, void*) () #24 0x0000000000661f80 in reply_to_cont(Continuation*, HostDBInfo*, bool) () #25 0x000000000066647c in HostDBContinuation::dnsEvent(int, HostEnt*) () #26 0x0000000000679de8 in DNSEntry::postEvent(int, Event*) () #27 0x000000000067da38 in dns_result(DNSHandler*, DNSEntry*, HostEnt*, bool) () #28 0x000000000067e20f in DNSHandler::recv_dns(int, Event*) () #29 0x0000000000680034 in DNSHandler::mainEvent(int, Event*) () #30 0x0000000000755d52 in EThread::execute_regular() () #31 0x0000000000754a1a in spawn_thread_internal(void*) () #32 0x00002b46bce6ddd5 in start_thread () from /lib64/libpthread.so.0 #33 0x00002b46bdba3b3d in clone () from /lib64/libc.so.6