Github user jacksontj commented on the issue:
https://github.com/apache/trafficserver/pull/947
The behavior I see on master (without this patch) is that ATS doesn't close
the session when getting the RST. From digging that UnixNetHandler gets an
EPOLLERR -- which attempts to add it to the write_ready queue, but since the vc
isn't enabled for writing the HTTPTunnel isn't ever called to do the write.
So from your last 2 comments it sounds like a more correct approach would
be to immediately schedule a read/write to the socket -- to determine if there
was in fact an error.
It also sounds like you are suggesting that inactivity cop should get these
sessions? In my tests I see that these sessions are either killed by the next
attempt to write to the closed socket (when the origin sends more bytes later)
or when the transaction hits the max inactivity timeout. Neither of these
behaviors are what we want-- since I already got an RST from the client. So it
seems that we need to somehow force-schedule a read/write in these error
conditions-- do you have any pointers on how to do that?
---
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.
---