r2326 - branches/1.1

des at projects.linpro.no des at projects.linpro.no
Thu Dec 20 15:04:31 CET 2007

Author: des
Date: 2007-12-20 15:04:31 +0100 (Thu, 20 Dec 2007)
New Revision: 2326


Modified: branches/1.1/ChangeLog
--- branches/1.1/ChangeLog	2007-12-20 13:57:44 UTC (rev 2325)
+++ branches/1.1/ChangeLog	2007-12-20 14:04:31 UTC (rev 2326)
@@ -1,77 +1,84 @@
-Change log for Varnish 1.1.1
+Change log for Varnish 1.1.2
-Changes between 1.1 and 1.1.1
+Changes between 1.1.1 and 1.1.2
-  • The code required to allow VCL to read obj.status, which had accidentally
-    been left out, has now been added.
+  • When switching to a new VCL configuration, a race condition exists which
+    may cause Varnish to reference a backend which no longer exists (see ticket
+    #144). This race condition has not been entirely eliminated, but it should
+    occur less frequently.
-  • Varnish will now always include a Connection: header in its reply to the
-    client, to avoid possible misunderstandings.
+  • When dropping a TCP session before any requests were processed, an
+    assertion would be triggered due to an uninitialized timestamp (see ticket
+    #132). The timestamp is now correctly initialized.
-  • A bug that triggered an assertion failure when generating synthetic error
-    documents has been corrected.
+  • Varnish will now correctly generate a Date: header for every response
+    instead of copying the one it got from the backend (see ticket #157).
-  • A new VCL function, purge_url, provides the same functionality as the
-    url.purge management command.
+  • Comparisons in VCL which involve a non-existent string (usually a header
+    which is not present in the request or object being processed) would cause
+    a NULL pointer dereference; now the comparison will simply fail.
-  • 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.
+  • A bug in the VCL compiler which would cause a double-free when processing
+    include directives has been fixed.
-  • Changes to run-time parameters are now correctly propagated to the child
-    process.
+  • A resource leak in the worker thread management code has been fixed.
-  • 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.
+  • When connecting to a backend, Varnish will usually get the address from a
+    cache. When the cache is refreshed, existing connections may end up with a
+    reference to an address structure which no longer exists, resulting in a
+    crash. This race condition has been somewhat mitigated, but not entirely
+    eliminated (see ticket #144.)
-  • Under certain conditions, the VCL compiler would carry on after a syntax
-    error instead of exiting after reporting the error. This has been
-    corrected.
+  • Varnish will now pass the correct protocol version in pipe mode: the
+    backend will get what the client sent, and vice versa.
-  • The manner in which the hash string is assembled has been modified to
-    reduce memory usage and memory-to-memory copying.
+  • The core of the pipe mode code has been rewritten to increase robustness
+    and eliminate spurious error messages when either end closes the connection
+    in a manner Varnish did not anticipate.
-  • 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.
+  • A memory leak in the backend code has been plugged.
-  • The code necessary to handle an error return from vcl_fetch and vcl_deliver
-    had inadvertantly been left out. This has been corrected.
+  • When using the kqueue acceptor, if a client shuts down the request side of
+    the connection (as many clients do after sending their final request), it
+    was possible for the acceptor code to receive the EOF event and recycle the
+    session while the last request was still being serviced, resulting in a
+    assertion failure and a crash when the worker thread later tried to delete
+    the session. This should no longer happen (see ticket #162.)
-  • Varnish no longer prints a spurious "child died" message (the result of
-    reaping the compiler process) after compiling a new VCL configuration.
+  • A mismatch between the recorded length of a cached object and the amount of
+    data actually present in cache for that object can occasionally occur (see
+    ticket #167.) This has been partially fixed, but may still occur for error
+    pages generated by Varnish when a problem arises while retrieving an object
+    from the backend.
-  • 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.
-  • 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.
+  • Pressing 0 though 9 while varnishhist is running will change the refresh
+    interval to the corresponding power of two, in seconds.
-Build system
-  • The top-level Makefile will now honor $DESTDIR when creating the state
-    directory.
+  • The varnishncsa tool can now daemonize and write a PID file like
+    varnishlog, using the same command-line options. It will also reopen its
+    output upon receipt of a SIGHUP if invoked with -w.
-  • The Debian and RedHat packages are now split into three (main / lib /
-    devel) as is customary.
-  • A number of compile-time and run-time portability issues have been
-    addressed.
+  • Pressing 0 though 9 while varnishstat is running will change the refresh
+    interval to the corresponding power of two, in seconds.
-  • The autogen.sh script had workarounds for problems with the GNU autotools
-    on FreeBSD; these are no longer needed and have been removed.
+Build system
-  • 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.
+  • Varnish's <queue.h> has been modified to avoid conflicts with <sys/queue.h>
+    on platforms where the latter is included indirectly through system
+    headers.
+  • Several steps have been taken towards Solaris support, but this is not yet
+    complete.
+  • When configure was run without an explicit prefix, Varnish's idea of the
+    default state directory would be garbage and a state directory would have
+    to be specified manually with -n. This has been corrected.

More information about the varnish-commit mailing list