Github user oknet commented on the issue:
https://github.com/apache/trafficserver/pull/947
according your description, the HttpTunnel transfers the data from server
session to client session, ATS received a RST from client and the connection
between ATS and origin server is still alive.
In your scenario, server session is the producer of HttpTunnel and client
session is a consumer of HttpTunnel and cache session is the 2nd consumer if
cache enabled.
The HttpTunnel will not break if one consumer failed.
The producer will re-enable all consumers if received READ_READY event.
The consumer will re-enable producer if received WRITE_READY event.
The producer is master and all consumers are slave. let the master trigger
slaves and isolate the broken slave.
Add a netvc into write_ready queue means there is non-fatal error(ex
EAGAIN) at last write() call. It means write is enabled on the netvc.
Only the returned errno from read() and write() is trustable.
To close a netvc immediately if vc->read.vio._cont and vc->write.vio._cont
both are NULL.
Otherwise should callback to SM.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---