Hi, I am trying this plugin out (https://github.com/apache/trafficserver/tree/master/plugins/experimental/rfc5861) and I have a few concerns
1) Let's assume that my origin server becomes slow and takes 10 seconds to respond after a while. Initially the origin server response is fast and cachable (e.g. "Cache-Control: max-age=30, stale-while-revalidate=300, public") and a cached copy is in the ATS cache. When the origin server becomes slow and the ATS cache copy expires, I assume the plugin should be able to return stale response from ATS and issue an async call to the origin server for the content. It will continues to give out stale responses from all other requests of this resource until the origin server comes back 10 seconds later with the response and cached properly in ATS. However, I don't think the plugin is doing it this way. The async call is made in a normal way and thus the cache URL is locked (according to this diagram - http://trafficserver.apache.org/docs/trunk/sdk/http-hooks-and-transactions/index.en.html). Subsequent requests to the same resource will get a cache miss and will be blocked till the origin server comes back with a response 10 seconds later. So in reality, what happened is that once a resource is expired, the first request for this resource will return with a stale copy and all subsequent request for this resource will be blocked till the origin server responds 2) Also, according to TS-998 (https://issues.apache.org/jira/browse/TS-998) , Wouldn't TSHttpHdrPrint() be causing trouble for the rfc5861 plugin? I can imagine that it will probably work when pristine_host_hdr is 0, though. We might be able to construct the async request using TSMimeHdrPrint() and construct the request line with previously saved variables. 3) "troot" is a variable used to remember what URL is being called asynchronously right now. So a subsequent request to ATS will not generate extra async call of the same URL. But URL is only part of cache key. Some request headers can be part of the cache key based on the "Vary" response header. Thanks. Kit