You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by GitBox <gi...@apache.org> on 2020/05/18 20:00:13 UTC

[GitHub] [trafficserver] shinrich commented on issue #6799: HttpTunnel / H2 assertion on Docs (9.0.x)

shinrich commented on issue #6799:
URL: https://github.com/apache/trafficserver/issues/6799#issuecomment-630404876


   I think that this is probably due to https://github.com/apache/trafficserver/pull/6732.  That PR attempts to replace do_io_write(nullptr, 0, nullptr) calls with do_io_write(obj, 0, nullptr) calls, so that connection shutdowns, failures, and timeouts get delivered to the HttpSM or the ClientSession so the object has a chance to clean out references to the shutting down client_vc.
   
   However, it looks like in the Http2Stream logic, when write_ready occurs on the socket, an outstanding do_io_write of 0 will get reinterpretted as a WRITE_COMPLETE, which will trigger the assert in state_watch_for_client_abort.
   
   We could change the logic in Http2Stream to issue no write event in the vio.nbytes was 0.  Need to look and see if this is an issue for Http1 as well.
   
   In talking with @a-canary and @SolidWallOfCode, we would like to make more explicit do_io statements to indicate to only callback the continuation if the netvc is shutting down. 
   
   I'll update the ATS9 version of this PR with the WRITE_COMPLETE change so you can test on docs.


----------------------------------------------------------------
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:
users@infra.apache.org