never mind, looks like need to do a check with internal request

Thanks,
Di Li


> On Dec 21, 2016, at 3:44 PM, Di Li <[email protected]> wrote:
> 
> Hey Guys,
> 
> Looks like I have triggered some infinite loop when use ts_lua with ts.fetch
> 
> 
> lua script, do the fetch after a hook function, logs shows it doesn’t take 
> cliaddr , but I don’t think that matters.
> 
> 
> function control_request()
>   local ct = {
>     header = ts.client_request.get_headers(),
>     method = 'GET',
>     cliaddr = '10.12.17.57:33333'
>   }
> 
>   local url = string.format('http://%s' <http://%s'>, '10.12.17.58' )
>   ts.debug(url)
> 
>   local res = ts.fetch(url, ct)
>   ts.debug(res)
> 
>   if res.status == 200 then
>       ts.debug("lua yes")
>   else
>       ts.debug('lua no')
>   end
> 
>   return 0
> end
> 
> 
> function do_global_read_request()
>    ts.hook(TS_LUA_HOOK_READ_REQUEST_HDR, control_request)
>    return 0
> end
> 
> 
> 
> 
> running a single query to trigger it 
> 
> [root@Di-Dev wrk]# curl -kv http://10.12.17.58 <http://10.12.17.58/> -x  
> http://10.12.17.57:8080 <http://10.12.17.57:8080/>
> * About to connect() to proxy 10.12.17.57 port 8080 (#0)
> *   Trying 10.12.17.57... connected
> * Connected to 10.12.17.57 (10.12.17.57) port 8080 (#0)
> > GET http://10.12.17.58/ <http://10.12.17.58/> HTTP/1.1
> > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 
> > Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> > Host: 10.12.17.58
> > Accept: */*
> > Proxy-Connection: Keep-Alive
> >
> 
> 
> 
> 
> 
> 
> debug log has been enabled for ts_lua
> here’s the output for the traffic.out, and shows it keeps running inside the 
> lua script, but never come back, also doesn’t seem it trying to connect any 
> url based on the netstat and tcpdump.
> 
> 
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:7085 (call_transact_and_set_next_state)> (http) [10235] 
> State Transition: SM_ACTION_UNDEFINED -> SM_ACTION_API_READ_REQUEST_HDR
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1448 (state_api_callout)> (http) [10235] calling plugin 
> on hook TS_HTTP_READ_REQUEST_HDR_HOOK at hook 0x180afe0
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DIAG: (ts_lua) 
> [globalHookHandler] req_id: 10233
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DIAG: (ts_lua) 
> [globalHookHandler] has txn hook -> adding txn close hook handler to release 
> resources
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1332 (state_api_callback)> (http) [10235] 
> [&HttpSM::state_api_callback, HTTP_API_CONTINUE]
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1372 (state_api_callout)> (http) [10235] 
> [&HttpSM::state_api_callout, HTTP_API_CONTINUE]
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1448 (state_api_callout)> (http) [10235] calling plugin 
> on hook TS_HTTP_READ_REQUEST_HDR_HOOK at hook 0x2aaae364a180
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DIAG: (ts_lua) 
> http://10.12.17.58 <http://10.12.17.58/>
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSessionAccept.cc 
> <http://httpsessionaccept.cc/>:60 (accept)> (http_seq) 
> [HttpSessionAccept:mainEvent 0x2aaae3689148] accepted connection from 
> 127.0.0.1:33333 transport type = 0
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <Http1ClientSession.cc 
> <http://http1clientsession.cc/>:170 (new_connection)> (http_cs) [10236] 
> session born, netvc 0x2aaae3689148
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: 
> <ProxyClientTransaction.cc <http://proxyclienttransaction.cc/>:46 
> (new_transaction)> (http_txn) [0] Starting transaction 1 using sm [10236]
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:2641 (main_handler)> (http) [10236] 
> [HttpSM::main_handler, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.070] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:619 (state_read_client_request_header)> (http) [10236] 
> [&HttpSM::state_read_client_request_header, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:2641 (main_handler)> (http) [10236] 
> [HttpSM::main_handler, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:619 (state_read_client_request_header)> (http) [10236] 
> [&HttpSM::state_read_client_request_header, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:769 (state_read_client_request_header)> (http) [10236] 
> done parsing client request header
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1112 (ModifyRequest)> (http_trans) START 
> HttpTransact::ModifyRequest
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:8386 (ink_cluster_time)> (http_trans) 
> [ink_cluster_time] local: 1482363281, highest_delta: 0, cluster: 1482363281
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1203 (ModifyRequest)> (http_trans) END 
> HttpTransact::ModifyRequest
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1205 (ModifyRequest)> (http_trans) Checking if 
> transaction wants to upgrade
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1212 (ModifyRequest)> (http_trans) Next action 
> SM_ACTION_API_READ_REQUEST_HDR; HttpTransact::StartRemapRequest
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:7085 (call_transact_and_set_next_state)> (http) [10236] 
> State Transition: SM_ACTION_UNDEFINED -> SM_ACTION_API_READ_REQUEST_HDR
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1448 (state_api_callout)> (http) [10236] calling plugin 
> on hook TS_HTTP_READ_REQUEST_HDR_HOOK at hook 0x180afe0
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DIAG: (ts_lua) 
> [globalHookHandler] req_id: 10234
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DIAG: (ts_lua) 
> [globalHookHandler] has txn hook -> adding txn close hook handler to release 
> resources
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1332 (state_api_callback)> (http) [10236] 
> [&HttpSM::state_api_callback, HTTP_API_CONTINUE]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1372 (state_api_callout)> (http) [10236] 
> [&HttpSM::state_api_callout, HTTP_API_CONTINUE]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1448 (state_api_callout)> (http) [10236] calling plugin 
> on hook TS_HTTP_READ_REQUEST_HDR_HOOK at hook 0x2aaae364a140
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DIAG: (ts_lua) 
> http://10.12.17.58 <http://10.12.17.58/>
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSessionAccept.cc 
> <http://httpsessionaccept.cc/>:60 (accept)> (http_seq) 
> [HttpSessionAccept:mainEvent 0x2aaae3689778] accepted connection from 
> 127.0.0.1:33333 transport type = 0
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <Http1ClientSession.cc 
> <http://http1clientsession.cc/>:170 (new_connection)> (http_cs) [10237] 
> session born, netvc 0x2aaae3689778
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: 
> <ProxyClientTransaction.cc <http://proxyclienttransaction.cc/>:46 
> (new_transaction)> (http_txn) [0] Starting transaction 1 using sm [10237]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:2641 (main_handler)> (http) [10237] 
> [HttpSM::main_handler, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:619 (state_read_client_request_header)> (http) [10237] 
> [&HttpSM::state_read_client_request_header, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:2641 (main_handler)> (http) [10237] 
> [HttpSM::main_handler, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:619 (state_read_client_request_header)> (http) [10237] 
> [&HttpSM::state_read_client_request_header, VC_EVENT_READ_READY]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:769 (state_read_client_request_header)> (http) [10237] 
> done parsing client request header
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1112 (ModifyRequest)> (http_trans) START 
> HttpTransact::ModifyRequest
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:8386 (ink_cluster_time)> (http_trans) 
> [ink_cluster_time] local: 1482363281, highest_delta: 0, cluster: 1482363281
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1203 (ModifyRequest)> (http_trans) END 
> HttpTransact::ModifyRequest
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1205 (ModifyRequest)> (http_trans) Checking if 
> transaction wants to upgrade
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpTransact.cc 
> <http://httptransact.cc/>:1212 (ModifyRequest)> (http_trans) Next action 
> SM_ACTION_API_READ_REQUEST_HDR; HttpTransact::StartRemapRequest
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:7085 (call_transact_and_set_next_state)> (http) [10237] 
> State Transition: SM_ACTION_UNDEFINED -> SM_ACTION_API_READ_REQUEST_HDR
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1448 (state_api_callout)> (http) [10237] calling plugin 
> on hook TS_HTTP_READ_REQUEST_HDR_HOOK at hook 0x180afe0
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DIAG: (ts_lua) 
> [globalHookHandler] req_id: 10235
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DIAG: (ts_lua) 
> [globalHookHandler] has txn hook -> adding txn close hook handler to release 
> resources
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1332 (state_api_callback)> (http) [10237] 
> [&HttpSM::state_api_callback, HTTP_API_CONTINUE]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1372 (state_api_callout)> (http) [10237] 
> [&HttpSM::state_api_callout, HTTP_API_CONTINUE]
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DEBUG: <HttpSM.cc 
> <http://httpsm.cc/>:1448 (state_api_callout)> (http) [10237] calling plugin 
> on hook TS_HTTP_READ_REQUEST_HDR_HOOK at hook 0x2aaae364a100
> [Dec 21 15:34:41.071] Server {0x2aaab5312700} DIAG: (ts_lua) 
> http://10.12.17.58 <http://10.12.17.58/>
> 
> 
> Thanks,
> Di Li
> 
> 
> 
> 

Reply via email to