shinrich edited a comment on pull request #7237:
URL: https://github.com/apache/trafficserver/pull/7237#issuecomment-704299762


   @masaori335 and I have been trying to augment h2spec to reproduce the 
problem I was seeing in our production.  We are applying patches to 
https://github.com/summerwind/h2spec.  And then running some variant of 
"./h2spec -h localhost -p 4443 -P "/post" -t -k http2/8.1.2.6/3" against our 
traffic_server with the appropriate remap rule for the URL.
   
   @masaori335's original patch is attached as no-eos.txt.  With this patch, 
ATS processed the no-eos's POST request and returned a response.  The Post 
tunnel followed the pre-complete path.  All of the data had been read from the 
client before the tunnel run started.  So the producer was marked as completed 
and the consumer read all the data and the server returned a response.  However 
after a while (10-30 seconds), ATS crashes with an inactivity timeout triggers 
on a HttpTunnel continuation which belongs to a deleted HttpSM.
   
   So I added a 2 second delay between sending the request header and sending 
the data.  That avoided the pre-complete, so the tunnel got into the state of 
an active producer but a completed consumer.  However the h2spec client 
shutdown shortly there after. So the client EOS was processed before any 
timeout occurred.  
   
   Then I added a 10 second delay between sending the post data and processing 
the response.  This allowed the default inactivity timeout to trigger (which I 
had set to 10 seconds) to trigger. The client exited after one iteration of the 
time out, but by that time ATS continued iterating every 10 seconds on 
state_send_server_request_header and handle_server_setup_error.  My final 
version of the patch is attached in no-eos-delays.txt
   
   
   
[no-eos.txt](https://github.com/apache/trafficserver/files/5334394/no-eos.txt)
   
[no-eos-delays.txt](https://github.com/apache/trafficserver/files/5334396/no-eos-delays.txt)
   
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to