maskit commented on issue #9783:
URL: https://github.com/apache/trafficserver/issues/9783#issuecomment-1674078679

   I looked into this a bit more. My comment above was not very accurate (the 
abort happens even if `transaction_done()` is called by HttpSM).
   
   There are (at least) two issues around this. When inactive timeout happens 
on a QUIC connection:
   1. The event is not propagated to streams on the connection due to lack of 
implementation, and transactions keep running without knowing connection close 
due to timeout. This causes the abort. RESET_STREAM frame, which closes one 
stream, can cause a similar result too.
   2. The event is not propagated to the session because there is no path to 
propagate events from QUICNetVC to Http3App/Session. Although closing 
streams/transactions at the destructors is doable, that would be the last 
resort if we have no idea why transactions are not closed. When inactive 
timeout happens, Http3App/Session should notify the event to all transactions.
   
   On H1 and H2, their session directly interacts SSLNetVC, so they call 
`SSLNetVC::do_io_read/write` and that establishes a way to propagate events. On 
H3, H3App/Session cannot directly read/write data from/to QUICNetVC (everything 
is done on streams), so it seemed like there's no need to call 
do_io_read/write. But we probably need to call them to receive events.
   


-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to