vlist_validator problem in ETags header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi everyone,

I'm running the Apache 2.2.14 .deb on Debian Lenny. Specifically:

Package: apache2.2-bin
Status: install ok installed
Maintainer: Debian Apache Maintainers <debian-apache@xxxxxxxxxxxxxxxx>
Source: apache2
Version: 2.2.14-5

We have two identical servers behind an LVS balancer. Configurations are identical, binaries are identical, content is identical. In an effort to unify ETag responses to improve browser cache behavior, we have explicitly set 'FileETag':

FileETag Size -INode -MTime

For a given file, the size and modification times are exactly the same on both servers - the content is static and identical.

However, Apache consistently sends different ETags for the same file.
I have configured both servers to log the ETag headers and queries with
%{ETag}o and %{If-Not-Modified}i .  This exposed the fact that Apache builds
ETags with information beyond just the items specified in FileETag, which
apparently varies by server.

The LogFormat below is:
LogFormat "%h %u %t %v \"%r\" %>s %{ETag}o %{If-None-Match}i %{Vary}o %b \"%{Referer}i\" \"%{User-Agent}i\"" mylogformat

On server 1, the access logfile entry is:
x.y.10.187 - [06/Jul/2010:14:25:37 -0400] XXXXXXXXXXX "GET /js/json.11874.js HTTP/1.1" 200 \"d1b;48a6d3c9049c0\" \"d1b;48a6d3c810780\" - 3355 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6"

On server 2, the access logfile entry is:
x.y.10.187 - [06/Jul/2010:14:25:39 -0400] XXXXXXXXXXX "GET /js/json.11874.js HTTP/1.1" 200 \"d1b;48a6d3c810780\" \"d1b;48a6d3c9049c0\" - 3355 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6"

You can see that the sole FileETag directive (Size) is being set properly, and is consistent between servers ("d1b"), however there is an additional string appended to the ETag string which is confusing the user agent.

How do I get these in sync?

I tracked this string down to some references to "vlv" in modules/http/http_etag.c and to "set_vlist_validator" in modules/mappers/mod_negotiation.c, and I suspect this has to do with Variances, but I'm at a loss as the server configurations and content are identical.

Thanks,
Josh


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
  "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx



[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux