r1901 - branches/1.1
des at projects.linpro.no
des at projects.linpro.no
Mon Aug 20 21:04:26 CEST 2007
Author: des
Date: 2007-08-20 21:04:26 +0200 (Mon, 20 Aug 2007)
New Revision: 1901
Modified:
branches/1.1/ChangeLog
Log:
Regenerate
Modified: branches/1.1/ChangeLog
===================================================================
--- branches/1.1/ChangeLog 2007-08-20 19:04:16 UTC (rev 1900)
+++ branches/1.1/ChangeLog 2007-08-20 19:04:26 UTC (rev 1901)
@@ -1,150 +1,77 @@
-Change log for Varnish 1.1
+Change log for Varnish 1.1.1
-Changes between 1.0.4 and 1.1
+Changes between 1.1 and 1.1.1
varnishd
- • Readability of the C source code generated from VCL code has been improved.
+ • The code required to allow VCL to read obj.status, which had accidentally
+ been left out, has now been added.
- • Equality (==) and inequality (!=) operators have been implemented for IP
- addresses (which previously could only be compared using ACLs).
+ • Varnish will now always include a Connection: header in its reply to the
+ client, to avoid possible misunderstandings.
- • The address of the listening socket on which the client connection was
- received is now available to VCL as the server.ip variable.
+ • A bug that triggered an assertion failure when generating synthetic error
+ documents has been corrected.
- • Each object's hash key is now computed based on a string which is available
- to VCL as req.hash. A VCL hook named vcl_hash has been added to allow VCL
- scripts to control hash generation (for instance, whether or not to include
- the value of the Host: header in the hash).
+ • A new VCL function, purge_url, provides the same functionality as the
+ url.purge management command.
- • The setup code for listening sockets has been modified to detect and handle
- situations where a host name resolves to multiple IP addresses. It will now
- attempt to bind to each IP address separately, and report a failure only if
- none of them worked.
+ • Previously, Varnish assumed that the response body should be sent only if
+ the request method was GET. This was a problem for custom request methods
+ (such as PURGE), so the logic has been changed to always send the response
+ body except in the specific case of a HEAD request.
- • Network or protocol errors that occur while retrieving an object from a
- backend server now result in a synthetic error page being inserted into the
- cache with a 30-second TTL. This should help avoid driving an overburdened
- backend server into the ground by repeatedly requesting the same object.
-
- • The child process will now drop root privileges immediately upon startup.
- The user and group to use are specified with the user and group run-time
- parameters, which default to nobody and nogroup, respectively. Other
- changes have been made in an effort to increase the isolation between
- parent and child, and reduce the impact of a compromise of the child
+ • Changes to run-time parameters are now correctly propagated to the child
process.
- • Objects which are received from the backend with a Vary: header are now
- stored separately according to the values of the headers specified in
- Vary:. This allows Varnish to correctly cache e.g. compressed and
- uncompressed versions of the same object.
+ • Due to the way run-time parameters are initialized at startup, varnishd
+ previously required the nobody user and the nogroup group to exist even if
+ a different user and group were specified on the command line. This has
+ been corrected.
- • Each Varnish instance now has a name, which by default is the host name of
- the machine it runs on, but can be any string that would be valid as a
- relative or absolute directory name. It is used to construct the name of a
- directory in which the server state as well as all temporary files are
- stored. This makes it possible to run multiple Varnish instances on the
- same machine without conflict.
+ • Under certain conditions, the VCL compiler would carry on after a syntax
+ error instead of exiting after reporting the error. This has been
+ corrected.
- • When invoked with the -C option, varnishd will now not just translate the
- VCL code to C, but also compile the C code and attempt to load the
- resulting shared object.
+ • The manner in which the hash string is assembled has been modified to
+ reduce memory usage and memory-to-memory copying.
- • Attempts by VCL code to reference a variable outside its scope or to assign
- a value to a read-only variable will now result in compile-time rather than
- run-time errors.
+ • Before calling vcl_miss, Varnish assembles a tentative request object for
+ the backend request which will usually follow. This object would be leaked
+ if vcl_miss returned anything else than fetch. This has been corrected.
- • The new command-line option -F will make varnishd run in the foreground,
- without enabling debugging.
+ • The code necessary to handle an error return from vcl_fetch and vcl_deliver
+ had inadvertantly been left out. This has been corrected.
- • New VCL variables have been introduced to allow inspection and manipulation
- of the request sent to the backend (bereq.request, bereq.url, bereq.proto
- and bereq.http) and the response to the client (resp.proto, resp.status,
- resp.response and resp.http).
+ • Varnish no longer prints a spurious "child died" message (the result of
+ reaping the compiler process) after compiling a new VCL configuration.
- • Statistics from the storage code (including the amount of data and free
- space in the cache) are now available to varnishstat and other
- statistics-gathering tools.
+ • Under some circumstances, due to an error in the workspace management code,
+ Varnish would lose the "tail" of a request, i.e. the part of the request
+ that has been received from the client but not yet processed. The most
+ obvious symptom of this was that POST requests would work with some
+ browsers but not others, depending on details of the browser's HTTP
+ implementation. This has been corrected.
- • Objects are now kept on an LRU list which is kept loosely up-to-date (to
- within a few seconds). When cache runs out, the objects at the tail end of
- the LRU list are discarded one by one until there is enough space for the
- freshly requested object(s). A VCL hook, vcl_discard, is allowed to inspect
- each object and determine its fate by returning either keep or discard.
+ • On some platforms, due to incorrect assumptions in the CLI code, the
+ management process would crash while processing commands received over the
+ management port. This has been corrected.
- • A new VCL hook, vcl_deliver, provides a chance to adjust the response
- before it is sent to the client.
+Build system
- • A new management command, vcl.show, displays the VCL source code of any
- loaded configuration.
+ • The top-level Makefile will now honor $DESTDIR when creating the state
+ directory.
- • A new VCL variable, now, provides VCL scripts with the current time in
- seconds since the epoch.
+ • The Debian and RedHat packages are now split into three (main / lib /
+ devel) as is customary.
- • A new VCL variable, obj.lastuse, reflects the time in seconds since the
- object in question was last used.
+ • A number of compile-time and run-time portability issues have been
+ addressed.
- • VCL scripts can now add an HTTP header (or modify the value of an existing
- one) by assigning a value to the corresponding variable, and strip an HTTP
- header by using the remove keyword.
+ • The autogen.sh script had workarounds for problems with the GNU autotools
+ on FreeBSD; these are no longer needed and have been removed.
- • VCL scripts can now modify the HTTP status code of cached objects
- (obj.status) and responses (resp.status)
+ • The libcompat library has been renamed to libvarnishcompat and is now
+ dynamic rather than static. This simplifies the build process and resolves
+ an issue with the Mac OS X linker.
- • Numeric and other non-textual variables in VCL can now be assigned to
- textual variables; they will be converted as needed.
-
- • VCL scripts can now apply regular expression substitutions to textual
- variables using the regsub function.
-
- • A new management command, status, returns the state of the child.
-
- • Varnish will now build and run on Mac OS X.
-
-varnishadm
-
- • This is a new utility which sends a single command to a Varnish server's
- management port and prints the result to stdout, greatly simplifying the
- use of the management port from scripts.
-
-varnishhist
-
- • The user interface has been greatly improved; the histogram will be
- automatically rescaled and redrawn when the window size changes, and it is
- updated regularly rather than at a rate dependent on the amount of log data
- gathered. In addition, the name of the Varnish instance being watched is
- displayed in the upper right corner.
-
-varnishncsa
-
- • In addition to client traffic, varnishncsa can now also process log data
- from backend traffic.
-
- • A bug that would cause varnishncsa to segfault when it encountered an empty
- HTTP header in the log file has been fixed.
-
-varnishreplay
-
- • This new utility will attempt to recreate the HTTP traffic which resulted
- in the raw Varnish log data which it is fed.
-
-varnishstat
-
- • Don't print lifetime averages when it doesn't make any sense—for instance,
- there is no point in dividing the amount in bytes of free cache space by
- the lifetime in seconds of the varnishd process.
-
- • The user interface has been greatly improved; varnishstat will no longer
- print more than fits in the terminal, and will respond correctly to window
- resize events. The output produced in one-shot mode has been modified to
- include symbolic names for each entry. In addition, the name of the Varnish
- instance being watched is displayed in the upper right corner in curses
- mode.
-
-varnishtop
-
- • The user interface has been greatly improved; varnishtop will now respond
- correctly to window resize events, and one-shot mode (-1) actually works.
- In addition, the name of the Varnish instance being watched is displayed in
- the upper right corner in curses mode.
-
More information about the varnish-commit
mailing list