Test | Result / Notes |
---|---|
Plain cache hits for varying objects | Memory hits works fine. No memory leak.
Disk hits works fine. No memory leak. |
Cache hits for new request variants | Works, but there was memory leak in "Short Strings". |
Cache validations of a Vary:ing object | Works fine. |
Client-side If-None-Match with a matching hit (304) | Failed if the object needed to be revalidated. In such case the object was returned even if the entity tag matched. |
Client-side If-None-Match with cache hit (no tag match, 200) | Works fine. |
Client-side If-None-Match with a expired object, no change on the origin server | Works fine, except that the client receives a old Date header (expected. known generic bug) |
Client-side If-None-Match with a expired object, change on the origin server | Works fine. |
Client-side If-None-Match with a cache miss | Works fine. Client receives the server reply, which might be a 304 reply. If a 304 reply with a entity tag then the ETag index is updated. |
Client-side If-Match hit | Works fine |
Client-side If-Match, expired hit | Works fine |
Client-side If-Match, expired hit where origin object has changed | Works fine. Server reply is received. |
Client-side If-Match cache hit with no tag match (miss) | Works fine. Server reply is received. |
Client-side If-Match cache miss | Works fine. Server reply is received |
Client-side If-Range with a entity tag | Works fine. |
Client-side If-Range with a LMT timestamp | Failed if the LMT timestamp was later than the object. |
Server-side If-None-Match on cache validations | Works fine |
Server-side If-None-Match on varying cache misses | Works fine, and returns the proper cached variant if a 304 is received. |
Aborted requests while parsing the etag map | Seems to work, but I have not found a 100% conclusive test case (this test is highly dependent on timing) |
Varying objects without ETag
Interaction between old "vary" store format and this patch | Was two bugs. First tried to update the ETag map without having a ETag value, then crashed on hits due to not finding any ETag map information. |
X-Accelerator-Vary | Seems to work |
vary_ignore_expire | fails after validation have been forced by some client. This is caused by the generic bug of not updating the Date header after cache validations. |